Updated OpenGL Versions

Hello,

Microsoft Visual C++ 6.0 includes an implementation of OpenGL 1.1. How do I update the version of OpenGL to the most recent version?

Thanks.

Use extensions

Somebody correct me if I’m wrong, but I think you can use the core functionality of later versions of OpenGL (as long as the driver supports it) by calling wglGetProcAddress. I was able to get a pointer to the function glCompressedTexImage2D on my Geforce2 MX, although I haven’t tried to used this function yet. This is a better alternative to using extensions, IMO.

Aaron, using wglGetProcAddress is how you use extensions too. What Rob basically meant is that if your card supports greater than 1.1, you use everything greater than 1.1 the same way you would use extensions.

I am well aware that wglGetProcAddress is how one loads extensions. What I meant was that instead of using, for example, “glLoadTransposeMatrixfEXT” (or whatever it’s called), one should use “glLoadTransposeMatrixf” because the latter is a core function of OpenGL 1.3. Although it is arguable whether core functions accessed in this manner are “extensions”, I think it is better to use them than the actual extensions. If Microsoft ever gets around to including later versions of the GL with Windows, you can use the statically linked versions of the functions without changing your code too much.

If your gl driver version string says 1.3.xxxx then you can load every function that is defined in gl1.3. In this case they aren’t extensions in the “normal” sense", and you don’t need to check for them in the extensions string.

It’d be cool to have functions like:

  • glMyCodeIsFor(version 1.3);
  • glStoreFunctionEntries(version 1.3,myfunctions) or glStoreFunctionEntries(ati,myfunctions)

“myfunctions” could be a nameless struct like

struct{
glActiveTexture,

}

in which you would only send in the address of the first one.

I must be dreaming I know .

They better have OpenGL 2.0 drivers for windows when it comes out, not like 2 years after… if yo uask me, M$ should be booted off the ARB for basically blocking its development on its platform…