picom/src/backend
Yuxuan Shui eb723eee29
backend: gl: use libepoxy
There is actually no specification what symbols are exported from a
libGL implementation. The (extremely outdated) OpenGL ABI specification
says only GL 1.2 functions are guaranteed. Don't know how relevant that
is now, but different libGL implementations do export different set of
symbols. On Linux we are most likely to be linked with libglvnd, which
has everything we need. But on other platforms this is not necessarily
the case, for example on OpenBSD we are missing glGetQueryObjectui64v.

Use libepoxy so we can outsource this problem and never worry about it
ever again. Plus it also saves us from calling GetProcAddress ourselves.

Changes other than trivial build fixes I have to make:

1. Can't use eglCreatePlatformWindowSurface/eglGetPlatformDisplay.
   libepoxy checks for EGL 1.5 when resolving these functions. But
   without a current context, libepoxy assumes we only have EGL 1.4.
   This creates a chicken and egg problem - we need a display to call
   eglGetPlatformDisplay. We have to use the *EXT version instead.

Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
2024-02-10 20:36:02 +00:00
..
dummy Merge pull request #1107 from absolutelynothelix/name-default-backend-operation-implementations-consistently 2023-12-16 22:03:14 +00:00
gl backend: gl: use libepoxy 2024-02-10 20:36:02 +00:00
xrender backend: xrender: force 32bit ARGB visual when adding rounded corners 2023-12-19 05:04:09 +00:00
backend.c core: simplify pacing logic a bit more 2023-12-19 23:27:06 +00:00
backend.h backend: clarify what clone_image does 2024-02-06 12:56:55 +00:00
backend_common.c backend: name default backend operation implementations consistently 2023-09-24 01:15:42 +03:00
backend_common.h backend: remove default implementations of obsolete backend operations 2023-09-24 01:15:42 +03:00
driver.c backend: fix clang warning 2024-01-29 23:57:11 +00:00
driver.h driver: choose sgi_video_sync scheduler for NVIDIA 2023-12-19 23:27:15 +00:00
meson.build backends: add egl backend 2022-09-29 08:03:12 +01:00