A Clarifiction

I’m trying to determine how well distributed OpenGL is. What i have gleaned from the website and the Message Board is that OpenGL is distributed with all Windows platforms (including XP) since Win95B, and on Mac OS9 and OSX.

I think there is one version of the OpenGL runtime DLL, but that the different versions people are talking about on this Message Board are implemented by the Graphics Card manufacturers in their drivers. Thus it would be up to the individual to download the newest drivers for their video cards, not the newest OpenGL dll.

Also in what version was the Shading Languange introduced and does anybody know how well distributed the drivers that implement that version are among consumer desktops?

Thanks in advance for the info-

Originally posted by <Samy A>:
I’m trying to determine how well distributed OpenGL is. What i have gleaned from the website and the Message Board is that OpenGL is distributed with all Windows platforms (including XP) since Win95B, and on Mac OS9 and OSX.
Also add various *nix operating systems like Linux, Solaris, BSD, Irix, AIX and less common OS’es like BeOS, AmigaOS and so forth. In short its very well distributed :slight_smile:

Originally posted by <Samy A>:
I think there is one version of the OpenGL runtime DLL, but that the different versions people are talking about on this Message Board are implemented by the Graphics Card manufacturers in their drivers. Thus it would be up to the individual to download the newest drivers for their video cards, not the newest OpenGL dll.

In the Windows world the OpenGL32.dll acts as a proxy or gateway that will delegate calls either to an implementation provided by i.e. ATI’s or Nvidia’s driver or to a Microsoft pure software emulation. If the later is true most games wont work because they detect at runtime that Microsofts emulation is active and exit.

This way an application only needs to link to a common and static Open32.lib and dont need knowledge about the actual implementation at compile time (at least thats the theory).

The version of the openGL32.dll is not as unimportant as it may sound. Each version of Windows comes with it own OpenGL32.dll mixing them, may cause or fix problems depending on the application.

Originally posted by <Samy A>:
Also in what version was the Shading Languange introduced and does anybody know how well distributed the drivers that implement that version are among consumer desktops?

GLSlang became a core OpenGL functionality with Version 2.0. Since 2.0 hasnt rolled out yet, there are no relaselevel drivers yet (AFAIK). However ATI and Nvidia’s OpenGL v1.5 (Windows) drivers expose GLSLANG on certain hardware using an extension.

For full glSlang support a ATI 9500++ or Nvidia Geforce FX++ is required (becoming the mainstream).

More basic fragment and vertex shaders are around since OpenGL V1.3 and Geforce3 / Radeon 8500 class hardware (very common)

The only other Vendor for glSlang and V2.0 I am aware of is 3dlabs and their highend OpenGL cards (not very common among consumers).

If you have more questions or if I have been unclear, let me know.

Thanks for responding. I do have some more questions:

So version 1.5 is currently the most recent version, and it sounds like 2.0 is on the way. So would a user with windows 2000’s OpenGL32.dll be able to run drivers that support OpenGL version 1.5 and eventually 2.0 as it was when shipped with microsoft, or does that user have to upgrade his dll along with his driver to support the latest version of OpenGL?

Also, then if GLSlang is supported in version 1.5 via an extension, does the user need anything other than the most recent version of their driver to run it?

>> does that user have to upgrade his dll along with his driver to support the latest version of OpenGL?

For games, never ever mess with your system’s opengl32.dll, unless you really know what you are doing. The video driver update will be enough.
Else you may end with a software only implementation, and most games won’t run.

(with the first version of Win95 you do need a opengl32.dll install, but it is a 10 years old OS)

>> if GLSlang is supported in version 1.5 via an extension, does the user need anything other than the most recent version of their driver to run it ?
No. Providing your hardware and your driver do support GLSL.

Originally posted by <Samy A>:

So version 1.5 is currently the most recent version, and it sounds like 2.0 is on the way. So would a user with windows 2000’s OpenGL32.dll be able to run drivers that support OpenGL version 1.5 and eventually 2.0 as it was when shipped with microsoft, or does that user have to upgrade his dll along with his driver to support the latest version of OpenGL?

The current OpenGL32.dll only supports entrypoints for OpenGL V1.1. It would be MS part to provide a new OpenGL DLL but it doesnt look like that this going to happen EVER. To circumvent this limitation all core functions of V1.2 and up are exposed as extension and therefore usable even on Windows.

Modern games like “Knights of the old Republic” for example require a 3d card with OpenGL 1.4 functionality/extensions.

So in short yes you can use OpenGL 1.5 without messing with the OpenGL32.dll but you cant link directly to the functions at compile time, instead you have to dynamicaly bind them at runtime which is a minor inconvience.
The same will be true for OpenGL 2.0. In fact 2.0 wont change anything because most of the 2.0 core functions where available as extension in 1.5 anyway.

Originally posted by <Samy A>:

Also, then if GLSlang is supported in version 1.5 via an extension, does the user need anything other than the most recent version of their driver to run it?

The driver and of course the hardware powerfull enought (Radeon 9500++ or Nvidia GeforceFX++).

Eventhough I dont like this comparision because it lacks on many levels:
Someone could say OpenGL1.5 and 2.0 require at least DirectX-9 class hardware.

If you look at this forum, there is a large number of people who don’t think of updating their drivers and a small number who use problematic or old video cards.

You should be prepared to tell your users to update, and you should tell them to have nvidia, ati or 3dlabs cards.

It’s not like downloading a file and clicking on setup.exe (on Windows) is hard.