Hello all!!
I am trying to initialize some extensions… I also looked some source code I found on the internet but I have some questions: take a look at these two lines:
glCreateProgram = (PFNGLCREATEPROGRAMOBJECTARBPROC) wglGetProcAddress("glCreateProgram");
glCreateProgramObjectARB = (PFNGLCREATEPROGRAMOBJECTARBPROC) wglGetProcAddress("glCreateProgramObjectARB");
The above lines are from two different source codes I found.
What is the difference between glCreateProgram() and glCreateProgramObjectARB()? Yes… I know… the first one is for OpenGL Core and the other for ARB Extension. But what is the actual difference? Don’t they do the same thing? maybe the one maps to the other, so it is EXACTLY the same?
If glCreateProgram is the Core one why is it casted to PFNGLCREATEPROGRAMOBJECTARBPROC which the “ARB” inside? why not PFNGLCREATEPROGRAMOBJECTPROC? That is better to use? ARB or Core extensions? (the target machine for my project will ALWAYS be a GeForce9600mGT which is OGL v2.1 compatible.)
Can I mix up Core and ARB extensions for shaders? (if they are mapped to each other I don’t think there will be a problem, but… are they mapped to each other? )
PS: I must init the extensions myself, I can’t use GLEW (don’t ask why :P)
Thanks for your time!