legacy GL vs GLVND Open GL
-
Hi,
What do you mean by legacy GL ?
-
@SGaist legacy GL is the lib OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so
and GLVND libraries for OpenGL and GLX:
OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so
OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.soI would like to know the differences. I used Qt installer and therefore can not test the differences.
-
There's no Legacy GL.
libGL is the official OpenGL implementation
GLX is the OpenGL library that talks with X11
GLVND is a vendor neutral GL dispatch library
-
@JoeCFD these messages
legacy GL is the lib OPENGL_gl_LIBRARY: /usr/lib/x86_64-linux-gnu/libGL.so and GLVND libraries for OpenGL and GLX: OPENGL_opengl_LIBRARY: /usr/lib/x86_64-linux-gnu/libOpenGL.so OPENGL_glx_LIBRARY: /usr/lib/x86_64-linux-gnu/libGLX.so
are output from cmake
-
@JoeCFD said in legacy GL vs GLVND Open GL:
libOpenGL
In addition, there's a new library, libOpenGL.so. It's basically the same as libGL.so, except that it only exports the OpenGL functions, not GLX. It also doesn't depend on libGLX, so it could also be used with an EGL or GLX application. The hope is that future applications will link against libOpenGL.so and either libGLX.so or libEGL.so. This makes for a cleaner separation of OpenGL from the window system binding. But, libGL.so will be kept around indefinitely for backwards compatibility.
from https://forums.gentoo.org/viewtopic-t-1117500-start-25.html
-
The problem with the current situation is that different implementations of libGL.so.1 export a different set of functions, with no real rule or pattern between them.
There's nothing we can do about libGL.so.1 itself anymore. Too many buggy applications depend on that, and the chance of getting all of those applications fixed is zero.
The point of libOpenGL.so is to provide a clean separation between the window-system functions (GLX and EGL) and the OpenGL functions. In addition, since we don't have any compatibility baggage, the export list can be simple and well-defined. Unlike libGL.so, we can ensure that libOpenGL.so keeps the same export list forever.
-
Ok, I understand better the legacy concept in this case.