Load X11 dynamically

The loaders have been generated through hpvb's dynload-wrapper, although
they had to be heavily handpatched to workaround some already reported
issues with it. I added a note to each generated file to account for
that.

As GLAD uses X11 stuff directly, I had to define the GLAD_GLX_NO_X11
macro to not let do it that, and handle myself the display loading and
screen handling part myself, which wasn't that hard but it's still
something worth saying.

I plan to improve greatly the X11 backend (including this aspect) but,
as the release isn't that far and I'm also working on the Wayland
backend, this will do for now, I hope.
This commit is contained in:
Riteo 2022-11-29 12:03:06 +01:00
parent daf168f4c8
commit 2dd5a792bb
21 changed files with 12818 additions and 28 deletions

View file

@ -184,13 +184,14 @@ def configure(env: "Environment"):
## Dependencies
if env["x11"]:
env.ParseConfig("pkg-config x11 --cflags --libs")
env.ParseConfig("pkg-config xcursor --cflags --libs")
env.ParseConfig("pkg-config xinerama --cflags --libs")
env.ParseConfig("pkg-config xext --cflags --libs")
env.ParseConfig("pkg-config xrandr --cflags --libs")
env.ParseConfig("pkg-config xrender --cflags --libs")
env.ParseConfig("pkg-config xi --cflags --libs")
# Only cflags, we dlopen the libraries.
env.ParseConfig("pkg-config x11 --cflags")
env.ParseConfig("pkg-config xcursor --cflags")
env.ParseConfig("pkg-config xinerama --cflags")
env.ParseConfig("pkg-config xext --cflags")
env.ParseConfig("pkg-config xrandr --cflags")
env.ParseConfig("pkg-config xrender --cflags")
env.ParseConfig("pkg-config xi --cflags")
if env["touch"]:
env.Append(CPPDEFINES=["TOUCH_ENABLED"])