Skip to content
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

[WIP] move 'x11' to 'drivers/' directory #16744

Closed
wants to merge 2 commits into from

Conversation

hpvb
Copy link
Member

@hpvb hpvb commented Feb 16, 2018

This PR implements a new 'freedesktop' platform and moves the X11 specific code to 'drivers/'

@reduz
Copy link
Member

reduz commented Feb 16, 2018

sorry, I know you will kill me for this,
but In the end, I kind of like naming the platform "freedesktop"

@hpvb
Copy link
Member Author

hpvb commented Feb 16, 2018

I know this will easily devolve into a bikeshedding exercise but I'd like to offer one argument against the 'freedesktop' name, even though I originally came up with it: Splitting out the X11, Wayland, and Dummy renderers and audio drivers and whatnot should eventually lead to the killing of the 'server' platform entirely. At that point building a server binary with a 'freedesktop' target seems to make little sense.

If you don't think this is important I'll rename the platform and this is the last that has been said of that :)

@akien-mga
Copy link
Member

akien-mga commented Feb 16, 2018

I think "freedesktop" doesn't make sense for most people who are not very familiar with the Linux and *BSD ecosystems. I don't see Windows users with custom libraries bothering supporting a "freedesktop" platform with custom builds, while "linuxbsd" is already clearer about what is being supported in end user terms.

From the definition of freedesktop.org:

freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops. The most famous X desktops are GNOME and KDE, but developers working on any Linux/UNIX GUI technology are welcome to participate.

--> It's focused on desktops, and on X11.

COPYRIGHT.txt Outdated
@@ -88,7 +88,7 @@ License: Apache-2.0
Files: ./platform/android/power_android.cpp
./platform/osx/power_osx.cpp
./platform/windows/power_windows.cpp
./platform/x11/power_x11.cpp
./platform/linuxbsd/power_x11.cpp
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should move it up to keep the alphabetical ordering.

@hpvb
Copy link
Member Author

hpvb commented Feb 16, 2018

@akien-mga well, Wayland is a freedesktop.org project. :)

I like.... pink 🤣

@akien-mga
Copy link
Member

BTW, eventually (not in this PR) we'll have to add support for multiple export platforms sharing the same platform code.

Currently to export to FreeBSD, you have to override the Linux X11 official template with your custom FreeBSD one - ideally we'd give FreeBSD and OpenBSD the possibility to have their own "FreeBSD (X11)"/"FreeBSD (Wayland)"/etc. entries in the export manager. Whether we should ship official templates for them is to be determined, but we should at least make it possible to export to those platforms without hacks.

@hpvb
Copy link
Member Author

hpvb commented Feb 16, 2018

@akien-mga I agree, I'll see if I can do some work on that also. Please note however that there will not be separate export templates for X11 and Wayland. This will be determined at runtime (like it works for SDL, GTK, and QT). We will not link to Wayland or X11 libraries directly anymore on the released binaries but instead dlopen() the libraries when they are required. Wayland/X11 libraries will be build-time required but runtime optional.

@akien-mga
Copy link
Member

Please note however that there will not be separate export templates for X11 and Wayland. This will be determined at runtime (like it works for SDL, GTK, and QT).

That's perfect :)

@hpvb hpvb force-pushed the linuxbsd-split branch 2 times, most recently from 690bc14 to bb7c3c0 Compare February 16, 2018 19:42
This is the first step towards teasing the X11 windowing driver out of
the platform/ directory and into the drivers/ directory.
@hpvb hpvb force-pushed the linuxbsd-split branch 5 times, most recently from f4ba2c9 to c430e1f Compare February 17, 2018 15:58
This is still a WIP, commit message will be changed before PR is
finalized
@toger5
Copy link
Contributor

toger5 commented Jul 24, 2018

Any status / updates on this?

@akien-mga
Copy link
Member

Closing as this will have to be redone from scratch, probably for 3.2 as we're running out of time for 3.1.
It's still a wanted change though and @hpvb will be working on it when it's back in our priorities.

@toger5
Copy link
Contributor

toger5 commented Oct 1, 2018

@akien-mga you mentioned it is necessary to implement this from scratch. For an experiment @wmww and I really want that to work. Currently merging that code on master and trying to make it work. Was there something entirely wrong with the implementation from this PR? Or does it just need some love to work with current master?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants