projectM-visualizer / projectm

projectM - Cross-platform Music Visualization Library. Open-source and Milkdrop-compatible.
https://discord.gg/mMrxAqaa3W
GNU Lesser General Public License v2.1
3.22k stars 364 forks source link

OpenGL: Migrate code to use EGL instead of GLX/GLES #681

Open kblaschke opened 1 year ago

kblaschke commented 1 year ago

Currently, projectM uses GLX or GLES on Linux. Since both APIs are highly specialized (GLX for the X Window System/X11, GLES for embedded devices like RPi and also WebGL), plus future Linux desktops will at some point switch to Wayland (which doesn't support GLX at all and requires EGL to be used), it makes sense to remove any code that's specific to one of these APIs and fully migrate to the EGL API/headers.

Note: This change will require changes to applications using projectM, as they'd need to create an EGL context specifically. Because of this breaking change, I suggest to implement this feature alongside adding Vulkan/Metal rendering support and then update projectM to the next major version, as covered by issue #683.