
Fortunately, we are way past those days.Full backwards compatibility maintained API specification and reference documentation available nowĪugust 6th, 2012 – Los Angeles, SIGGRAPH 2012 – The Khronos™ Group today announced the immediate release of the OpenGL® 4.3 specification, bringing the very latest graphics functionality to the most advanced and widely adopted cross-platform 2D and 3D graphics API (application programming interface). † Back in the day, there were these bloody awful things called MiniGL drivers, and games like Quake 1 actually did link directly to extremely primitive and proprietary drivers from vendors like 3Dfx and PowerVR. This is effectively how GL versioning works, by the way, each new version boils down to a collection of required extensions. GLEW basically packages all of the major published extension specifications into one massive library, and will load every one of the extensions your driver claims to support. however, over the years this task has become ridiculously tedious (there are currently over 120 ARB extensions). GLEW is nothing special, you could read the extension specifications here and write your own header with all of the extended function prototypes, enums and constant values you need. is always going to be 1.1 on Windows, because drivers are responsible for extending GL and you never compile/link your software directly to a display driver †. Without using GLEW you are limited to the capabilities of the software implementation, which on Microsoft Windows was written in ~1997 and has never been updated since. Microsoft refers to this system as Installable Client Drivers.įor all intents and purposes, GLEW interfaces with your display driver and loads all of the parts of OpenGL newer than 1.1.


Platforms such as Microsoft Windows ship with a very primitive software implementation of OpenGL (1.1 in this case) but are designed in such a way that installed display drivers can extend/replace the software implementation at run-time.

When you speak of "installing" OpenGL 4.3, you are actually supplementing (at run-time, rather than compile-time) the flimsy library that this header belongs to. I will try to explain it better below, but be aware that this header and the platform's OpenGL library are very much related (and basically immutable). There seems to be a little bit of confusion exactly what purpose the gl.h header that ships with your platform serves.
