Is multitexture part of core OpenGL or not?

I’m running a GeForce4 at work and a Radeon 9800pro at home. glxinfo tells me that the GeForce is using OpenGL version 1.4 and the Radeon is using version 1.3.

If I try to use glMultiTexCoord, I get undefined symbol errors. The extension registry tells me that ARB_multitexture was rolled into the OpenGL 1.2.1 spec, but if I search for “MultiTex” in gl.h, all those function names end in “ARB” indicating that they are still part of an extension.

So does this just mean that neither NVidia nor ATI has completely implemented the spec version that they claim to have implemented? Does anyone know what’s going on here?

I also have similar confusion about glSecondaryColor. But my failure to get a pdf plugin working in Mozilla is keeping me from from checking the 1.4 spec to see if glSecondaryColor is included :stuck_out_tongue: I’ll keep working on that one…

Under Windows, all OpenGL core features past OpenGL 1.1 are exposed as extensions because the OpenGL dll’s shipped with windows haven’t been updated since then.

Under Linux, the updated libs and headers should ship with the driver for your video card so that you can just use the 1.4 features directly.

If you plan to be cross platform, you should manually load any extensions your app uses so you can give a correct error message when a particular extension isn’t supported instead of your app just failing to run because of unresolved function pointers in the OpenGL dynamic libs.

Thanks. That helped. It looks like NVidia ships a gl.h and glx.h that don’t get installed by default. Unfortunately, the gl.h that comes with the NVidia driver conflicts with the glu.h that comes with RedHat.

So I guess I’m hosed here at work. I’ll see if I have the same problem with RedHat/ATI when I get home tonight.

How does it conflict with the glu.h that comes with RedHat? I have no issues using them together.

I have mandrake9 and nvidia gl.h also conflicted with glu.h that was included with the dis.

I had to manually define GLAPI and another symbol before including glu.h to make it work. I will post it when I get at home tonight.

[This message has been edited by Gorg (edited 06-02-2003).]

Yep, it looks like I’m having trouble with GLAPI and GLAPIENTRY. glu.h expects those symbols to be defined. I replace the "#define"s at the top of gl.h with

define GLAPI extern


and everything compiles now. Who needs those “#ifdef _WIN32” lines anyway? :stuck_out_tongue:

Oh, and I couldn’t find any gl.h file that shipped with my Radeon 9800pro driver, but my Radeon driver isn’t an official ATI driver. They don’t yet have a 9800pro driver on their website.

[This message has been edited by mogumbo (edited 06-02-2003).]

I remember what was weird now. Is that the whole section of #if defined is actually correct and it does fall in the last #else statement. So it would seem like something is undefing them somewhere.

I did not really look deep into it, but I made sure it was not in my code though.

[This message has been edited by Gorg (edited 06-02-2003).]

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.