The currently shipping OpenGL32.DLL from Microsoft only has entry points for OpenGL 1.1. If an application wants to use OpenGL 1.2 / OpenGL 1.3 entry points, it has to use wglGetProcAddress() in order to obtain the OpenGL 1.2/1.3 entry points from the driver. The files in this distribution are meant as an aid to the application to pretend that there is full support for OpenGL 1.2/1.3 if the underlying implementation supports OpenGL 1.2/1.3. Additionally, this distribution provides full support for all the extension entry points in glext.h. In order to use this scheme, the application needs to do the following: ===================================================================== For applications that do not create rendering contexts on different devices (e.g. multi-display with different vendors supporting the two displays): 1. Include "glprocs.h" in addition to including "gl.h" 2. Compile "glprocs.c" and ensure that glprocs.obj is linked with the application code. 3. Call OpenGL1.2, OpenGL1.3 and extension procs after verifying that the implementation has support for the underlying feature. Example: if (supports12) { glDrawRangeElements (.....) } ===================================================================== For aplications that create rendering contexts on different devices, the application has to do the following additional things: 1. Allocate memory for _GLextensionProcs in the application data structures for each device. Example: typedef struct { appType appData; _GLextensionProcs extensionProcs; } ContextData; ContextData cdev1, cdev2; 2. Initialize the extension procs. _InitExtensionProcs (&cdev1.extensionProcs); _InitExtensionProcs (&cdev2.extensionProcs); 3. Provide a mechanism for accessing the current device. Example: ContextData *currentContextData; static _inline _GLextensionProcs *_GET_TLS_PROCTABLE(void) { return (¤tContxtData->extensionProcs); } Another Example (when the two different devices are being used on two different contexts): static _inline _GLextensionProcs *_GET_TLS_PROCTABLE(void) { ContextData *tla = GetThreadSpecificData(); return (&tla->extensionProcs); } (NOTE: Aplication has to replace this function in glprocs.h with its own customized function). ===================================================================== This distribution additionally contains the following: test: Sample application with Makefile of how to use glprocs.{c,h}