MiniGL

From Wikipedia, the free encyclopedia

The term MiniGL was applied to a wide range of incomplete OpenGL implementations provided by graphics card hardware companies including 3dfx, PowerVR and Rendition in the late 1990s. They owe their genesis to the computer game Quake.

In 1996 id Software announced that the Rendition Vérité was to be the only hardware 3d accelerator targeted by Quake. Partly because of the perceived hassle in supporting chipset specific APIs and partly because Quake's development heritage on high end workstations made such a thing easy they also released a Microsoft Windows port of their OpenGL version of Quake even though at the time no consumer chipset had OpenGL support.

In response 3dfx developed and quickly released the first MiniGL — a quick implementation of the bare minimum amount of the OpenGL API that was required to run the OpenGL version of Quake. By obtaining a copy of the OpenGL Quake executable and a copy of the relevant MiniGL, 3dfx owners could easily modify their copies of Quake to play with full 3d acceleration, giving a smoother and better looking display than was possible with the Quake software renderer. After the success of the 3dfx original, several other manufacturers followed 3dfx in producing MiniGL drivers.

At the time the OpenGL API was almost universally agreed to be superior to the then new and immature Direct3D system from Microsoft, so following the arrival of the various MiniGLs many programmers sought to use them in other programs as an easy way of supporting multiple 3d chipsets. Unfortunately id Software had not released any official list of OpenGL calls and parameters used by Quake and none of the MiniGL implementors had released lists of what their implementation would and would not support.

In practice this led to a very cautious use of OpenGL features by programmers and new releases of MiniGLs with slightly more functionality every time a major game came along that did not work on the previous generation.

All major 3d card manufacturers now support complete OpenGL implementations, negating the need for any sort of MiniGL.

See also: MiniGLX