-
Notifications
You must be signed in to change notification settings - Fork 567
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
X11 backend tracking issue #475
Comments
I think this is unlikely. Wayland is backwards-compatible with X11 clients, but if a native Wayland client creates a Wayland window, it is unlikely to be addressable as an X11 window. |
Good to know (I'm not familiar with Wayland, just repeating something I thought I heard), thanks! |
I need to access
It would be nice to have all this feature wrapped into a druid, but that's impossible. Anyway, I would like to contribute with this, but for the first glimpse, Druid uses GTK to make windows, and GTK also hides X, so I would need help. @Ralith Wayland is not backward compatible, but it is possible to run Wayland applications in Weston compositor which runs on X. However, It is unable to control Weston's window from the application, so I wouldn't call this backward compatible. Now, I still have to use XCB purely. Later I could reuse that code in Druid. |
I think opening separate issues for those is the best way to go, especially when some discussion is needed.
This is still an open issue for the whole of druid (#104).
I'm not quite sure what this means.
I'll give that a try on my laptop as well. |
To clarify: do you mean I should write all of these up as separate issues now? (if so, would we close this issue when I do, or keep it open as a reference?) I'd be happy to if so, just didn't want to flood the issue tracker if not.
Cool, noted.
Basically, this means that I didn't attempt to implement anything in When I wrote that, I was comparing It's possible X11 just needs to |
Yes
I think this Issue can be closed, filtering by |
I've created separate issues for the tasks. |
This is a tracking issue for implementing an X11
druid-shell
backend.I expect that I'll be doing a lot of the implementation, but others are free to jump in as well!
Background / Motivation
VST plugins are always given a platform-native window to attach to (see #468).
Druid has platform-native backends for Mac OS (cocoa) and Windows (winapi), but uses GTK as the backend for Linux, which is non-"native".
In order to use Druid for VST plugin GUIs on X11 platforms, we need to implement an X11
druid-shell
backend.X11 windows are also compatible inside Wayland, so I think this should work for VSTs in Wayland environments, although I haven't tested this myself yet.(maybe not, see comments)See #468 for some more VST-related background/motivation. Others may also find having a native X11 backend useful for other use cases.
Implementation details
I intend to keep GTK as the main backend for Linux, and only enable X11 if users specifically request it through a feature flag.
I'm planning to use the
rust-xcb
crate for interfacing with X11/XCB.Progress
Each check mark corresponds roughly to one PR. This list might be incomplete; I will add to it as I discover more requirements.
^C
to get it to quit)druid-shell/src/platform/x11/error.rs
, and applied to the rest of the backend where necessaryWindowHandle::request_timer
, etc)WindowHandle::get_idle_handle
, etc)lazy_static
andthread_local
-- might not be suitable for a child window use-case (with VSTs being one such example)Custom mouse cursor supportDruid-wide issue: Add custom cursors #104The text was updated successfully, but these errors were encountered: