*
**************************************************************************/
+/**
+ * @file
+ *
+ * This header defines the interface used by the system's opengl32.dll and the
+ * Installable Client Driver (ICD).
+ */
+
#ifndef STW_ICD_H
#define STW_ICD_H
*/
typedef struct _GLCALLBACKTABLE
{
- /** Unused */
- PROC wglCbSetCurrentValue;
+ /**
+ * Set per-thread driver private data.
+ *
+ * Unused.
+ **/
+ void (APIENTRY *wglCbSetCurrentValue)(void *pvData);
- /** Unused */
- PROC wglCbGetCurrentValue;
+ /**
+ * Get per-thread private data.
+ *
+ * Unused.
+ */
+ void * (APIENTRY *wglCbGetCurrentValue)(void);
- /** Unused */
- PROC wglCbGetDhglrc;
+ /**
+ * Get the ICD GHGLRC handle corresponding to the specified hglrc handle.
+ *
+ * Currently unused.
+ */
+ DHGLRC (APIENTRY *wglCbGetDhglrc)(HGLRC hglrc);
/** Unused */
PROC wglCbGetDdHandle;
*
**************************************************************************/
+/**
+ * @file
+ *
+ * Fake WGL API implementation.
+ *
+ * These functions implement the WGL API, on top of the ICD DDI, so that the
+ * resulting DLL can be used as a drop-in replacement for the system's
+ * opengl32.dll.
+ *
+ * These functions never get called for ICD drivers, which use exclusively the
+ * ICD DDI, i.e., the Drv* entrypoints.
+ */
+
#include <windows.h>
#include "util/u_debug.h"