There are two problems here.
GL_ARB_shader_objects really was upgraded to the kernel in GL2.0, but the API was slightly changed for the base version, so these are not just the same function names without the ARB prefix, for example. instead of glCreateShaderObjectARB() there is glCreateShader() , and the two functions glGetShaderInfoLog() and glGetProgramInfoLog() replace glGetInfoLogARB() and some other minor differences of this type.
The second problem is that the GL library exports all the basic functions. On Linux, this is usually the case (not only for basic functions, but mostly for everything), but there is no standard to guarantee this. OpenGL ABI for Linux requires:
3.4. Libraries must export all entry points of OpenGL 1.2, GLU 1.3, GLX 1.3, and ARB_multitexture statically.
There are suggestions for updating , but I have not heard anything about this recently.
Only Windows exports the core of OpenGL 1.1, because opengl32.dll is part of the OS, and ICD is in a separate DLL. You should request function pointers for almost everyone.
Thus, the most portable way is to finally request the material, regardless of whether you are doing it manually or using some library, for example glew.
source share