home *** CD-ROM | disk | FTP | other *** search
/ PC PowerPlay 58 / pcpp58a.iso / extras / quake 3 source / Q3A_ToolSource.exe / Main / QGL_WIN.C < prev    next >
Encoding:
C/C++ Source or Header  |  2001-01-02  |  63.6 KB  |  1,210 lines

  1. /*
  2. ** QGL_WIN.C
  3. **
  4. ** This file implements the operating system binding of GL to QGL function
  5. ** pointers.  When doing a port of Quake2 you must implement the following
  6. ** two functions:
  7. **
  8. ** QGL_Init() - loads libraries, assigns function pointers, etc.
  9. ** QGL_Shutdown() - unloads libraries, NULLs function pointers
  10. */
  11. #include "qgl.h"
  12. #include <float.h>
  13.  
  14. HMODULE g_hGLDLL;
  15. HMODULE g_hGLUDLL;
  16.  
  17. #    pragma warning (disable : 4113 4133 4047 )
  18.  
  19. int   ( WINAPI * qwglChoosePixelFormat )(HDC, CONST PIXELFORMATDESCRIPTOR *);
  20. int   ( WINAPI * qwglDescribePixelFormat) (HDC, int, UINT, LPPIXELFORMATDESCRIPTOR);
  21. int   ( WINAPI * qwglGetPixelFormat)(HDC);
  22. BOOL  ( WINAPI * qwglSetPixelFormat)(HDC, int, CONST PIXELFORMATDESCRIPTOR *);
  23. BOOL  ( WINAPI * qwglSwapBuffers)(HDC);
  24.  
  25. BOOL  ( WINAPI * qwglCopyContext)(HGLRC, HGLRC, UINT);
  26. HGLRC ( WINAPI * qwglCreateContext)(HDC);
  27. HGLRC ( WINAPI * qwglCreateLayerContext)(HDC, int);
  28. BOOL  ( WINAPI * qwglDeleteContext)(HGLRC);
  29. HGLRC ( WINAPI * qwglGetCurrentContext)(VOID);
  30. HDC   ( WINAPI * qwglGetCurrentDC)(VOID);
  31. PROC  ( WINAPI * qwglGetProcAddress)(LPCSTR);
  32. BOOL  ( WINAPI * qwglMakeCurrent)(HDC, HGLRC);
  33. BOOL  ( WINAPI * qwglShareLists)(HGLRC, HGLRC);
  34. BOOL  ( WINAPI * qwglUseFontBitmaps)(HDC, DWORD, DWORD, DWORD);
  35.  
  36. BOOL  ( WINAPI * qwglUseFontOutlines)(HDC, DWORD, DWORD, DWORD, FLOAT,
  37.                                            FLOAT, int, LPGLYPHMETRICSFLOAT);
  38.  
  39. BOOL ( WINAPI * qwglDescribeLayerPlane)(HDC, int, int, UINT,
  40.                                             LPLAYERPLANEDESCRIPTOR);
  41. int  ( WINAPI * qwglSetLayerPaletteEntries)(HDC, int, int, int,
  42.                                                 CONST COLORREF *);
  43. int  ( WINAPI * qwglGetLayerPaletteEntries)(HDC, int, int, int,
  44.                                                 COLORREF *);
  45. BOOL ( WINAPI * qwglRealizeLayerPalette)(HDC, int, BOOL);
  46. BOOL ( WINAPI * qwglSwapLayerBuffers)(HDC, UINT);
  47.  
  48. void ( APIENTRY * qglAccum )(GLenum op, GLfloat value);
  49. void ( APIENTRY * qglAlphaFunc )(GLenum func, GLclampf ref);
  50. GLboolean ( APIENTRY * qglAreTexturesResident )(GLsizei n, const GLuint *textures, GLboolean *residences);
  51. void ( APIENTRY * qglArrayElement )(GLint i);
  52. void ( APIENTRY * qglBegin )(GLenum mode);
  53. void ( APIENTRY * qglBindTexture )(GLenum target, GLuint texture);
  54. void ( APIENTRY * qglBitmap )(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
  55. void ( APIENTRY * qglBlendFunc )(GLenum sfactor, GLenum dfactor);
  56. void ( APIENTRY * qglCallList )(GLuint list);
  57. void ( APIENTRY * qglCallLists )(GLsizei n, GLenum type, const GLvoid *lists);
  58. void ( APIENTRY * qglClear )(GLbitfield mask);
  59. void ( APIENTRY * qglClearAccum )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  60. void ( APIENTRY * qglClearColor )(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  61. void ( APIENTRY * qglClearDepth )(GLclampd depth);
  62. void ( APIENTRY * qglClearIndex )(GLfloat c);
  63. void ( APIENTRY * qglClearStencil )(GLint s);
  64. void ( APIENTRY * qglClipPlane )(GLenum plane, const GLdouble *equation);
  65. void ( APIENTRY * qglColor3b )(GLbyte red, GLbyte green, GLbyte blue);
  66. void ( APIENTRY * qglColor3bv )(const GLbyte *v);
  67. void ( APIENTRY * qglColor3d )(GLdouble red, GLdouble green, GLdouble blue);
  68. void ( APIENTRY * qglColor3dv )(const GLdouble *v);
  69. void ( APIENTRY * qglColor3f )(GLfloat red, GLfloat green, GLfloat blue);
  70. void ( APIENTRY * qglColor3fv )(const GLfloat *v);
  71. void ( APIENTRY * qglColor3i )(GLint red, GLint green, GLint blue);
  72. void ( APIENTRY * qglColor3iv )(const GLint *v);
  73. void ( APIENTRY * qglColor3s )(GLshort red, GLshort green, GLshort blue);
  74. void ( APIENTRY * qglColor3sv )(const GLshort *v);
  75. void ( APIENTRY * qglColor3ub )(GLubyte red, GLubyte green, GLubyte blue);
  76. void ( APIENTRY * qglColor3ubv )(const GLubyte *v);
  77. void ( APIENTRY * qglColor3ui )(GLuint red, GLuint green, GLuint blue);
  78. void ( APIENTRY * qglColor3uiv )(const GLuint *v);
  79. void ( APIENTRY * qglColor3us )(GLushort red, GLushort green, GLushort blue);
  80. void ( APIENTRY * qglColor3usv )(const GLushort *v);
  81. void ( APIENTRY * qglColor4b )(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
  82. void ( APIENTRY * qglColor4bv )(const GLbyte *v);
  83. void ( APIENTRY * qglColor4d )(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
  84. void ( APIENTRY * qglColor4dv )(const GLdouble *v);
  85. void ( APIENTRY * qglColor4f )(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  86. void ( APIENTRY * qglColor4fv )(const GLfloat *v);
  87. void ( APIENTRY * qglColor4i )(GLint red, GLint green, GLint blue, GLint alpha);
  88. void ( APIENTRY * qglColor4iv )(const GLint *v);
  89. void ( APIENTRY * qglColor4s )(GLshort red, GLshort green, GLshort blue, GLshort alpha);
  90. void ( APIENTRY * qglColor4sv )(const GLshort *v);
  91. void ( APIENTRY * qglColor4ub )(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
  92. void ( APIENTRY * qglColor4ubv )(const GLubyte *v);
  93. void ( APIENTRY * qglColor4ui )(GLuint red, GLuint green, GLuint blue, GLuint alpha);
  94. void ( APIENTRY * qglColor4uiv )(const GLuint *v);
  95. void ( APIENTRY * qglColor4us )(GLushort red, GLushort green, GLushort blue, GLushort alpha);
  96. void ( APIENTRY * qglColor4usv )(const GLushort *v);
  97. void ( APIENTRY * qglColorMask )(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
  98. void ( APIENTRY * qglColorMaterial )(GLenum face, GLenum mode);
  99. void ( APIENTRY * qglColorPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  100. void ( APIENTRY * qglCopyPixels )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
  101. void ( APIENTRY * qglCopyTexImage1D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
  102. void ( APIENTRY * qglCopyTexImage2D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
  103. void ( APIENTRY * qglCopyTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
  104. void ( APIENTRY * qglCopyTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  105. void ( APIENTRY * qglCullFace )(GLenum mode);
  106. void ( APIENTRY * qglDeleteLists )(GLuint list, GLsizei range);
  107. void ( APIENTRY * qglDeleteTextures )(GLsizei n, const GLuint *textures);
  108. void ( APIENTRY * qglDepthFunc )(GLenum func);
  109. void ( APIENTRY * qglDepthMask )(GLboolean flag);
  110. void ( APIENTRY * qglDepthRange )(GLclampd zNear, GLclampd zFar);
  111. void ( APIENTRY * qglDisable )(GLenum cap);
  112. void ( APIENTRY * qglDisableClientState )(GLenum array);
  113. void ( APIENTRY * qglDrawArrays )(GLenum mode, GLint first, GLsizei count);
  114. void ( APIENTRY * qglDrawBuffer )(GLenum mode);
  115. void ( APIENTRY * qglDrawElements )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
  116. void ( APIENTRY * qglDrawPixels )(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
  117. void ( APIENTRY * qglEdgeFlag )(GLboolean flag);
  118. void ( APIENTRY * qglEdgeFlagPointer )(GLsizei stride, const GLvoid *pointer);
  119. void ( APIENTRY * qglEdgeFlagv )(const GLboolean *flag);
  120. void ( APIENTRY * qglEnable )(GLenum cap);
  121. void ( APIENTRY * qglEnableClientState )(GLenum array);
  122. void ( APIENTRY * qglEnd )(void);
  123. void ( APIENTRY * qglEndList )(void);
  124. void ( APIENTRY * qglEvalCoord1d )(GLdouble u);
  125. void ( APIENTRY * qglEvalCoord1dv )(const GLdouble *u);
  126. void ( APIENTRY * qglEvalCoord1f )(GLfloat u);
  127. void ( APIENTRY * qglEvalCoord1fv )(const GLfloat *u);
  128. void ( APIENTRY * qglEvalCoord2d )(GLdouble u, GLdouble v);
  129. void ( APIENTRY * qglEvalCoord2dv )(const GLdouble *u);
  130. void ( APIENTRY * qglEvalCoord2f )(GLfloat u, GLfloat v);
  131. void ( APIENTRY * qglEvalCoord2fv )(const GLfloat *u);
  132. void ( APIENTRY * qglEvalMesh1 )(GLenum mode, GLint i1, GLint i2);
  133. void ( APIENTRY * qglEvalMesh2 )(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
  134. void ( APIENTRY * qglEvalPoint1 )(GLint i);
  135. void ( APIENTRY * qglEvalPoint2 )(GLint i, GLint j);
  136. void ( APIENTRY * qglFeedbackBuffer )(GLsizei size, GLenum type, GLfloat *buffer);
  137. void ( APIENTRY * qglFinish )(void);
  138. void ( APIENTRY * qglFlush )(void);
  139. void ( APIENTRY * qglFogf )(GLenum pname, GLfloat param);
  140. void ( APIENTRY * qglFogfv )(GLenum pname, const GLfloat *params);
  141. void ( APIENTRY * qglFogi )(GLenum pname, GLint param);
  142. void ( APIENTRY * qglFogiv )(GLenum pname, const GLint *params);
  143. void ( APIENTRY * qglFrontFace )(GLenum mode);
  144. void ( APIENTRY * qglFrustum )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  145. GLuint ( APIENTRY * qglGenLists )(GLsizei range);
  146. void ( APIENTRY * qglGenTextures )(GLsizei n, GLuint *textures);
  147. void ( APIENTRY * qglGetBooleanv )(GLenum pname, GLboolean *params);
  148. void ( APIENTRY * qglGetClipPlane )(GLenum plane, GLdouble *equation);
  149. void ( APIENTRY * qglGetDoublev )(GLenum pname, GLdouble *params);
  150. GLenum ( APIENTRY * qglGetError )(void);
  151. void ( APIENTRY * qglGetFloatv )(GLenum pname, GLfloat *params);
  152. void ( APIENTRY * qglGetIntegerv )(GLenum pname, GLint *params);
  153. void ( APIENTRY * qglGetLightfv )(GLenum light, GLenum pname, GLfloat *params);
  154. void ( APIENTRY * qglGetLightiv )(GLenum light, GLenum pname, GLint *params);
  155. void ( APIENTRY * qglGetMapdv )(GLenum target, GLenum query, GLdouble *v);
  156. void ( APIENTRY * qglGetMapfv )(GLenum target, GLenum query, GLfloat *v);
  157. void ( APIENTRY * qglGetMapiv )(GLenum target, GLenum query, GLint *v);
  158. void ( APIENTRY * qglGetMaterialfv )(GLenum face, GLenum pname, GLfloat *params);
  159. void ( APIENTRY * qglGetMaterialiv )(GLenum face, GLenum pname, GLint *params);
  160. void ( APIENTRY * qglGetPixelMapfv )(GLenum map, GLfloat *values);
  161. void ( APIENTRY * qglGetPixelMapuiv )(GLenum map, GLuint *values);
  162. void ( APIENTRY * qglGetPixelMapusv )(GLenum map, GLushort *values);
  163. void ( APIENTRY * qglGetPointerv )(GLenum pname, GLvoid* *params);
  164. void ( APIENTRY * qglGetPolygonStipple )(GLubyte *mask);
  165. const GLubyte * ( APIENTRY * qglGetString )(GLenum name);
  166. void ( APIENTRY * qglGetTexEnvfv )(GLenum target, GLenum pname, GLfloat *params);
  167. void ( APIENTRY * qglGetTexEnviv )(GLenum target, GLenum pname, GLint *params);
  168. void ( APIENTRY * qglGetTexGendv )(GLenum coord, GLenum pname, GLdouble *params);
  169. void ( APIENTRY * qglGetTexGenfv )(GLenum coord, GLenum pname, GLfloat *params);
  170. void ( APIENTRY * qglGetTexGeniv )(GLenum coord, GLenum pname, GLint *params);
  171. void ( APIENTRY * qglGetTexImage )(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
  172. void ( APIENTRY * qglGetTexLevelParameterfv )(GLenum target, GLint level, GLenum pname, GLfloat *params);
  173. void ( APIENTRY * qglGetTexLevelParameteriv )(GLenum target, GLint level, GLenum pname, GLint *params);
  174. void ( APIENTRY * qglGetTexParameterfv )(GLenum target, GLenum pname, GLfloat *params);
  175. void ( APIENTRY * qglGetTexParameteriv )(GLenum target, GLenum pname, GLint *params);
  176. void ( APIENTRY * qglHint )(GLenum target, GLenum mode);
  177. void ( APIENTRY * qglIndexMask )(GLuint mask);
  178. void ( APIENTRY * qglIndexPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
  179. void ( APIENTRY * qglIndexd )(GLdouble c);
  180. void ( APIENTRY * qglIndexdv )(const GLdouble *c);
  181. void ( APIENTRY * qglIndexf )(GLfloat c);
  182. void ( APIENTRY * qglIndexfv )(const GLfloat *c);
  183. void ( APIENTRY * qglIndexi )(GLint c);
  184. void ( APIENTRY * qglIndexiv )(const GLint *c);
  185. void ( APIENTRY * qglIndexs )(GLshort c);
  186. void ( APIENTRY * qglIndexsv )(const GLshort *c);
  187. void ( APIENTRY * qglIndexub )(GLubyte c);
  188. void ( APIENTRY * qglIndexubv )(const GLubyte *c);
  189. void ( APIENTRY * qglInitNames )(void);
  190. void ( APIENTRY * qglInterleavedArrays )(GLenum format, GLsizei stride, const GLvoid *pointer);
  191. GLboolean ( APIENTRY * qglIsEnabled )(GLenum cap);
  192. GLboolean ( APIENTRY * qglIsList )(GLuint list);
  193. GLboolean ( APIENTRY * qglIsTexture )(GLuint texture);
  194. void ( APIENTRY * qglLightModelf )(GLenum pname, GLfloat param);
  195. void ( APIENTRY * qglLightModelfv )(GLenum pname, const GLfloat *params);
  196. void ( APIENTRY * qglLightModeli )(GLenum pname, GLint param);
  197. void ( APIENTRY * qglLightModeliv )(GLenum pname, const GLint *params);
  198. void ( APIENTRY * qglLightf )(GLenum light, GLenum pname, GLfloat param);
  199. void ( APIENTRY * qglLightfv )(GLenum light, GLenum pname, const GLfloat *params);
  200. void ( APIENTRY * qglLighti )(GLenum light, GLenum pname, GLint param);
  201. void ( APIENTRY * qglLightiv )(GLenum light, GLenum pname, const GLint *params);
  202. void ( APIENTRY * qglLineStipple )(GLint factor, GLushort pattern);
  203. void ( APIENTRY * qglLineWidth )(GLfloat width);
  204. void ( APIENTRY * qglListBase )(GLuint base);
  205. void ( APIENTRY * qglLoadIdentity )(void);
  206. void ( APIENTRY * qglLoadMatrixd )(const GLdouble *m);
  207. void ( APIENTRY * qglLoadMatrixf )(const GLfloat *m);
  208. void ( APIENTRY * qglLoadName )(GLuint name);
  209. void ( APIENTRY * qglLogicOp )(GLenum opcode);
  210. void ( APIENTRY * qglMap1d )(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
  211. void ( APIENTRY * qglMap1f )(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
  212. void ( APIENTRY * qglMap2d )(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
  213. void ( APIENTRY * qglMap2f )(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
  214. void ( APIENTRY * qglMapGrid1d )(GLint un, GLdouble u1, GLdouble u2);
  215. void ( APIENTRY * qglMapGrid1f )(GLint un, GLfloat u1, GLfloat u2);
  216. void ( APIENTRY * qglMapGrid2d )(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
  217. void ( APIENTRY * qglMapGrid2f )(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
  218. void ( APIENTRY * qglMaterialf )(GLenum face, GLenum pname, GLfloat param);
  219. void ( APIENTRY * qglMaterialfv )(GLenum face, GLenum pname, const GLfloat *params);
  220. void ( APIENTRY * qglMateriali )(GLenum face, GLenum pname, GLint param);
  221. void ( APIENTRY * qglMaterialiv )(GLenum face, GLenum pname, const GLint *params);
  222. void ( APIENTRY * qglMatrixMode )(GLenum mode);
  223. void ( APIENTRY * qglMultMatrixd )(const GLdouble *m);
  224. void ( APIENTRY * qglMultMatrixf )(const GLfloat *m);
  225. void ( APIENTRY * qglNewList )(GLuint list, GLenum mode);
  226. void ( APIENTRY * qglNormal3b )(GLbyte nx, GLbyte ny, GLbyte nz);
  227. void ( APIENTRY * qglNormal3bv )(const GLbyte *v);
  228. void ( APIENTRY * qglNormal3d )(GLdouble nx, GLdouble ny, GLdouble nz);
  229. void ( APIENTRY * qglNormal3dv )(const GLdouble *v);
  230. void ( APIENTRY * qglNormal3f )(GLfloat nx, GLfloat ny, GLfloat nz);
  231. void ( APIENTRY * qglNormal3fv )(const GLfloat *v);
  232. void ( APIENTRY * qglNormal3i )(GLint nx, GLint ny, GLint nz);
  233. void ( APIENTRY * qglNormal3iv )(const GLint *v);
  234. void ( APIENTRY * qglNormal3s )(GLshort nx, GLshort ny, GLshort nz);
  235. void ( APIENTRY * qglNormal3sv )(const GLshort *v);
  236. void ( APIENTRY * qglNormalPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
  237. void ( APIENTRY * qglOrtho )(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  238. void ( APIENTRY * qglPassThrough )(GLfloat token);
  239. void ( APIENTRY * qglPixelMapfv )(GLenum map, GLsizei mapsize, const GLfloat *values);
  240. void ( APIENTRY * qglPixelMapuiv )(GLenum map, GLsizei mapsize, const GLuint *values);
  241. void ( APIENTRY * qglPixelMapusv )(GLenum map, GLsizei mapsize, const GLushort *values);
  242. void ( APIENTRY * qglPixelStoref )(GLenum pname, GLfloat param);
  243. void ( APIENTRY * qglPixelStorei )(GLenum pname, GLint param);
  244. void ( APIENTRY * qglPixelTransferf )(GLenum pname, GLfloat param);
  245. void ( APIENTRY * qglPixelTransferi )(GLenum pname, GLint param);
  246. void ( APIENTRY * qglPixelZoom )(GLfloat xfactor, GLfloat yfactor);
  247. void ( APIENTRY * qglPointSize )(GLfloat size);
  248. void ( APIENTRY * qglPolygonMode )(GLenum face, GLenum mode);
  249. void ( APIENTRY * qglPolygonOffset )(GLfloat factor, GLfloat units);
  250. void ( APIENTRY * qglPolygonStipple )(const GLubyte *mask);
  251. void ( APIENTRY * qglPopAttrib )(void);
  252. void ( APIENTRY * qglPopClientAttrib )(void);
  253. void ( APIENTRY * qglPopMatrix )(void);
  254. void ( APIENTRY * qglPopName )(void);
  255. void ( APIENTRY * qglPrioritizeTextures )(GLsizei n, const GLuint *textures, const GLclampf *priorities);
  256. void ( APIENTRY * qglPushAttrib )(GLbitfield mask);
  257. void ( APIENTRY * qglPushClientAttrib )(GLbitfield mask);
  258. void ( APIENTRY * qglPushMatrix )(void);
  259. void ( APIENTRY * qglPushName )(GLuint name);
  260. void ( APIENTRY * qglRasterPos2d )(GLdouble x, GLdouble y);
  261. void ( APIENTRY * qglRasterPos2dv )(const GLdouble *v);
  262. void ( APIENTRY * qglRasterPos2f )(GLfloat x, GLfloat y);
  263. void ( APIENTRY * qglRasterPos2fv )(const GLfloat *v);
  264. void ( APIENTRY * qglRasterPos2i )(GLint x, GLint y);
  265. void ( APIENTRY * qglRasterPos2iv )(const GLint *v);
  266. void ( APIENTRY * qglRasterPos2s )(GLshort x, GLshort y);
  267. void ( APIENTRY * qglRasterPos2sv )(const GLshort *v);
  268. void ( APIENTRY * qglRasterPos3d )(GLdouble x, GLdouble y, GLdouble z);
  269. void ( APIENTRY * qglRasterPos3dv )(const GLdouble *v);
  270. void ( APIENTRY * qglRasterPos3f )(GLfloat x, GLfloat y, GLfloat z);
  271. void ( APIENTRY * qglRasterPos3fv )(const GLfloat *v);
  272. void ( APIENTRY * qglRasterPos3i )(GLint x, GLint y, GLint z);
  273. void ( APIENTRY * qglRasterPos3iv )(const GLint *v);
  274. void ( APIENTRY * qglRasterPos3s )(GLshort x, GLshort y, GLshort z);
  275. void ( APIENTRY * qglRasterPos3sv )(const GLshort *v);
  276. void ( APIENTRY * qglRasterPos4d )(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  277. void ( APIENTRY * qglRasterPos4dv )(const GLdouble *v);
  278. void ( APIENTRY * qglRasterPos4f )(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  279. void ( APIENTRY * qglRasterPos4fv )(const GLfloat *v);
  280. void ( APIENTRY * qglRasterPos4i )(GLint x, GLint y, GLint z, GLint w);
  281. void ( APIENTRY * qglRasterPos4iv )(const GLint *v);
  282. void ( APIENTRY * qglRasterPos4s )(GLshort x, GLshort y, GLshort z, GLshort w);
  283. void ( APIENTRY * qglRasterPos4sv )(const GLshort *v);
  284. void ( APIENTRY * qglReadBuffer )(GLenum mode);
  285. void ( APIENTRY * qglReadPixels )(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
  286. void ( APIENTRY * qglRectd )(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
  287. void ( APIENTRY * qglRectdv )(const GLdouble *v1, const GLdouble *v2);
  288. void ( APIENTRY * qglRectf )(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
  289. void ( APIENTRY * qglRectfv )(const GLfloat *v1, const GLfloat *v2);
  290. void ( APIENTRY * qglRecti )(GLint x1, GLint y1, GLint x2, GLint y2);
  291. void ( APIENTRY * qglRectiv )(const GLint *v1, const GLint *v2);
  292. void ( APIENTRY * qglRects )(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
  293. void ( APIENTRY * qglRectsv )(const GLshort *v1, const GLshort *v2);
  294. GLint ( APIENTRY * qglRenderMode )(GLenum mode);
  295. void ( APIENTRY * qglRotated )(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
  296. void ( APIENTRY * qglRotatef )(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
  297. void ( APIENTRY * qglScaled )(GLdouble x, GLdouble y, GLdouble z);
  298. void ( APIENTRY * qglScalef )(GLfloat x, GLfloat y, GLfloat z);
  299. void ( APIENTRY * qglScissor )(GLint x, GLint y, GLsizei width, GLsizei height);
  300. void ( APIENTRY * qglSelectBuffer )(GLsizei size, GLuint *buffer);
  301. void ( APIENTRY * qglShadeModel )(GLenum mode);
  302. void ( APIENTRY * qglStencilFunc )(GLenum func, GLint ref, GLuint mask);
  303. void ( APIENTRY * qglStencilMask )(GLuint mask);
  304. void ( APIENTRY * qglStencilOp )(GLenum fail, GLenum zfail, GLenum zpass);
  305. void ( APIENTRY * qglTexCoord1d )(GLdouble s);
  306. void ( APIENTRY * qglTexCoord1dv )(const GLdouble *v);
  307. void ( APIENTRY * qglTexCoord1f )(GLfloat s);
  308. void ( APIENTRY * qglTexCoord1fv )(const GLfloat *v);
  309. void ( APIENTRY * qglTexCoord1i )(GLint s);
  310. void ( APIENTRY * qglTexCoord1iv )(const GLint *v);
  311. void ( APIENTRY * qglTexCoord1s )(GLshort s);
  312. void ( APIENTRY * qglTexCoord1sv )(const GLshort *v);
  313. void ( APIENTRY * qglTexCoord2d )(GLdouble s, GLdouble t);
  314. void ( APIENTRY * qglTexCoord2dv )(const GLdouble *v);
  315. void ( APIENTRY * qglTexCoord2f )(GLfloat s, GLfloat t);
  316. void ( APIENTRY * qglTexCoord2fv )(const GLfloat *v);
  317. void ( APIENTRY * qglTexCoord2i )(GLint s, GLint t);
  318. void ( APIENTRY * qglTexCoord2iv )(const GLint *v);
  319. void ( APIENTRY * qglTexCoord2s )(GLshort s, GLshort t);
  320. void ( APIENTRY * qglTexCoord2sv )(const GLshort *v);
  321. void ( APIENTRY * qglTexCoord3d )(GLdouble s, GLdouble t, GLdouble r);
  322. void ( APIENTRY * qglTexCoord3dv )(const GLdouble *v);
  323. void ( APIENTRY * qglTexCoord3f )(GLfloat s, GLfloat t, GLfloat r);
  324. void ( APIENTRY * qglTexCoord3fv )(const GLfloat *v);
  325. void ( APIENTRY * qglTexCoord3i )(GLint s, GLint t, GLint r);
  326. void ( APIENTRY * qglTexCoord3iv )(const GLint *v);
  327. void ( APIENTRY * qglTexCoord3s )(GLshort s, GLshort t, GLshort r);
  328. void ( APIENTRY * qglTexCoord3sv )(const GLshort *v);
  329. void ( APIENTRY * qglTexCoord4d )(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
  330. void ( APIENTRY * qglTexCoord4dv )(const GLdouble *v);
  331. void ( APIENTRY * qglTexCoord4f )(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
  332. void ( APIENTRY * qglTexCoord4fv )(const GLfloat *v);
  333. void ( APIENTRY * qglTexCoord4i )(GLint s, GLint t, GLint r, GLint q);
  334. void ( APIENTRY * qglTexCoord4iv )(const GLint *v);
  335. void ( APIENTRY * qglTexCoord4s )(GLshort s, GLshort t, GLshort r, GLshort q);
  336. void ( APIENTRY * qglTexCoord4sv )(const GLshort *v);
  337. void ( APIENTRY * qglTexCoordPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  338. void ( APIENTRY * qglTexEnvf )(GLenum target, GLenum pname, GLfloat param);
  339. void ( APIENTRY * qglTexEnvfv )(GLenum target, GLenum pname, const GLfloat *params);
  340. void ( APIENTRY * qglTexEnvi )(GLenum target, GLenum pname, GLint param);
  341. void ( APIENTRY * qglTexEnviv )(GLenum target, GLenum pname, const GLint *params);
  342. void ( APIENTRY * qglTexGend )(GLenum coord, GLenum pname, GLdouble param);
  343. void ( APIENTRY * qglTexGendv )(GLenum coord, GLenum pname, const GLdouble *params);
  344. void ( APIENTRY * qglTexGenf )(GLenum coord, GLenum pname, GLfloat param);
  345. void ( APIENTRY * qglTexGenfv )(GLenum coord, GLenum pname, const GLfloat *params);
  346. void ( APIENTRY * qglTexGeni )(GLenum coord, GLenum pname, GLint param);
  347. void ( APIENTRY * qglTexGeniv )(GLenum coord, GLenum pname, const GLint *params);
  348. void ( APIENTRY * qglTexImage1D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
  349. void ( APIENTRY * qglTexImage2D )(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
  350. void ( APIENTRY * qglTexParameterf )(GLenum target, GLenum pname, GLfloat param);
  351. void ( APIENTRY * qglTexParameterfv )(GLenum target, GLenum pname, const GLfloat *params);
  352. void ( APIENTRY * qglTexParameteri )(GLenum target, GLenum pname, GLint param);
  353. void ( APIENTRY * qglTexParameteriv )(GLenum target, GLenum pname, const GLint *params);
  354. void ( APIENTRY * qglTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
  355. void ( APIENTRY * qglTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
  356. void ( APIENTRY * qglTranslated )(GLdouble x, GLdouble y, GLdouble z);
  357. void ( APIENTRY * qglTranslatef )(GLfloat x, GLfloat y, GLfloat z);
  358. void ( APIENTRY * qglVertex2d )(GLdouble x, GLdouble y);
  359. void ( APIENTRY * qglVertex2dv )(const GLdouble *v);
  360. void ( APIENTRY * qglVertex2f )(GLfloat x, GLfloat y);
  361. void ( APIENTRY * qglVertex2fv )(const GLfloat *v);
  362. void ( APIENTRY * qglVertex2i )(GLint x, GLint y);
  363. void ( APIENTRY * qglVertex2iv )(const GLint *v);
  364. void ( APIENTRY * qglVertex2s )(GLshort x, GLshort y);
  365. void ( APIENTRY * qglVertex2sv )(const GLshort *v);
  366. void ( APIENTRY * qglVertex3d )(GLdouble x, GLdouble y, GLdouble z);
  367. void ( APIENTRY * qglVertex3dv )(const GLdouble *v);
  368. void ( APIENTRY * qglVertex3f )(GLfloat x, GLfloat y, GLfloat z);
  369. void ( APIENTRY * qglVertex3fv )(const GLfloat *v);
  370. void ( APIENTRY * qglVertex3i )(GLint x, GLint y, GLint z);
  371. void ( APIENTRY * qglVertex3iv )(const GLint *v);
  372. void ( APIENTRY * qglVertex3s )(GLshort x, GLshort y, GLshort z);
  373. void ( APIENTRY * qglVertex3sv )(const GLshort *v);
  374. void ( APIENTRY * qglVertex4d )(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  375. void ( APIENTRY * qglVertex4dv )(const GLdouble *v);
  376. void ( APIENTRY * qglVertex4f )(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  377. void ( APIENTRY * qglVertex4fv )(const GLfloat *v);
  378. void ( APIENTRY * qglVertex4i )(GLint x, GLint y, GLint z, GLint w);
  379. void ( APIENTRY * qglVertex4iv )(const GLint *v);
  380. void ( APIENTRY * qglVertex4s )(GLshort x, GLshort y, GLshort z, GLshort w);
  381. void ( APIENTRY * qglVertex4sv )(const GLshort *v);
  382. void ( APIENTRY * qglVertexPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  383. void ( APIENTRY * qglViewport )(GLint x, GLint y, GLsizei width, GLsizei height);
  384.  
  385. BOOL ( WINAPI * qwglSwapIntervalEXT)( int interval );
  386. BOOL ( WINAPI * qwglGetDeviceGammaRampEXT)( unsigned char *, unsigned char *, unsigned char * );
  387. BOOL ( WINAPI * qwglSetDeviceGammaRampEXT)( const unsigned char *, const unsigned char *, const unsigned char * );
  388. void ( APIENTRY * qglPointParameterfEXT)( GLenum param, GLfloat value );
  389. void ( APIENTRY * qglPointParameterfvEXT)( GLenum param, const GLfloat *value );
  390. void ( APIENTRY * qglColorTableEXT)( int, int, int, int, int, const void * );
  391. void ( APIENTRY * qglSelectTextureSGIS)( GLenum );
  392. void ( APIENTRY * qglMTexCoord2fSGIS)( GLenum, GLfloat, GLfloat );
  393.  
  394.  
  395. // glu stuff
  396. void (APIENTRY * qgluPerspective) (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar);
  397. int  (APIENTRY * qgluBuild2DMipmaps) (GLenum target, GLint components, GLint width, GLint height, GLenum format, GLenum      type, const void  *data);
  398. // added for plugins
  399. void (APIENTRY * qgluLookAt)(
  400.   GLdouble eyex,
  401.   GLdouble eyey,
  402.   GLdouble eyez,
  403.   GLdouble centerx,
  404.   GLdouble centery,
  405.   GLdouble centerz,
  406.   GLdouble upx,
  407.   GLdouble upy,
  408.   GLdouble upz);
  409.  
  410.  
  411. /*
  412. ** QGL_Shutdown
  413. **
  414. ** Unloads the specified DLL then nulls out all the proc pointers.
  415. */
  416. void QGL_Shutdown()
  417. {
  418.     if (g_hGLDLL)
  419.     {
  420.     FreeLibrary(g_hGLDLL);
  421.     g_hGLDLL = NULL;
  422.     }
  423.     if (g_hGLUDLL)
  424.     {
  425.     FreeLibrary(g_hGLUDLL);
  426.     g_hGLUDLL = NULL;
  427.     }
  428.  
  429.  
  430.     qglAccum                     = NULL;
  431.     qglAlphaFunc                 = NULL;
  432.     qglAreTexturesResident       = NULL;
  433.     qglArrayElement              = NULL;
  434.     qglBegin                     = NULL;
  435.     qglBindTexture               = NULL;
  436.     qglBitmap                    = NULL;
  437.     qglBlendFunc                 = NULL;
  438.     qglCallList                  = NULL;
  439.     qglCallLists                 = NULL;
  440.     qglClear                     = NULL;
  441.     qglClearAccum                = NULL;
  442.     qglClearColor                = NULL;
  443.     qglClearDepth                = NULL;
  444.     qglClearIndex                = NULL;
  445.     qglClearStencil              = NULL;
  446.     qglClipPlane                 = NULL;
  447.     qglColor3b                   = NULL;
  448.     qglColor3bv                  = NULL;
  449.     qglColor3d                   = NULL;
  450.     qglColor3dv                  = NULL;
  451.     qglColor3f                   = NULL;
  452.     qglColor3fv                  = NULL;
  453.     qglColor3i                   = NULL;
  454.     qglColor3iv                  = NULL;
  455.     qglColor3s                   = NULL;
  456.     qglColor3sv                  = NULL;
  457.     qglColor3ub                  = NULL;
  458.     qglColor3ubv                 = NULL;
  459.     qglColor3ui                  = NULL;
  460.     qglColor3uiv                 = NULL;
  461.     qglColor3us                  = NULL;
  462.     qglColor3usv                 = NULL;
  463.     qglColor4b                   = NULL;
  464.     qglColor4bv                  = NULL;
  465.     qglColor4d                   = NULL;
  466.     qglColor4dv                  = NULL;
  467.     qglColor4f                   = NULL;
  468.     qglColor4fv                  = NULL;
  469.     qglColor4i                   = NULL;
  470.     qglColor4iv                  = NULL;
  471.     qglColor4s                   = NULL;
  472.     qglColor4sv                  = NULL;
  473.     qglColor4ub                  = NULL;
  474.     qglColor4ubv                 = NULL;
  475.     qglColor4ui                  = NULL;
  476.     qglColor4uiv                 = NULL;
  477.     qglColor4us                  = NULL;
  478.     qglColor4usv                 = NULL;
  479.     qglColorMask                 = NULL;
  480.     qglColorMaterial             = NULL;
  481.     qglColorPointer              = NULL;
  482.     qglCopyPixels                = NULL;
  483.     qglCopyTexImage1D            = NULL;
  484.     qglCopyTexImage2D            = NULL;
  485.     qglCopyTexSubImage1D         = NULL;
  486.     qglCopyTexSubImage2D         = NULL;
  487.     qglCullFace                  = NULL;
  488.     qglDeleteLists               = NULL;
  489.     qglDeleteTextures            = NULL;
  490.     qglDepthFunc                 = NULL;
  491.     qglDepthMask                 = NULL;
  492.     qglDepthRange                = NULL;
  493.     qglDisable                   = NULL;
  494.     qglDisableClientState        = NULL;
  495.     qglDrawArrays                = NULL;
  496.     qglDrawBuffer                = NULL;
  497.     qglDrawElements              = NULL;
  498.     qglDrawPixels                = NULL;
  499.     qglEdgeFlag                  = NULL;
  500.     qglEdgeFlagPointer           = NULL;
  501.     qglEdgeFlagv                 = NULL;
  502.     qglEnable                    = NULL;
  503.     qglEnableClientState         = NULL;
  504.     qglEnd                       = NULL;
  505.     qglEndList                   = NULL;
  506.     qglEvalCoord1d               = NULL;
  507.     qglEvalCoord1dv              = NULL;
  508.     qglEvalCoord1f               = NULL;
  509.     qglEvalCoord1fv              = NULL;
  510.     qglEvalCoord2d               = NULL;
  511.     qglEvalCoord2dv              = NULL;
  512.     qglEvalCoord2f               = NULL;
  513.     qglEvalCoord2fv              = NULL;
  514.     qglEvalMesh1                 = NULL;
  515.     qglEvalMesh2                 = NULL;
  516.     qglEvalPoint1                = NULL;
  517.     qglEvalPoint2                = NULL;
  518.     qglFeedbackBuffer            = NULL;
  519.     qglFinish                    = NULL;
  520.     qglFlush                     = NULL;
  521.     qglFogf                      = NULL;
  522.     qglFogfv                     = NULL;
  523.     qglFogi                      = NULL;
  524.     qglFogiv                     = NULL;
  525.     qglFrontFace                 = NULL;
  526.     qglFrustum                   = NULL;
  527.     qglGenLists                  = NULL;
  528.     qglGenTextures               = NULL;
  529.     qglGetBooleanv               = NULL;
  530.     qglGetClipPlane              = NULL;
  531.     qglGetDoublev                = NULL;
  532.     qglGetError                  = NULL;
  533.     qglGetFloatv                 = NULL;
  534.     qglGetIntegerv               = NULL;
  535.     qglGetLightfv                = NULL;
  536.     qglGetLightiv                = NULL;
  537.     qglGetMapdv                  = NULL;
  538.     qglGetMapfv                  = NULL;
  539.     qglGetMapiv                  = NULL;
  540.     qglGetMaterialfv             = NULL;
  541.     qglGetMaterialiv             = NULL;
  542.     qglGetPixelMapfv             = NULL;
  543.     qglGetPixelMapuiv            = NULL;
  544.     qglGetPixelMapusv            = NULL;
  545.     qglGetPointerv               = NULL;
  546.     qglGetPolygonStipple         = NULL;
  547.     qglGetString                 = NULL;
  548.     qglGetTexEnvfv               = NULL;
  549.     qglGetTexEnviv               = NULL;
  550.     qglGetTexGendv               = NULL;
  551.     qglGetTexGenfv               = NULL;
  552.     qglGetTexGeniv               = NULL;
  553.     qglGetTexImage               = NULL;
  554.     qglGetTexLevelParameterfv    = NULL;
  555.     qglGetTexLevelParameteriv    = NULL;
  556.     qglGetTexParameterfv         = NULL;
  557.     qglGetTexParameteriv         = NULL;
  558.     qglHint                      = NULL;
  559.     qglIndexMask                 = NULL;
  560.     qglIndexPointer              = NULL;
  561.     qglIndexd                    = NULL;
  562.     qglIndexdv                   = NULL;
  563.     qglIndexf                    = NULL;
  564.     qglIndexfv                   = NULL;
  565.     qglIndexi                    = NULL;
  566.     qglIndexiv                   = NULL;
  567.     qglIndexs                    = NULL;
  568.     qglIndexsv                   = NULL;
  569.     qglIndexub                   = NULL;
  570.     qglIndexubv                  = NULL;
  571.     qglInitNames                 = NULL;
  572.     qglInterleavedArrays         = NULL;
  573.     qglIsEnabled                 = NULL;
  574.     qglIsList                    = NULL;
  575.     qglIsTexture                 = NULL;
  576.     qglLightModelf               = NULL;
  577.     qglLightModelfv              = NULL;
  578.     qglLightModeli               = NULL;
  579.     qglLightModeliv              = NULL;
  580.     qglLightf                    = NULL;
  581.     qglLightfv                   = NULL;
  582.     qglLighti                    = NULL;
  583.     qglLightiv                   = NULL;
  584.     qglLineStipple               = NULL;
  585.     qglLineWidth                 = NULL;
  586.     qglListBase                  = NULL;
  587.     qglLoadIdentity              = NULL;
  588.     qglLoadMatrixd               = NULL;
  589.     qglLoadMatrixf               = NULL;
  590.     qglLoadName                  = NULL;
  591.     qglLogicOp                   = NULL;
  592.     qglMap1d                     = NULL;
  593.     qglMap1f                     = NULL;
  594.     qglMap2d                     = NULL;
  595.     qglMap2f                     = NULL;
  596.     qglMapGrid1d                 = NULL;
  597.     qglMapGrid1f                 = NULL;
  598.     qglMapGrid2d                 = NULL;
  599.     qglMapGrid2f                 = NULL;
  600.     qglMaterialf                 = NULL;
  601.     qglMaterialfv                = NULL;
  602.     qglMateriali                 = NULL;
  603.     qglMaterialiv                = NULL;
  604.     qglMatrixMode                = NULL;
  605.     qglMultMatrixd               = NULL;
  606.     qglMultMatrixf               = NULL;
  607.     qglNewList                   = NULL;
  608.     qglNormal3b                  = NULL;
  609.     qglNormal3bv                 = NULL;
  610.     qglNormal3d                  = NULL;
  611.     qglNormal3dv                 = NULL;
  612.     qglNormal3f                  = NULL;
  613.     qglNormal3fv                 = NULL;
  614.     qglNormal3i                  = NULL;
  615.     qglNormal3iv                 = NULL;
  616.     qglNormal3s                  = NULL;
  617.     qglNormal3sv                 = NULL;
  618.     qglNormalPointer             = NULL;
  619.     qglOrtho                     = NULL;
  620.     qglPassThrough               = NULL;
  621.     qglPixelMapfv                = NULL;
  622.     qglPixelMapuiv               = NULL;
  623.     qglPixelMapusv               = NULL;
  624.     qglPixelStoref               = NULL;
  625.     qglPixelStorei               = NULL;
  626.     qglPixelTransferf            = NULL;
  627.     qglPixelTransferi            = NULL;
  628.     qglPixelZoom                 = NULL;
  629.     qglPointSize                 = NULL;
  630.     qglPolygonMode               = NULL;
  631.     qglPolygonOffset             = NULL;
  632.     qglPolygonStipple            = NULL;
  633.     qglPopAttrib                 = NULL;
  634.     qglPopClientAttrib           = NULL;
  635.     qglPopMatrix                 = NULL;
  636.     qglPopName                   = NULL;
  637.     qglPrioritizeTextures        = NULL;
  638.     qglPushAttrib                = NULL;
  639.     qglPushClientAttrib          = NULL;
  640.     qglPushMatrix                = NULL;
  641.     qglPushName                  = NULL;
  642.     qglRasterPos2d               = NULL;
  643.     qglRasterPos2dv              = NULL;
  644.     qglRasterPos2f               = NULL;
  645.     qglRasterPos2fv              = NULL;
  646.     qglRasterPos2i               = NULL;
  647.     qglRasterPos2iv              = NULL;
  648.     qglRasterPos2s               = NULL;
  649.     qglRasterPos2sv              = NULL;
  650.     qglRasterPos3d               = NULL;
  651.     qglRasterPos3dv              = NULL;
  652.     qglRasterPos3f               = NULL;
  653.     qglRasterPos3fv              = NULL;
  654.     qglRasterPos3i               = NULL;
  655.     qglRasterPos3iv              = NULL;
  656.     qglRasterPos3s               = NULL;
  657.     qglRasterPos3sv              = NULL;
  658.     qglRasterPos4d               = NULL;
  659.     qglRasterPos4dv              = NULL;
  660.     qglRasterPos4f               = NULL;
  661.     qglRasterPos4fv              = NULL;
  662.     qglRasterPos4i               = NULL;
  663.     qglRasterPos4iv              = NULL;
  664.     qglRasterPos4s               = NULL;
  665.     qglRasterPos4sv              = NULL;
  666.     qglReadBuffer                = NULL;
  667.     qglReadPixels                = NULL;
  668.     qglRectd                     = NULL;
  669.     qglRectdv                    = NULL;
  670.     qglRectf                     = NULL;
  671.     qglRectfv                    = NULL;
  672.     qglRecti                     = NULL;
  673.     qglRectiv                    = NULL;
  674.     qglRects                     = NULL;
  675.     qglRectsv                    = NULL;
  676.     qglRenderMode                = NULL;
  677.     qglRotated                   = NULL;
  678.     qglRotatef                   = NULL;
  679.     qglScaled                    = NULL;
  680.     qglScalef                    = NULL;
  681.     qglScissor                   = NULL;
  682.     qglSelectBuffer              = NULL;
  683.     qglShadeModel                = NULL;
  684.     qglStencilFunc               = NULL;
  685.     qglStencilMask               = NULL;
  686.     qglStencilOp                 = NULL;
  687.     qglTexCoord1d                = NULL;
  688.     qglTexCoord1dv               = NULL;
  689.     qglTexCoord1f                = NULL;
  690.     qglTexCoord1fv               = NULL;
  691.     qglTexCoord1i                = NULL;
  692.     qglTexCoord1iv               = NULL;
  693.     qglTexCoord1s                = NULL;
  694.     qglTexCoord1sv               = NULL;
  695.     qglTexCoord2d                = NULL;
  696.     qglTexCoord2dv               = NULL;
  697.     qglTexCoord2f                = NULL;
  698.     qglTexCoord2fv               = NULL;
  699.     qglTexCoord2i                = NULL;
  700.     qglTexCoord2iv               = NULL;
  701.     qglTexCoord2s                = NULL;
  702.     qglTexCoord2sv               = NULL;
  703.     qglTexCoord3d                = NULL;
  704.     qglTexCoord3dv               = NULL;
  705.     qglTexCoord3f                = NULL;
  706.     qglTexCoord3fv               = NULL;
  707.     qglTexCoord3i                = NULL;
  708.     qglTexCoord3iv               = NULL;
  709.     qglTexCoord3s                = NULL;
  710.     qglTexCoord3sv               = NULL;
  711.     qglTexCoord4d                = NULL;
  712.     qglTexCoord4dv               = NULL;
  713.     qglTexCoord4f                = NULL;
  714.     qglTexCoord4fv               = NULL;
  715.     qglTexCoord4i                = NULL;
  716.     qglTexCoord4iv               = NULL;
  717.     qglTexCoord4s                = NULL;
  718.     qglTexCoord4sv               = NULL;
  719.     qglTexCoordPointer           = NULL;
  720.     qglTexEnvf                   = NULL;
  721.     qglTexEnvfv                  = NULL;
  722.     qglTexEnvi                   = NULL;
  723.     qglTexEnviv                  = NULL;
  724.     qglTexGend                   = NULL;
  725.     qglTexGendv                  = NULL;
  726.     qglTexGenf                   = NULL;
  727.     qglTexGenfv                  = NULL;
  728.     qglTexGeni                   = NULL;
  729.     qglTexGeniv                  = NULL;
  730.     qglTexImage1D                = NULL;
  731.     qglTexImage2D                = NULL;
  732.     qglTexParameterf             = NULL;
  733.     qglTexParameterfv            = NULL;
  734.     qglTexParameteri             = NULL;
  735.     qglTexParameteriv            = NULL;
  736.     qglTexSubImage1D             = NULL;
  737.     qglTexSubImage2D             = NULL;
  738.     qglTranslated                = NULL;
  739.     qglTranslatef                = NULL;
  740.     qglVertex2d                  = NULL;
  741.     qglVertex2dv                 = NULL;
  742.     qglVertex2f                  = NULL;
  743.     qglVertex2fv                 = NULL;
  744.     qglVertex2i                  = NULL;
  745.     qglVertex2iv                 = NULL;
  746.     qglVertex2s                  = NULL;
  747.     qglVertex2sv                 = NULL;
  748.     qglVertex3d                  = NULL;
  749.     qglVertex3dv                 = NULL;
  750.     qglVertex3f                  = NULL;
  751.     qglVertex3fv                 = NULL;
  752.     qglVertex3i                  = NULL;
  753.     qglVertex3iv                 = NULL;
  754.     qglVertex3s                  = NULL;
  755.     qglVertex3sv                 = NULL;
  756.     qglVertex4d                  = NULL;
  757.     qglVertex4dv                 = NULL;
  758.     qglVertex4f                  = NULL;
  759.     qglVertex4fv                 = NULL;
  760.     qglVertex4i                  = NULL;
  761.     qglVertex4iv                 = NULL;
  762.     qglVertex4s                  = NULL;
  763.     qglVertex4sv                 = NULL;
  764.     qglVertexPointer             = NULL;
  765.     qglViewport                  = NULL;
  766.  
  767.     qwglCopyContext              = NULL;
  768.     qwglCreateContext            = NULL;
  769.     qwglCreateLayerContext       = NULL;
  770.     qwglDeleteContext            = NULL;
  771.     qwglDescribeLayerPlane       = NULL;
  772.     qwglGetCurrentContext        = NULL;
  773.     qwglGetCurrentDC             = NULL;
  774.     qwglGetLayerPaletteEntries   = NULL;
  775.     qwglGetProcAddress           = NULL;
  776.     qwglMakeCurrent              = NULL;
  777.     qwglRealizeLayerPalette      = NULL;
  778.     qwglSetLayerPaletteEntries   = NULL;
  779.     qwglShareLists               = NULL;
  780.     qwglSwapLayerBuffers         = NULL;
  781.     qwglUseFontBitmaps           = NULL;
  782.     qwglUseFontOutlines          = NULL;
  783.  
  784.     qwglChoosePixelFormat        = NULL;
  785.     qwglDescribePixelFormat      = NULL;
  786.     qwglGetPixelFormat           = NULL;
  787.     qwglSetPixelFormat           = NULL;
  788.     qwglSwapBuffers              = NULL;
  789.  
  790.     qwglSwapIntervalEXT    = NULL;
  791.  
  792.     qwglGetDeviceGammaRampEXT = NULL;
  793.     qwglSetDeviceGammaRampEXT = NULL;
  794.  
  795.   qgluPerspective = NULL;
  796.   qgluBuild2DMipmaps = NULL;
  797.  
  798.   qgluLookAt = NULL;
  799. }
  800.  
  801. #    define GPA(h, a ) GetProcAddress( h, a )
  802.  
  803. /*
  804. ** QGL_Init
  805. **
  806. ** This is responsible for binding our qgl function pointers to 
  807. ** the appropriate GL stuff.  In Windows this means doing a 
  808. ** LoadLibrary and a bunch of calls to GetProcAddress.  On other
  809. ** operating systems we need to do the right thing, whatever that
  810. ** might be.
  811. ** 
  812. */
  813. int QGL_Init(const char *dllname, const char* pGluName )
  814. {
  815.  
  816.   g_hGLDLL = LoadLibrary(dllname);
  817.   if (g_hGLDLL == NULL)
  818.   {
  819.     return 0;
  820.   }
  821.  
  822.   g_hGLUDLL = LoadLibrary(pGluName);
  823.   if (g_hGLUDLL == NULL)
  824.   {
  825.     FreeLibrary(g_hGLDLL);
  826.     g_hGLDLL = NULL;
  827.     return 0;
  828.   }
  829.  
  830.  
  831.   qgluPerspective              = GPA(g_hGLUDLL, "gluPerspective");
  832.   qgluBuild2DMipmaps           = GPA(g_hGLUDLL, "gluBuild2DMipmaps");
  833.     // added for plugins
  834.     qgluLookAt                   = GPA(g_hGLUDLL, "gluLookAt" );
  835.  
  836.     qglAccum                     = GPA(g_hGLDLL, "glAccum" );
  837.     qglAlphaFunc                 = GPA(g_hGLDLL, "glAlphaFunc" );
  838.     qglAreTexturesResident       = GPA(g_hGLDLL, "glAreTexturesResident" );
  839.     qglArrayElement              = GPA(g_hGLDLL, "glArrayElement" );
  840.     qglBegin                     = GPA(g_hGLDLL, "glBegin" );
  841.     qglBindTexture               = GPA(g_hGLDLL, "glBindTexture" );
  842.     qglBitmap                    = GPA(g_hGLDLL, "glBitmap" );
  843.     qglBlendFunc                 = GPA(g_hGLDLL, "glBlendFunc" );
  844.     qglCallList                  = GPA(g_hGLDLL, "glCallList" );
  845.     qglCallLists                 = GPA(g_hGLDLL, "glCallLists" );
  846.     qglClear                     = GPA(g_hGLDLL, "glClear" );
  847.     qglClearAccum                = GPA(g_hGLDLL, "glClearAccum" );
  848.     qglClearColor                = GPA(g_hGLDLL, "glClearColor" );
  849.     qglClearDepth                = GPA(g_hGLDLL, "glClearDepth" );
  850.     qglClearIndex                = GPA(g_hGLDLL, "glClearIndex" );
  851.     qglClearStencil              = GPA(g_hGLDLL, "glClearStencil" );
  852.     qglClipPlane                 = GPA(g_hGLDLL, "glClipPlane" );
  853.     qglColor3b                   = GPA(g_hGLDLL, "glColor3b" );
  854.     qglColor3bv                  = GPA(g_hGLDLL, "glColor3bv" );
  855.     qglColor3d                   = GPA(g_hGLDLL, "glColor3d" );
  856.     qglColor3dv                  = GPA(g_hGLDLL, "glColor3dv" );
  857.     qglColor3f                   = GPA(g_hGLDLL, "glColor3f" );
  858.     qglColor3fv                  = GPA(g_hGLDLL, "glColor3fv" );
  859.     qglColor3i                   = GPA(g_hGLDLL, "glColor3i" );
  860.     qglColor3iv                  = GPA(g_hGLDLL, "glColor3iv" );
  861.     qglColor3s                   = GPA(g_hGLDLL, "glColor3s" );
  862.     qglColor3sv                  = GPA(g_hGLDLL, "glColor3sv" );
  863.     qglColor3ub                  = GPA(g_hGLDLL, "glColor3ub" );
  864.     qglColor3ubv                 = GPA(g_hGLDLL, "glColor3ubv" );
  865.     qglColor3ui                  = GPA(g_hGLDLL, "glColor3ui" );
  866.     qglColor3uiv                 = GPA(g_hGLDLL, "glColor3uiv" );
  867.     qglColor3us                  = GPA(g_hGLDLL, "glColor3us" );
  868.     qglColor3usv                 = GPA(g_hGLDLL, "glColor3usv" );
  869.     qglColor4b                   = GPA(g_hGLDLL, "glColor4b" );
  870.     qglColor4bv                  = GPA(g_hGLDLL, "glColor4bv" );
  871.     qglColor4d                   = GPA(g_hGLDLL, "glColor4d" );
  872.     qglColor4dv                  = GPA(g_hGLDLL, "glColor4dv" );
  873.     qglColor4f                   = GPA(g_hGLDLL, "glColor4f" );
  874.     qglColor4fv                  = GPA(g_hGLDLL, "glColor4fv" );
  875.     qglColor4i                   = GPA(g_hGLDLL, "glColor4i" );
  876.     qglColor4iv                  = GPA(g_hGLDLL, "glColor4iv" );
  877.     qglColor4s                   = GPA(g_hGLDLL, "glColor4s" );
  878.     qglColor4sv                  = GPA(g_hGLDLL, "glColor4sv" );
  879.     qglColor4ub                  = GPA(g_hGLDLL, "glColor4ub" );
  880.     qglColor4ubv                 = GPA(g_hGLDLL, "glColor4ubv" );
  881.     qglColor4ui                  = GPA(g_hGLDLL, "glColor4ui" );
  882.     qglColor4uiv                 = GPA(g_hGLDLL, "glColor4uiv" );
  883.     qglColor4us                  = GPA(g_hGLDLL, "glColor4us" );
  884.     qglColor4usv                 = GPA(g_hGLDLL, "glColor4usv" );
  885.     qglColorMask                 = GPA(g_hGLDLL, "glColorMask" );
  886.     qglColorMaterial             = GPA(g_hGLDLL, "glColorMaterial" );
  887.     qglColorPointer              = GPA(g_hGLDLL, "glColorPointer" );
  888.     qglCopyPixels                = GPA(g_hGLDLL, "glCopyPixels" );
  889.     qglCopyTexImage1D            = GPA(g_hGLDLL, "glCopyTexImage1D" );
  890.     qglCopyTexImage2D            = GPA(g_hGLDLL, "glCopyTexImage2D" );
  891.     qglCopyTexSubImage1D         = GPA(g_hGLDLL, "glCopyTexSubImage1D" );
  892.     qglCopyTexSubImage2D         = GPA(g_hGLDLL, "glCopyTexSubImage2D" );
  893.     qglCullFace                  = GPA(g_hGLDLL, "glCullFace" );
  894.     qglDeleteLists               = GPA(g_hGLDLL, "glDeleteLists" );
  895.     qglDeleteTextures            = GPA(g_hGLDLL, "glDeleteTextures" );
  896.     qglDepthFunc                 = GPA(g_hGLDLL, "glDepthFunc" );
  897.     qglDepthMask                 = GPA(g_hGLDLL, "glDepthMask" );
  898.     qglDepthRange                = GPA(g_hGLDLL, "glDepthRange" );
  899.     qglDisable                   = GPA(g_hGLDLL, "glDisable" );
  900.     qglDisableClientState        = GPA(g_hGLDLL, "glDisableClientState" );
  901.     qglDrawArrays                = GPA(g_hGLDLL, "glDrawArrays" );
  902.     qglDrawBuffer                = GPA(g_hGLDLL, "glDrawBuffer" );
  903.     qglDrawElements              = GPA(g_hGLDLL, "glDrawElements" );
  904.     qglDrawPixels                = GPA(g_hGLDLL, "glDrawPixels" );
  905.     qglEdgeFlag                  = GPA(g_hGLDLL, "glEdgeFlag" );
  906.     qglEdgeFlagPointer           = GPA(g_hGLDLL, "glEdgeFlagPointer" );
  907.     qglEdgeFlagv                 = GPA(g_hGLDLL, "glEdgeFlagv" );
  908.     qglEnable                    = GPA(g_hGLDLL, "glEnable" );
  909.     qglEnableClientState         = GPA(g_hGLDLL, "glEnableClientState" );
  910.     qglEnd                       = GPA(g_hGLDLL, "glEnd" );
  911.     qglEndList                   = GPA(g_hGLDLL, "glEndList" );
  912.     qglEvalCoord1d                       = GPA(g_hGLDLL, "glEvalCoord1d" );
  913.     qglEvalCoord1dv              = GPA(g_hGLDLL, "glEvalCoord1dv" );
  914.     qglEvalCoord1f               = GPA(g_hGLDLL, "glEvalCoord1f" );
  915.     qglEvalCoord1fv              = GPA(g_hGLDLL, "glEvalCoord1fv" );
  916.     qglEvalCoord2d               = GPA(g_hGLDLL, "glEvalCoord2d" );
  917.     qglEvalCoord2dv              = GPA(g_hGLDLL, "glEvalCoord2dv" );
  918.     qglEvalCoord2f               = GPA(g_hGLDLL, "glEvalCoord2f" );
  919.     qglEvalCoord2fv              = GPA(g_hGLDLL, "glEvalCoord2fv" );
  920.     qglEvalMesh1                 = GPA(g_hGLDLL, "glEvalMesh1" );
  921.     qglEvalMesh2                 = GPA(g_hGLDLL, "glEvalMesh2" );
  922.     qglEvalPoint1                = GPA(g_hGLDLL, "glEvalPoint1" );
  923.     qglEvalPoint2                = GPA(g_hGLDLL, "glEvalPoint2" );
  924.     qglFeedbackBuffer            = GPA(g_hGLDLL, "glFeedbackBuffer" );
  925.     qglFinish                    = GPA(g_hGLDLL, "glFinish" );
  926.     qglFlush                     = GPA(g_hGLDLL, "glFlush" );
  927.     qglFogf                      = GPA(g_hGLDLL, "glFogf" );
  928.     qglFogfv                     = GPA(g_hGLDLL, "glFogfv" );
  929.     qglFogi                      = GPA(g_hGLDLL, "glFogi" );
  930.     qglFogiv                     = GPA(g_hGLDLL, "glFogiv" );
  931.     qglFrontFace                 = GPA(g_hGLDLL, "glFrontFace" );
  932.     qglFrustum                   = GPA(g_hGLDLL, "glFrustum" );
  933.     qglGenLists                  = GPA(g_hGLDLL, "glGenLists" );
  934.     qglGenTextures               = GPA(g_hGLDLL, "glGenTextures" );
  935.     qglGetBooleanv               = GPA(g_hGLDLL, "glGetBooleanv" );
  936.     qglGetClipPlane              = GPA(g_hGLDLL, "glGetClipPlane" );
  937.     qglGetDoublev                = GPA(g_hGLDLL, "glGetDoublev" );
  938.     qglGetError                  = GPA(g_hGLDLL, "glGetError" );
  939.     qglGetFloatv                 = GPA(g_hGLDLL, "glGetFloatv" );
  940.     qglGetIntegerv               = GPA(g_hGLDLL, "glGetIntegerv" );
  941.     qglGetLightfv                = GPA(g_hGLDLL, "glGetLightfv" );
  942.     qglGetLightiv                = GPA(g_hGLDLL, "glGetLightiv" );
  943.     qglGetMapdv                  = GPA(g_hGLDLL, "glGetMapdv" );
  944.     qglGetMapfv                  = GPA(g_hGLDLL, "glGetMapfv" );
  945.     qglGetMapiv                  = GPA(g_hGLDLL, "glGetMapiv" );
  946.     qglGetMaterialfv             = GPA(g_hGLDLL, "glGetMaterialfv" );
  947.     qglGetMaterialiv             = GPA(g_hGLDLL, "glGetMaterialiv" );
  948.     qglGetPixelMapfv             = GPA(g_hGLDLL, "glGetPixelMapfv" );
  949.     qglGetPixelMapuiv            = GPA(g_hGLDLL, "glGetPixelMapuiv" );
  950.     qglGetPixelMapusv            = GPA(g_hGLDLL, "glGetPixelMapusv" );
  951.     qglGetPointerv               = GPA(g_hGLDLL, "glGetPointerv" );
  952.     qglGetPolygonStipple         = GPA(g_hGLDLL, "glGetPolygonStipple" );
  953.     qglGetString                 = GPA(g_hGLDLL, "glGetString" );
  954.     qglGetTexEnvfv               = GPA(g_hGLDLL, "glGetTexEnvfv" );
  955.     qglGetTexEnviv               = GPA(g_hGLDLL, "glGetTexEnviv" );
  956.     qglGetTexGendv               = GPA(g_hGLDLL, "glGetTexGendv" );
  957.     qglGetTexGenfv               = GPA(g_hGLDLL, "glGetTexGenfv" );
  958.     qglGetTexGeniv               = GPA(g_hGLDLL, "glGetTexGeniv" );
  959.     qglGetTexImage               = GPA(g_hGLDLL, "glGetTexImage" );
  960.     qglGetTexLevelParameterfv    = GPA(g_hGLDLL, "glGetLevelParameterfv" );
  961.     qglGetTexLevelParameteriv    = GPA(g_hGLDLL, "glGetLevelParameteriv" );
  962.     qglGetTexParameterfv         = GPA(g_hGLDLL, "glGetTexParameterfv" );
  963.     qglGetTexParameteriv         = GPA(g_hGLDLL, "glGetTexParameteriv" );
  964.     qglHint                      = GPA(g_hGLDLL, "glHint" );
  965.     qglIndexMask                 = GPA(g_hGLDLL, "glIndexMask" );
  966.     qglIndexPointer              = GPA(g_hGLDLL, "glIndexPointer" );
  967.     qglIndexd                    = GPA(g_hGLDLL, "glIndexd" );
  968.     qglIndexdv                   = GPA(g_hGLDLL, "glIndexdv" );
  969.     qglIndexf                    = GPA(g_hGLDLL, "glIndexf" );
  970.     qglIndexfv                   = GPA(g_hGLDLL, "glIndexfv" );
  971.     qglIndexi                    = GPA(g_hGLDLL, "glIndexi" );
  972.     qglIndexiv                   = GPA(g_hGLDLL, "glIndexiv" );
  973.     qglIndexs                    = GPA(g_hGLDLL, "glIndexs" );
  974.     qglIndexsv                   = GPA(g_hGLDLL, "glIndexsv" );
  975.     qglIndexub                   = GPA(g_hGLDLL, "glIndexub" );
  976.     qglIndexubv                  = GPA(g_hGLDLL, "glIndexubv" );
  977.     qglInitNames                 = GPA(g_hGLDLL, "glInitNames" );
  978.     qglInterleavedArrays         = GPA(g_hGLDLL, "glInterleavedArrays" );
  979.     qglIsEnabled                 = GPA(g_hGLDLL, "glIsEnabled" );
  980.     qglIsList                    = GPA(g_hGLDLL, "glIsList" );
  981.     qglIsTexture                 = GPA(g_hGLDLL, "glIsTexture" );
  982.     qglLightModelf               = GPA(g_hGLDLL, "glLightModelf" );
  983.     qglLightModelfv              = GPA(g_hGLDLL, "glLightModelfv" );
  984.     qglLightModeli               = GPA(g_hGLDLL, "glLightModeli" );
  985.     qglLightModeliv              = GPA(g_hGLDLL, "glLightModeliv" );
  986.     qglLightf                    = GPA(g_hGLDLL, "glLightf" );
  987.     qglLightfv                   = GPA(g_hGLDLL, "glLightfv" );
  988.     qglLighti                    = GPA(g_hGLDLL, "glLighti" );
  989.     qglLightiv                   = GPA(g_hGLDLL, "glLightiv" );
  990.     qglLineStipple               = GPA(g_hGLDLL, "glLineStipple" );
  991.     qglLineWidth                 = GPA(g_hGLDLL, "glLineWidth" );
  992.     qglListBase                  = GPA(g_hGLDLL, "glListBase" );
  993.     qglLoadIdentity              = GPA(g_hGLDLL, "glLoadIdentity" );
  994.     qglLoadMatrixd               = GPA(g_hGLDLL, "glLoadMatrixd" );
  995.     qglLoadMatrixf               = GPA(g_hGLDLL, "glLoadMatrixf" );
  996.     qglLoadName                  = GPA(g_hGLDLL, "glLoadName" );
  997.     qglLogicOp                   = GPA(g_hGLDLL, "glLogicOp" );
  998.     qglMap1d                     = GPA(g_hGLDLL, "glMap1d" );
  999.     qglMap1f                     = GPA(g_hGLDLL, "glMap1f" );
  1000.     qglMap2d                     = GPA(g_hGLDLL, "glMap2d" );
  1001.     qglMap2f                     = GPA(g_hGLDLL, "glMap2f" );
  1002.     qglMapGrid1d                 = GPA(g_hGLDLL, "glMapGrid1d" );
  1003.     qglMapGrid1f                 = GPA(g_hGLDLL, "glMapGrid1f" );
  1004.     qglMapGrid2d                 = GPA(g_hGLDLL, "glMapGrid2d" );
  1005.     qglMapGrid2f                 = GPA(g_hGLDLL, "glMapGrid2f" );
  1006.     qglMaterialf                 = GPA(g_hGLDLL, "glMaterialf" );
  1007.     qglMaterialfv                = GPA(g_hGLDLL, "glMaterialfv" );
  1008.     qglMateriali                 = GPA(g_hGLDLL, "glMateriali" );
  1009.     qglMaterialiv                = GPA(g_hGLDLL, "glMaterialiv" );
  1010.     qglMatrixMode                = GPA(g_hGLDLL, "glMatrixMode" );
  1011.     qglMultMatrixd               = GPA(g_hGLDLL, "glMultMatrixd" );
  1012.     qglMultMatrixf               = GPA(g_hGLDLL, "glMultMatrixf" );
  1013.     qglNewList                   = GPA(g_hGLDLL, "glNewList" );
  1014.     qglNormal3b                  = GPA(g_hGLDLL, "glNormal3b" );
  1015.     qglNormal3bv                 = GPA(g_hGLDLL, "glNormal3bv" );
  1016.     qglNormal3d                  = GPA(g_hGLDLL, "glNormal3d" );
  1017.     qglNormal3dv                 = GPA(g_hGLDLL, "glNormal3dv" );
  1018.     qglNormal3f                  = GPA(g_hGLDLL, "glNormal3f" );
  1019.     qglNormal3fv                 = GPA(g_hGLDLL, "glNormal3fv" );
  1020.     qglNormal3i                  = GPA(g_hGLDLL, "glNormal3i" );
  1021.     qglNormal3iv                 = GPA(g_hGLDLL, "glNormal3iv" );
  1022.     qglNormal3s                  = GPA(g_hGLDLL, "glNormal3s" );
  1023.     qglNormal3sv                 = GPA(g_hGLDLL, "glNormal3sv" );
  1024.     qglNormalPointer             = GPA(g_hGLDLL, "glNormalPointer" );
  1025.     qglOrtho                     = GPA(g_hGLDLL, "glOrtho" );
  1026.     qglPassThrough               = GPA(g_hGLDLL, "glPassThrough" );
  1027.     qglPixelMapfv                = GPA(g_hGLDLL, "glPixelMapfv" );
  1028.     qglPixelMapuiv               = GPA(g_hGLDLL, "glPixelMapuiv" );
  1029.     qglPixelMapusv               = GPA(g_hGLDLL, "glPixelMapusv" );
  1030.     qglPixelStoref               = GPA(g_hGLDLL, "glPixelStoref" );
  1031.     qglPixelStorei               = GPA(g_hGLDLL, "glPixelStorei" );
  1032.     qglPixelTransferf            = GPA(g_hGLDLL, "glPixelTransferf" );
  1033.     qglPixelTransferi            = GPA(g_hGLDLL, "glPixelTransferi" );
  1034.     qglPixelZoom                 = GPA(g_hGLDLL, "glPixelZoom" );
  1035.     qglPointSize                 = GPA(g_hGLDLL, "glPointSize" );
  1036.     qglPolygonMode               = GPA(g_hGLDLL, "glPolygonMode" );
  1037.     qglPolygonOffset             = GPA(g_hGLDLL, "glPolygonOffset" );
  1038.     qglPolygonStipple            = GPA(g_hGLDLL, "glPolygonStipple" );
  1039.     qglPopAttrib                 = GPA(g_hGLDLL, "glPopAttrib" );
  1040.     qglPopClientAttrib           = GPA(g_hGLDLL, "glPopClientAttrib" );
  1041.     qglPopMatrix                 = GPA(g_hGLDLL, "glPopMatrix" );
  1042.     qglPopName                   = GPA(g_hGLDLL, "glPopName" );
  1043.     qglPrioritizeTextures        = GPA(g_hGLDLL, "glPrioritizeTextures" );
  1044.     qglPushAttrib                = GPA(g_hGLDLL, "glPushAttrib" );
  1045.     qglPushClientAttrib          = GPA(g_hGLDLL, "glPushClientAttrib" );
  1046.     qglPushMatrix                = GPA(g_hGLDLL, "glPushMatrix" );
  1047.     qglPushName                  = GPA(g_hGLDLL, "glPushName" );
  1048.     qglRasterPos2d               = GPA(g_hGLDLL, "glRasterPos2d" );
  1049.     qglRasterPos2dv              = GPA(g_hGLDLL, "glRasterPos2dv" );
  1050.     qglRasterPos2f               = GPA(g_hGLDLL, "glRasterPos2f" );
  1051.     qglRasterPos2fv              = GPA(g_hGLDLL, "glRasterPos2fv" );
  1052.     qglRasterPos2i               = GPA(g_hGLDLL, "glRasterPos2i" );
  1053.     qglRasterPos2iv              = GPA(g_hGLDLL, "glRasterPos2iv" );
  1054.     qglRasterPos2s               = GPA(g_hGLDLL, "glRasterPos2s" );
  1055.     qglRasterPos2sv              = GPA(g_hGLDLL, "glRasterPos2sv" );
  1056.     qglRasterPos3d               = GPA(g_hGLDLL, "glRasterPos3d" );
  1057.     qglRasterPos3dv              = GPA(g_hGLDLL, "glRasterPos3dv" );
  1058.     qglRasterPos3f               = GPA(g_hGLDLL, "glRasterPos3f" );
  1059.     qglRasterPos3fv              = GPA(g_hGLDLL, "glRasterPos3fv" );
  1060.     qglRasterPos3i               = GPA(g_hGLDLL, "glRasterPos3i" );
  1061.     qglRasterPos3iv              = GPA(g_hGLDLL, "glRasterPos3iv" );
  1062.     qglRasterPos3s               = GPA(g_hGLDLL, "glRasterPos3s" );
  1063.     qglRasterPos3sv              = GPA(g_hGLDLL, "glRasterPos3sv" );
  1064.     qglRasterPos4d               = GPA(g_hGLDLL, "glRasterPos4d" );
  1065.     qglRasterPos4dv              = GPA(g_hGLDLL, "glRasterPos4dv" );
  1066.     qglRasterPos4f               = GPA(g_hGLDLL, "glRasterPos4f" );
  1067.     qglRasterPos4fv              = GPA(g_hGLDLL, "glRasterPos4fv" );
  1068.     qglRasterPos4i               = GPA(g_hGLDLL, "glRasterPos4i" );
  1069.     qglRasterPos4iv              = GPA(g_hGLDLL, "glRasterPos4iv" );
  1070.     qglRasterPos4s               = GPA(g_hGLDLL, "glRasterPos4s" );
  1071.     qglRasterPos4sv              = GPA(g_hGLDLL, "glRasterPos4sv" );
  1072.     qglReadBuffer                = GPA(g_hGLDLL, "glReadBuffer" );
  1073.     qglReadPixels                = GPA(g_hGLDLL, "glReadPixels" );
  1074.     qglRectd                     = GPA(g_hGLDLL, "glRectd" );
  1075.     qglRectdv                    = GPA(g_hGLDLL, "glRectdv" );
  1076.     qglRectf                     = GPA(g_hGLDLL, "glRectf" );
  1077.     qglRectfv                    = GPA(g_hGLDLL, "glRectfv" );
  1078.     qglRecti                     = GPA(g_hGLDLL, "glRecti" );
  1079.     qglRectiv                    = GPA(g_hGLDLL, "glRectiv" );
  1080.     qglRects                     = GPA(g_hGLDLL, "glRects" );
  1081.     qglRectsv                    = GPA(g_hGLDLL, "glRectsv" );
  1082.     qglRenderMode                = GPA(g_hGLDLL, "glRenderMode" );
  1083.     qglRotated                   = GPA(g_hGLDLL, "glRotated" );
  1084.     qglRotatef                   = GPA(g_hGLDLL, "glRotatef" );
  1085.     qglScaled                    = GPA(g_hGLDLL, "glScaled" );
  1086.     qglScalef                    = GPA(g_hGLDLL, "glScalef" );
  1087.     qglScissor                   = GPA(g_hGLDLL, "glScissor" );
  1088.     qglSelectBuffer              = GPA(g_hGLDLL, "glSelectBuffer" );
  1089.     qglShadeModel                = GPA(g_hGLDLL, "glShadeModel" );
  1090.     qglStencilFunc               = GPA(g_hGLDLL, "glStencilFunc" );
  1091.     qglStencilMask               = GPA(g_hGLDLL, "glStencilMask" );
  1092.     qglStencilOp                 = GPA(g_hGLDLL, "glStencilOp" );
  1093.     qglTexCoord1d                = GPA(g_hGLDLL, "glTexCoord1d" );
  1094.     qglTexCoord1dv               = GPA(g_hGLDLL, "glTexCoord1dv" );
  1095.     qglTexCoord1f                = GPA(g_hGLDLL, "glTexCoord1f" );
  1096.     qglTexCoord1fv               = GPA(g_hGLDLL, "glTexCoord1fv" );
  1097.     qglTexCoord1i                = GPA(g_hGLDLL, "glTexCoord1i" );
  1098.     qglTexCoord1iv               = GPA(g_hGLDLL, "glTexCoord1iv" );
  1099.     qglTexCoord1s                = GPA(g_hGLDLL, "glTexCoord1s" );
  1100.     qglTexCoord1sv               = GPA(g_hGLDLL, "glTexCoord1sv" );
  1101.     qglTexCoord2d                = GPA(g_hGLDLL, "glTexCoord2d" );
  1102.     qglTexCoord2dv               = GPA(g_hGLDLL, "glTexCoord2dv" );
  1103.     qglTexCoord2f                = GPA(g_hGLDLL, "glTexCoord2f" );
  1104.     qglTexCoord2fv               = GPA(g_hGLDLL, "glTexCoord2fv" );
  1105.     qglTexCoord2i                = GPA(g_hGLDLL, "glTexCoord2i" );
  1106.     qglTexCoord2iv               = GPA(g_hGLDLL, "glTexCoord2iv" );
  1107.     qglTexCoord2s                = GPA(g_hGLDLL, "glTexCoord2s" );
  1108.     qglTexCoord2sv               = GPA(g_hGLDLL, "glTexCoord2sv" );
  1109.     qglTexCoord3d                = GPA(g_hGLDLL, "glTexCoord3d" );
  1110.     qglTexCoord3dv               = GPA(g_hGLDLL, "glTexCoord3dv" );
  1111.     qglTexCoord3f                = GPA(g_hGLDLL, "glTexCoord3f" );
  1112.     qglTexCoord3fv               = GPA(g_hGLDLL, "glTexCoord3fv" );
  1113.     qglTexCoord3i                = GPA(g_hGLDLL, "glTexCoord3i" );
  1114.     qglTexCoord3iv               = GPA(g_hGLDLL, "glTexCoord3iv" );
  1115.     qglTexCoord3s                = GPA(g_hGLDLL, "glTexCoord3s" );
  1116.     qglTexCoord3sv               = GPA(g_hGLDLL, "glTexCoord3sv" );
  1117.     qglTexCoord4d                = GPA(g_hGLDLL, "glTexCoord4d" );
  1118.     qglTexCoord4dv               = GPA(g_hGLDLL, "glTexCoord4dv" );
  1119.     qglTexCoord4f                = GPA(g_hGLDLL, "glTexCoord4f" );
  1120.     qglTexCoord4fv               = GPA(g_hGLDLL, "glTexCoord4fv" );
  1121.     qglTexCoord4i                = GPA(g_hGLDLL, "glTexCoord4i" );
  1122.     qglTexCoord4iv               = GPA(g_hGLDLL, "glTexCoord4iv" );
  1123.     qglTexCoord4s                = GPA(g_hGLDLL, "glTexCoord4s" );
  1124.     qglTexCoord4sv               = GPA(g_hGLDLL, "glTexCoord4sv" );
  1125.     qglTexCoordPointer           = GPA(g_hGLDLL, "glTexCoordPointer" );
  1126.     qglTexEnvf                   = GPA(g_hGLDLL, "glTexEnvf" );
  1127.     qglTexEnvfv                  = GPA(g_hGLDLL, "glTexEnvfv" );
  1128.     qglTexEnvi                   = GPA(g_hGLDLL, "glTexEnvi" );
  1129.     qglTexEnviv                  = GPA(g_hGLDLL, "glTexEnviv" );
  1130.     qglTexGend                   = GPA(g_hGLDLL, "glTexGend" );
  1131.     qglTexGendv                  = GPA(g_hGLDLL, "glTexGendv" );
  1132.     qglTexGenf                   = GPA(g_hGLDLL, "glTexGenf" );
  1133.     qglTexGenfv                  = GPA(g_hGLDLL, "glTexGenfv" );
  1134.     qglTexGeni                   = GPA(g_hGLDLL, "glTexGeni" );
  1135.     qglTexGeniv                  = GPA(g_hGLDLL, "glTexGeniv" );
  1136.     qglTexImage1D                = GPA(g_hGLDLL, "glTexImage1D" );
  1137.     qglTexImage2D                = GPA(g_hGLDLL, "glTexImage2D" );
  1138.     qglTexParameterf             = GPA(g_hGLDLL, "glTexParameterf" );
  1139.     qglTexParameterfv            = GPA(g_hGLDLL, "glTexParameterfv" );
  1140.     qglTexParameteri             = GPA(g_hGLDLL, "glTexParameteri" );
  1141.     qglTexParameteriv            = GPA(g_hGLDLL, "glTexParameteriv" );
  1142.     qglTexSubImage1D             = GPA(g_hGLDLL, "glTexSubImage1D" );
  1143.     qglTexSubImage2D             = GPA(g_hGLDLL, "glTexSubImage2D" );
  1144.     qglTranslated                = GPA(g_hGLDLL, "glTranslated" );
  1145.     qglTranslatef                = GPA(g_hGLDLL, "glTranslatef" );
  1146.     qglVertex2d                  = GPA(g_hGLDLL, "glVertex2d" );
  1147.     qglVertex2dv                 = GPA(g_hGLDLL, "glVertex2dv" );
  1148.     qglVertex2f                  = GPA(g_hGLDLL, "glVertex2f" );
  1149.     qglVertex2fv                 = GPA(g_hGLDLL, "glVertex2fv" );
  1150.     qglVertex2i                  = GPA(g_hGLDLL, "glVertex2i" );
  1151.     qglVertex2iv                 = GPA(g_hGLDLL, "glVertex2iv" );
  1152.     qglVertex2s                  = GPA(g_hGLDLL, "glVertex2s" );
  1153.     qglVertex2sv                 = GPA(g_hGLDLL, "glVertex2sv" );
  1154.     qglVertex3d                  = GPA(g_hGLDLL, "glVertex3d" );
  1155.     qglVertex3dv                 = GPA(g_hGLDLL, "glVertex3dv" );
  1156.     qglVertex3f                  = GPA(g_hGLDLL, "glVertex3f" );
  1157.     qglVertex3fv                 = GPA(g_hGLDLL, "glVertex3fv" );
  1158.     qglVertex3i                  = GPA(g_hGLDLL, "glVertex3i" );
  1159.     qglVertex3iv                 = GPA(g_hGLDLL, "glVertex3iv" );
  1160.     qglVertex3s                  = GPA(g_hGLDLL, "glVertex3s" );
  1161.     qglVertex3sv                 = GPA(g_hGLDLL, "glVertex3sv" );
  1162.     qglVertex4d                  = GPA(g_hGLDLL, "glVertex4d" );
  1163.     qglVertex4dv                 = GPA(g_hGLDLL, "glVertex4dv" );
  1164.     qglVertex4f                  = GPA(g_hGLDLL, "glVertex4f" );
  1165.     qglVertex4fv                 = GPA(g_hGLDLL, "glVertex4fv" );
  1166.     qglVertex4i                  = GPA(g_hGLDLL, "glVertex4i" );
  1167.     qglVertex4iv                 = GPA(g_hGLDLL, "glVertex4iv" );
  1168.     qglVertex4s                  = GPA(g_hGLDLL, "glVertex4s" );
  1169.     qglVertex4sv                 = GPA(g_hGLDLL, "glVertex4sv" );
  1170.     qglVertexPointer             = GPA(g_hGLDLL, "glVertexPointer" );
  1171.     qglViewport                  = GPA(g_hGLDLL, "glViewport" );
  1172.  
  1173.     qwglCopyContext              = GPA(g_hGLDLL, "wglCopyContext" );
  1174.     qwglCreateContext            = GPA(g_hGLDLL, "wglCreateContext" );
  1175.     qwglCreateLayerContext       = GPA(g_hGLDLL, "wglCreateLayerContext" );
  1176.     qwglDeleteContext            = GPA(g_hGLDLL, "wglDeleteContext" );
  1177.     qwglDescribeLayerPlane       = GPA(g_hGLDLL, "wglDescribeLayerPlane" );
  1178.     qwglGetCurrentContext        = GPA(g_hGLDLL, "wglGetCurrentContext" );
  1179.     qwglGetCurrentDC             = GPA(g_hGLDLL, "wglGetCurrentDC" );
  1180.     qwglGetLayerPaletteEntries   = GPA(g_hGLDLL, "wglGetLayerPaletteEntries" );
  1181.     qwglGetProcAddress           = GPA(g_hGLDLL, "wglGetProcAddress" );
  1182.     qwglMakeCurrent              = GPA(g_hGLDLL, "wglMakeCurrent" );
  1183.     qwglRealizeLayerPalette      = GPA(g_hGLDLL, "wglRealizeLayerPalette" );
  1184.     qwglSetLayerPaletteEntries   = GPA(g_hGLDLL, "wglSetLayerPaletteEntries" );
  1185.     qwglShareLists               = GPA(g_hGLDLL, "wglShareLists" );
  1186.     qwglSwapLayerBuffers         = GPA(g_hGLDLL, "wglSwapLayerBuffers" );
  1187.     qwglUseFontBitmaps           = GPA(g_hGLDLL, "wglUseFontBitmapsA" );
  1188.     qwglUseFontOutlines          = GPA(g_hGLDLL, "wglUseFontOutlinesA" );
  1189.  
  1190.     qwglChoosePixelFormat        = GPA(g_hGLDLL, "wglChoosePixelFormat" );
  1191.     qwglDescribePixelFormat      = GPA(g_hGLDLL, "wglDescribePixelFormat" );
  1192.     qwglGetPixelFormat           = GPA(g_hGLDLL, "wglGetPixelFormat" );
  1193.     qwglSetPixelFormat           = GPA(g_hGLDLL, "wglSetPixelFormat" );
  1194.     qwglSwapBuffers              = GPA(g_hGLDLL, "wglSwapBuffers" );
  1195.  
  1196.     qwglSwapIntervalEXT = 0;
  1197.     qglPointParameterfEXT = 0;
  1198.     qglPointParameterfvEXT = 0;
  1199.     qglColorTableEXT = 0;
  1200.     qglSelectTextureSGIS = 0;
  1201.     qglMTexCoord2fSGIS = 0;
  1202.  
  1203.     return 1;
  1204. }
  1205.  
  1206. #pragma warning (default : 4113 4133 4047 )
  1207.  
  1208.  
  1209.  
  1210.