sergio/takana
> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…
OBS Studio 32.2.2 — segunda app gráfica de usuario final, con el renderer portado a EGL
1Cargar los punteros de GL por EGL en vez de por GLX.
2
3El `glad` que OBS trae hace, en Linux, `dlopen("libGL.so.1")` y busca dentro
4`glXGetProcAddressARB`; si no lo encuentra, `open_gl()` devuelve 0, `gladLoadGL()`
5falla y el renderer de OpenGL no arranca. Eso ata a OBS a GLX —y por lo tanto a
6X11— incluso corriendo en una sesión Wayland pura, que es la única que esta
7distro tiene: acá nadie publica `libGL.so.1` (mesa va `glx=disabled`) y el
8libglvnd del corpus se construye SIN GLX a propósito, para no arrastrar
9libX11/libxcb al catálogo compartido.
10
11EGL 1.5 resuelve funciones de GL de escritorio por `eglGetProcAddress`, que es lo
12que OBS ya usa en `gl-egl-common.c` para las extensiones. El parche cambia la
13librería y el símbolo; la firma es la misma (`void *(*)(const char *)`), así que
14el resto de glad queda intacto.
15
16--- a/deps/glad/src/glad.c
17+++ b/deps/glad/src/glad.c
18@@ -48,7 +48,7 @@
19 "/System/Library/Frameworks/OpenGL.framework/Versions/Current/OpenGL"
20 };
21 #else
22- static const char *NAMES[] = {"libGL.so.1", "libGL.so"};
23+ static const char *NAMES[] = {"libEGL.so.1", "libEGL.so"};
24 #endif
25
26 unsigned int index = 0;
27@@ -60,7 +60,7 @@
28 return 1;
29 #else
30 gladGetProcAddressPtr = (PFNGLXGETPROCADDRESSPROC_PRIVATE)dlsym(libGL,
31- "glXGetProcAddressARB");
32+ "eglGetProcAddress");
33 return gladGetProcAddressPtr != NULL;
34 #endif
35 }