Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1|回复: 0
打印 上一主题 下一主题

[MetaHook]Quake OpenGL Function

[复制链接]

189

主题

189

帖子

580

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
580
跳转到指定楼层
楼主
发表于 2017-7-14 16:44:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Thanks to hzqst

Remember to call QGL_Init while loading Client


qgl.h

  1. #ifndef QGL_H
  2. #define QGL_H

  3. #include <gl/gl.h>
  4. #include <gl/glext.h>

  5. extern void (APIENTRY *qglAccum)(GLenum op, GLfloat value);
  6. extern void (APIENTRY *qglAlphaFunc)(GLenum func, GLclampf ref);
  7. extern GLboolean (APIENTRY *qglAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences);
  8. extern void (APIENTRY *qglArrayElement)(GLint i);
  9. extern void (APIENTRY *qglBegin)(GLenum mode);
  10. extern void (APIENTRY *qglBindTexture)(GLenum target, GLuint texture);
  11. extern void (APIENTRY *qglBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap);
  12. extern void (APIENTRY *qglBlendFunc)(GLenum sfactor, GLenum dfactor);
  13. extern void (APIENTRY *qglCallList)(GLuint list);
  14. extern void (APIENTRY *qglCallLists)(GLsizei n, GLenum type, const GLvoid *lists);
  15. extern void (APIENTRY *qglClear)(GLbitfield mask);
  16. extern void (APIENTRY *qglClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  17. extern void (APIENTRY *qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
  18. extern void (APIENTRY *qglClearDepth)(GLclampd depth);
  19. extern void (APIENTRY *qglClearIndex)(GLfloat c);
  20. extern void (APIENTRY *qglClearStencil)(GLint s);
  21. extern void (APIENTRY *qglClipPlane)(GLenum plane, const GLdouble *equation);
  22. extern void (APIENTRY *qglColor3b)(GLbyte red, GLbyte green, GLbyte blue);
  23. extern void (APIENTRY *qglColor3bv)(const GLbyte *v);
  24. extern void (APIENTRY *qglColor3d)(GLdouble red, GLdouble green, GLdouble blue);
  25. extern void (APIENTRY *qglColor3dv)(const GLdouble *v);
  26. extern void (APIENTRY *qglColor3f)(GLfloat red, GLfloat green, GLfloat blue);
  27. extern void (APIENTRY *qglColor3fv)(const GLfloat *v);
  28. extern void (APIENTRY *qglColor3i)(GLint red, GLint green, GLint blue);
  29. extern void (APIENTRY *qglColor3iv)(const GLint *v);
  30. extern void (APIENTRY *qglColor3s)(GLshort red, GLshort green, GLshort blue);
  31. extern void (APIENTRY *qglColor3sv)(const GLshort *v);
  32. extern void (APIENTRY *qglColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
  33. extern void (APIENTRY *qglColor3ubv)(const GLubyte *v);
  34. extern void (APIENTRY *qglColor3ui)(GLuint red, GLuint green, GLuint blue);
  35. extern void (APIENTRY *qglColor3uiv)(const GLuint *v);
  36. extern void (APIENTRY *qglColor3us)(GLushort red, GLushort green, GLushort blue);
  37. extern void (APIENTRY *qglColor3usv)(const GLushort *v);
  38. extern void (APIENTRY *qglColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
  39. extern void (APIENTRY *qglColor4bv)(const GLbyte *v);
  40. extern void (APIENTRY *qglColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
  41. extern void (APIENTRY *qglColor4dv)(const GLdouble *v);
  42. extern void (APIENTRY *qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
  43. extern void (APIENTRY *qglColor4fv)(const GLfloat *v);
  44. extern void (APIENTRY *qglColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
  45. extern void (APIENTRY *qglColor4iv)(const GLint *v);
  46. extern void (APIENTRY *qglColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
  47. extern void (APIENTRY *qglColor4sv)(const GLshort *v);
  48. extern void (APIENTRY *qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
  49. extern void (APIENTRY *qglColor4ubv)(const GLubyte *v);
  50. extern void (APIENTRY *qglColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
  51. extern void (APIENTRY *qglColor4uiv)(const GLuint *v);
  52. extern void (APIENTRY *qglColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
  53. extern void (APIENTRY *qglColor4usv)(const GLushort *v);
  54. extern void (APIENTRY *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
  55. extern void (APIENTRY *qglColorMaterial)(GLenum face, GLenum mode);
  56. extern void (APIENTRY *qglColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  57. extern void (APIENTRY *qglCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
  58. extern void (APIENTRY *qglCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
  59. extern void (APIENTRY *qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
  60. extern void (APIENTRY *qglCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
  61. extern void (APIENTRY *qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  62. extern void (APIENTRY *qglCullFace)(GLenum mode);
  63. extern void (APIENTRY *qglDeleteLists)(GLuint list, GLsizei range);
  64. extern void (APIENTRY *qglDeleteTextures)(GLsizei n, const GLuint *textures);
  65. extern void (APIENTRY *qglDepthFunc)(GLenum func);
  66. extern void (APIENTRY *qglDepthMask)(GLboolean flag);
  67. extern void (APIENTRY *qglDepthRange)(GLclampd zNear, GLclampd zFar);
  68. extern void (APIENTRY *qglDisable)(GLenum cap);
  69. extern void (APIENTRY *qglDisableClientState)(GLenum array);
  70. extern void (APIENTRY *qglDrawArrays)(GLenum mode, GLint first, GLsizei count);
  71. extern void (APIENTRY *qglDrawBuffer)(GLenum mode);
  72. extern void (APIENTRY *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
  73. extern void (APIENTRY *qglDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
  74. extern void (APIENTRY *qglEdgeFlag)(GLboolean flag);
  75. extern void (APIENTRY *qglEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer);
  76. extern void (APIENTRY *qglEdgeFlagv)(const GLboolean *flag);
  77. extern void (APIENTRY *qglEnable)(GLenum cap);
  78. extern void (APIENTRY *qglEnableClientState)(GLenum array);
  79. extern void (APIENTRY *qglEnd)(void);
  80. extern void (APIENTRY *qglEndList)(void);
  81. extern void (APIENTRY *qglEvalCoord1d)(GLdouble u);
  82. extern void (APIENTRY *qglEvalCoord1dv)(const GLdouble *u);
  83. extern void (APIENTRY *qglEvalCoord1f)(GLfloat u);
  84. extern void (APIENTRY *qglEvalCoord1fv)(const GLfloat *u);
  85. extern void (APIENTRY *qglEvalCoord2d)(GLdouble u, GLdouble v);
  86. extern void (APIENTRY *qglEvalCoord2dv)(const GLdouble *u);
  87. extern void (APIENTRY *qglEvalCoord2f)(GLfloat u, GLfloat v);
  88. extern void (APIENTRY *qglEvalCoord2fv)(const GLfloat *u);
  89. extern void (APIENTRY *qglEvalMesh1)(GLenum mode, GLint i1, GLint i2);
  90. extern void (APIENTRY *qglEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
  91. extern void (APIENTRY *qglEvalPoint1)(GLint i);
  92. extern void (APIENTRY *qglEvalPoint2)(GLint i, GLint j);
  93. extern void (APIENTRY *qglFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer);
  94. extern void (APIENTRY *qglFinish)(void);
  95. extern void (APIENTRY *qglFlush)(void);
  96. extern void (APIENTRY *qglFogf)(GLenum pname, GLfloat param);
  97. extern void (APIENTRY *qglFogfv)(GLenum pname, const GLfloat *params);
  98. extern void (APIENTRY *qglFogi)(GLenum pname, GLint param);
  99. extern void (APIENTRY *qglFogiv)(GLenum pname, const GLint *params);
  100. extern void (APIENTRY *qglFrontFace)(GLenum mode);
  101. extern void (APIENTRY *qglFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  102. extern GLuint (APIENTRY *qglGenLists)(GLsizei range);
  103. extern void (APIENTRY *qglGenTextures)(GLsizei n, GLuint *textures);
  104. extern void (APIENTRY *qglGetBooleanv)(GLenum pname, GLboolean *params);
  105. extern void (APIENTRY *qglGetClipPlane)(GLenum plane, GLdouble *equation);
  106. extern void (APIENTRY *qglGetDoublev)(GLenum pname, GLdouble *params);
  107. extern GLenum (APIENTRY *qglGetError)(void);
  108. extern void (APIENTRY *qglGetFloatv)(GLenum pname, GLfloat *params);
  109. extern void (APIENTRY *qglGetIntegerv)(GLenum pname, GLint *params);
  110. extern void (APIENTRY *qglGetLightfv)(GLenum light, GLenum pname, GLfloat *params);
  111. extern void (APIENTRY *qglGetLightiv)(GLenum light, GLenum pname, GLint *params);
  112. extern void (APIENTRY *qglGetMapdv)(GLenum target, GLenum query, GLdouble *v);
  113. extern void (APIENTRY *qglGetMapfv)(GLenum target, GLenum query, GLfloat *v);
  114. extern void (APIENTRY *qglGetMapiv)(GLenum target, GLenum query, GLint *v);
  115. extern void (APIENTRY *qglGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params);
  116. extern void (APIENTRY *qglGetMaterialiv)(GLenum face, GLenum pname, GLint *params);
  117. extern void (APIENTRY *qglGetPixelMapfv)(GLenum map, GLfloat *values);
  118. extern void (APIENTRY *qglGetPixelMapuiv)(GLenum map, GLuint *values);
  119. extern void (APIENTRY *qglGetPixelMapusv)(GLenum map, GLushort *values);
  120. extern void (APIENTRY *qglGetPointerv)(GLenum pname, GLvoid* *params);
  121. extern void (APIENTRY *qglGetPolygonStipple)(GLubyte *mask);
  122. extern const GLubyte * (APIENTRY *qglGetString)(GLenum name);
  123. extern void (APIENTRY *qglGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params);
  124. extern void (APIENTRY *qglGetTexEnviv)(GLenum target, GLenum pname, GLint *params);
  125. extern void (APIENTRY *qglGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params);
  126. extern void (APIENTRY *qglGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params);
  127. extern void (APIENTRY *qglGetTexGeniv)(GLenum coord, GLenum pname, GLint *params);
  128. extern void (APIENTRY *qglGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels);
  129. extern void (APIENTRY *qglGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params);
  130. extern void (APIENTRY *qglGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params);
  131. extern void (APIENTRY *qglGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params);
  132. extern void (APIENTRY *qglGetTexParameteriv)(GLenum target, GLenum pname, GLint *params);
  133. extern void (APIENTRY *qglHint)(GLenum target, GLenum mode);
  134. extern void (APIENTRY *qglIndexMask)(GLuint mask);
  135. extern void (APIENTRY *qglIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
  136. extern void (APIENTRY *qglIndexd)(GLdouble c);
  137. extern void (APIENTRY *qglIndexdv)(const GLdouble *c);
  138. extern void (APIENTRY *qglIndexf)(GLfloat c);
  139. extern void (APIENTRY *qglIndexfv)(const GLfloat *c);
  140. extern void (APIENTRY *qglIndexi)(GLint c);
  141. extern void (APIENTRY *qglIndexiv)(const GLint *c);
  142. extern void (APIENTRY *qglIndexs)(GLshort c);
  143. extern void (APIENTRY *qglIndexsv)(const GLshort *c);
  144. extern void (APIENTRY *qglIndexub)(GLubyte c);
  145. extern void (APIENTRY *qglIndexubv)(const GLubyte *c);
  146. extern void (APIENTRY *qglInitNames)(void);
  147. extern void (APIENTRY *qglInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer);
  148. extern GLboolean (APIENTRY *qglIsEnabled)(GLenum cap);
  149. extern GLboolean (APIENTRY *qglIsList)(GLuint list);
  150. extern GLboolean (APIENTRY *qglIsTexture)(GLuint texture);
  151. extern void (APIENTRY *qglLightModelf)(GLenum pname, GLfloat param);
  152. extern void (APIENTRY *qglLightModelfv)(GLenum pname, const GLfloat *params);
  153. extern void (APIENTRY *qglLightModeli)(GLenum pname, GLint param);
  154. extern void (APIENTRY *qglLightModeliv)(GLenum pname, const GLint *params);
  155. extern void (APIENTRY *qglLightf)(GLenum light, GLenum pname, GLfloat param);
  156. extern void (APIENTRY *qglLightfv)(GLenum light, GLenum pname, const GLfloat *params);
  157. extern void (APIENTRY *qglLighti)(GLenum light, GLenum pname, GLint param);
  158. extern void (APIENTRY *qglLightiv)(GLenum light, GLenum pname, const GLint *params);
  159. extern void (APIENTRY *qglLineStipple)(GLint factor, GLushort pattern);
  160. extern void (APIENTRY *qglLineWidth)(GLfloat width);
  161. extern void (APIENTRY *qglListBase)(GLuint base);
  162. extern void (APIENTRY *qglLoadIdentity)(void);
  163. extern void (APIENTRY *qglLoadMatrixd)(const GLdouble *m);
  164. extern void (APIENTRY *qglLoadMatrixf)(const GLfloat *m);
  165. extern void (APIENTRY *qglLoadName)(GLuint name);
  166. extern void (APIENTRY *qglLogicOp)(GLenum opcode);
  167. extern void (APIENTRY *qglMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points);
  168. extern void (APIENTRY *qglMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points);
  169. extern void (APIENTRY *qglMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points);
  170. extern void (APIENTRY *qglMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points);
  171. extern void (APIENTRY *qglMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
  172. extern void (APIENTRY *qglMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
  173. extern void (APIENTRY *qglMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
  174. extern void (APIENTRY *qglMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
  175. extern void (APIENTRY *qglMaterialf)(GLenum face, GLenum pname, GLfloat param);
  176. extern void (APIENTRY *qglMaterialfv)(GLenum face, GLenum pname, const GLfloat *params);
  177. extern void (APIENTRY *qglMateriali)(GLenum face, GLenum pname, GLint param);
  178. extern void (APIENTRY *qglMaterialiv)(GLenum face, GLenum pname, const GLint *params);
  179. extern void (APIENTRY *qglMatrixMode)(GLenum mode);
  180. extern void (APIENTRY *qglMultMatrixd)(const GLdouble *m);
  181. extern void (APIENTRY *qglMultMatrixf)(const GLfloat *m);
  182. extern void (APIENTRY *qglNewList)(GLuint list, GLenum mode);
  183. extern void (APIENTRY *qglNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
  184. extern void (APIENTRY *qglNormal3bv)(const GLbyte *v);
  185. extern void (APIENTRY *qglNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
  186. extern void (APIENTRY *qglNormal3dv)(const GLdouble *v);
  187. extern void (APIENTRY *qglNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
  188. extern void (APIENTRY *qglNormal3fv)(const GLfloat *v);
  189. extern void (APIENTRY *qglNormal3i)(GLint nx, GLint ny, GLint nz);
  190. extern void (APIENTRY *qglNormal3iv)(const GLint *v);
  191. extern void (APIENTRY *qglNormal3s)(GLshort nx, GLshort ny, GLshort nz);
  192. extern void (APIENTRY *qglNormal3sv)(const GLshort *v);
  193. extern void (APIENTRY *qglNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer);
  194. extern void (APIENTRY *qglOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
  195. extern void (APIENTRY *qglPassThrough)(GLfloat token);
  196. extern void (APIENTRY *qglPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values);
  197. extern void (APIENTRY *qglPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values);
  198. extern void (APIENTRY *qglPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values);
  199. extern void (APIENTRY *qglPixelStoref)(GLenum pname, GLfloat param);
  200. extern void (APIENTRY *qglPixelStorei)(GLenum pname, GLint param);
  201. extern void (APIENTRY *qglPixelTransferf)(GLenum pname, GLfloat param);
  202. extern void (APIENTRY *qglPixelTransferi)(GLenum pname, GLint param);
  203. extern void (APIENTRY *qglPixelZoom)(GLfloat xfactor, GLfloat yfactor);
  204. extern void (APIENTRY *qglPointSize)(GLfloat size);
  205. extern void (APIENTRY *qglPolygonMode)(GLenum face, GLenum mode);
  206. extern void (APIENTRY *qglPolygonOffset)(GLfloat factor, GLfloat units);
  207. extern void (APIENTRY *qglPolygonStipple)(const GLubyte *mask);
  208. extern void (APIENTRY *qglPopAttrib)(void);
  209. extern void (APIENTRY *qglPopClientAttrib)(void);
  210. extern void (APIENTRY *qglPopMatrix)(void);
  211. extern void (APIENTRY *qglPopName)(void);
  212. extern void (APIENTRY *qglPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities);
  213. extern void (APIENTRY *qglPushAttrib)(GLbitfield mask);
  214. extern void (APIENTRY *qglPushClientAttrib)(GLbitfield mask);
  215. extern void (APIENTRY *qglPushMatrix)(void);
  216. extern void (APIENTRY *qglPushName)(GLuint name);
  217. extern void (APIENTRY *qglRasterPos2d)(GLdouble x, GLdouble y);
  218. extern void (APIENTRY *qglRasterPos2dv)(const GLdouble *v);
  219. extern void (APIENTRY *qglRasterPos2f)(GLfloat x, GLfloat y);
  220. extern void (APIENTRY *qglRasterPos2fv)(const GLfloat *v);
  221. extern void (APIENTRY *qglRasterPos2i)(GLint x, GLint y);
  222. extern void (APIENTRY *qglRasterPos2iv)(const GLint *v);
  223. extern void (APIENTRY *qglRasterPos2s)(GLshort x, GLshort y);
  224. extern void (APIENTRY *qglRasterPos2sv)(const GLshort *v);
  225. extern void (APIENTRY *qglRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
  226. extern void (APIENTRY *qglRasterPos3dv)(const GLdouble *v);
  227. extern void (APIENTRY *qglRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
  228. extern void (APIENTRY *qglRasterPos3fv)(const GLfloat *v);
  229. extern void (APIENTRY *qglRasterPos3i)(GLint x, GLint y, GLint z);
  230. extern void (APIENTRY *qglRasterPos3iv)(const GLint *v);
  231. extern void (APIENTRY *qglRasterPos3s)(GLshort x, GLshort y, GLshort z);
  232. extern void (APIENTRY *qglRasterPos3sv)(const GLshort *v);
  233. extern void (APIENTRY *qglRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  234. extern void (APIENTRY *qglRasterPos4dv)(const GLdouble *v);
  235. extern void (APIENTRY *qglRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  236. extern void (APIENTRY *qglRasterPos4fv)(const GLfloat *v);
  237. extern void (APIENTRY *qglRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
  238. extern void (APIENTRY *qglRasterPos4iv)(const GLint *v);
  239. extern void (APIENTRY *qglRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
  240. extern void (APIENTRY *qglRasterPos4sv)(const GLshort *v);
  241. extern void (APIENTRY *qglReadBuffer)(GLenum mode);
  242. extern void (APIENTRY *qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels);
  243. extern void (APIENTRY *qglRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
  244. extern void (APIENTRY *qglRectdv)(const GLdouble *v1, const GLdouble *v2);
  245. extern void (APIENTRY *qglRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
  246. extern void (APIENTRY *qglRectfv)(const GLfloat *v1, const GLfloat *v2);
  247. extern void (APIENTRY *qglRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
  248. extern void (APIENTRY *qglRectiv)(const GLint *v1, const GLint *v2);
  249. extern void (APIENTRY *qglRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
  250. extern void (APIENTRY *qglRectsv)(const GLshort *v1, const GLshort *v2);
  251. extern GLint (APIENTRY *qglRenderMode)(GLenum mode);
  252. extern void (APIENTRY *qglRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
  253. extern void (APIENTRY *qglRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
  254. extern void (APIENTRY *qglScaled)(GLdouble x, GLdouble y, GLdouble z);
  255. extern void (APIENTRY *qglScalef)(GLfloat x, GLfloat y, GLfloat z);
  256. extern void (APIENTRY *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
  257. extern void (APIENTRY *qglSelectBuffer)(GLsizei size, GLuint *buffer);
  258. extern void (APIENTRY *qglShadeModel)(GLenum mode);
  259. extern void (APIENTRY *qglStencilFunc)(GLenum func, GLint ref, GLuint mask);
  260. extern void (APIENTRY *qglStencilMask)(GLuint mask);
  261. extern void (APIENTRY *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
  262. extern void (APIENTRY *qglTexCoord1d)(GLdouble s);
  263. extern void (APIENTRY *qglTexCoord1dv)(const GLdouble *v);
  264. extern void (APIENTRY *qglTexCoord1f)(GLfloat s);
  265. extern void (APIENTRY *qglTexCoord1fv)(const GLfloat *v);
  266. extern void (APIENTRY *qglTexCoord1i)(GLint s);
  267. extern void (APIENTRY *qglTexCoord1iv)(const GLint *v);
  268. extern void (APIENTRY *qglTexCoord1s)(GLshort s);
  269. extern void (APIENTRY *qglTexCoord1sv)(const GLshort *v);
  270. extern void (APIENTRY *qglTexCoord2d)(GLdouble s, GLdouble t);
  271. extern void (APIENTRY *qglTexCoord2dv)(const GLdouble *v);
  272. extern void (APIENTRY *qglTexCoord2f)(GLfloat s, GLfloat t);
  273. extern void (APIENTRY *qglTexCoord2fv)(const GLfloat *v);
  274. extern void (APIENTRY *qglTexCoord2i)(GLint s, GLint t);
  275. extern void (APIENTRY *qglTexCoord2iv)(const GLint *v);
  276. extern void (APIENTRY *qglTexCoord2s)(GLshort s, GLshort t);
  277. extern void (APIENTRY *qglTexCoord2sv)(const GLshort *v);
  278. extern void (APIENTRY *qglTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
  279. extern void (APIENTRY *qglTexCoord3dv)(const GLdouble *v);
  280. extern void (APIENTRY *qglTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
  281. extern void (APIENTRY *qglTexCoord3fv)(const GLfloat *v);
  282. extern void (APIENTRY *qglTexCoord3i)(GLint s, GLint t, GLint r);
  283. extern void (APIENTRY *qglTexCoord3iv)(const GLint *v);
  284. extern void (APIENTRY *qglTexCoord3s)(GLshort s, GLshort t, GLshort r);
  285. extern void (APIENTRY *qglTexCoord3sv)(const GLshort *v);
  286. extern void (APIENTRY *qglTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
  287. extern void (APIENTRY *qglTexCoord4dv)(const GLdouble *v);
  288. extern void (APIENTRY *qglTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
  289. extern void (APIENTRY *qglTexCoord4fv)(const GLfloat *v);
  290. extern void (APIENTRY *qglTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
  291. extern void (APIENTRY *qglTexCoord4iv)(const GLint *v);
  292. extern void (APIENTRY *qglTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
  293. extern void (APIENTRY *qglTexCoord4sv)(const GLshort *v);
  294. extern void (APIENTRY *qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  295. extern void (APIENTRY *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param);
  296. extern void (APIENTRY *qglTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params);
  297. extern void (APIENTRY *qglTexEnvi)(GLenum target, GLenum pname, GLint param);
  298. extern void (APIENTRY *qglTexEnviv)(GLenum target, GLenum pname, const GLint *params);
  299. extern void (APIENTRY *qglTexGend)(GLenum coord, GLenum pname, GLdouble param);
  300. extern void (APIENTRY *qglTexGendv)(GLenum coord, GLenum pname, const GLdouble *params);
  301. extern void (APIENTRY *qglTexGenf)(GLenum coord, GLenum pname, GLfloat param);
  302. extern void (APIENTRY *qglTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params);
  303. extern void (APIENTRY *qglTexGeni)(GLenum coord, GLenum pname, GLint param);
  304. extern void (APIENTRY *qglTexGeniv)(GLenum coord, GLenum pname, const GLint *params);
  305. extern void (APIENTRY *qglTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
  306. extern void (APIENTRY *qglTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
  307. extern void (APIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param);
  308. extern void (APIENTRY *qglTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params);
  309. extern void (APIENTRY *qglTexParameteri)(GLenum target, GLenum pname, GLint param);
  310. extern void (APIENTRY *qglTexParameteriv)(GLenum target, GLenum pname, const GLint *params);
  311. extern void (APIENTRY *qglTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
  312. extern void (APIENTRY *qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
  313. extern void (APIENTRY *qglTranslated)(GLdouble x, GLdouble y, GLdouble z);
  314. extern void (APIENTRY *qglTranslatef)(GLfloat x, GLfloat y, GLfloat z);
  315. extern void (APIENTRY *qglVertex2d)(GLdouble x, GLdouble y);
  316. extern void (APIENTRY *qglVertex2dv)(const GLdouble *v);
  317. extern void (APIENTRY *qglVertex2f)(GLfloat x, GLfloat y);
  318. extern void (APIENTRY *qglVertex2fv)(const GLfloat *v);
  319. extern void (APIENTRY *qglVertex2i)(GLint x, GLint y);
  320. extern void (APIENTRY *qglVertex2iv)(const GLint *v);
  321. extern void (APIENTRY *qglVertex2s)(GLshort x, GLshort y);
  322. extern void (APIENTRY *qglVertex2sv)(const GLshort *v);
  323. extern void (APIENTRY *qglVertex3d)(GLdouble x, GLdouble y, GLdouble z);
  324. extern void (APIENTRY *qglVertex3dv)(const GLdouble *v);
  325. extern void (APIENTRY *qglVertex3f)(GLfloat x, GLfloat y, GLfloat z);
  326. extern void (APIENTRY *qglVertex3fv)(const GLfloat *v);
  327. extern void (APIENTRY *qglVertex3i)(GLint x, GLint y, GLint z);
  328. extern void (APIENTRY *qglVertex3iv)(const GLint *v);
  329. extern void (APIENTRY *qglVertex3s)(GLshort x, GLshort y, GLshort z);
  330. extern void (APIENTRY *qglVertex3sv)(const GLshort *v);
  331. extern void (APIENTRY *qglVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
  332. extern void (APIENTRY *qglVertex4dv)(const GLdouble *v);
  333. extern void (APIENTRY *qglVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
  334. extern void (APIENTRY *qglVertex4fv)(const GLfloat *v);
  335. extern void (APIENTRY *qglVertex4i)(GLint x, GLint y, GLint z, GLint w);
  336. extern void (APIENTRY *qglVertex4iv)(const GLint *v);
  337. extern void (APIENTRY *qglVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
  338. extern void (APIENTRY *qglVertex4sv)(const GLshort *v);
  339. extern void (APIENTRY *qglVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  340. extern void (APIENTRY *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei height);

  341. extern void (APIENTRY *qglActiveTexture)(GLenum texture);
  342. extern void (APIENTRY *qglSampleCoverage)(GLclampf value, GLboolean invert);
  343. extern void (APIENTRY *qglCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data);
  344. extern void (APIENTRY *qglCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data);
  345. extern void (APIENTRY *qglCompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data);
  346. extern void (APIENTRY *qglCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data);
  347. extern void (APIENTRY *qglCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data);
  348. extern void (APIENTRY *qglCompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data);
  349. extern void (APIENTRY *qglGetCompressedTexImage)(GLenum target, GLint level, GLvoid *img);

  350. extern GLboolean (APIENTRY *qglIsRenderbuffer)(GLuint renderbuffer);
  351. extern void (APIENTRY *qglBindRenderbuffer)(GLenum target, GLuint renderbuffer);
  352. extern void (APIENTRY *qglDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers);
  353. extern void (APIENTRY *qglGenRenderbuffers)(GLsizei n, GLuint *renderbuffers);
  354. extern void (APIENTRY *qglRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
  355. extern void (APIENTRY *qglGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params);
  356. extern GLboolean (APIENTRY *qglIsFramebuffer)(GLuint framebuffer);
  357. extern void (APIENTRY *qglBindFramebuffer)(GLenum target, GLuint framebuffer);
  358. extern void (APIENTRY *qglDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers);
  359. extern void (APIENTRY *qglGenFramebuffers)(GLsizei n, GLuint *framebuffers);
  360. extern GLenum (APIENTRY *qglCheckFramebufferStatus)(GLenum target);
  361. extern void (APIENTRY *qglFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
  362. extern void (APIENTRY *qglFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
  363. extern void (APIENTRY *qglFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
  364. extern void (APIENTRY *qglFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
  365. extern void (APIENTRY *qglGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params);
  366. extern void (APIENTRY *qglGenerateMipmap)(GLenum target);
  367. extern void (APIENTRY *qglBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
  368. extern void (APIENTRY *qglRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
  369. extern void (APIENTRY *qglFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);

  370. void QGL_Init(void);

  371. #endif
复制代码
qgl.cpp

  1. #include <metahook.h>

  2. #include <gl/gl.h>
  3. #include <gl/glext.h>

  4. void (APIENTRY *qglAccum)(GLenum op, GLfloat value) = 0;
  5. void (APIENTRY *qglAlphaFunc)(GLenum func, GLclampf ref) = 0;
  6. GLboolean (APIENTRY *qglAreTexturesResident)(GLsizei n, const GLuint *textures, GLboolean *residences) = 0;
  7. void (APIENTRY *qglArrayElement)(GLint i) = 0;
  8. void (APIENTRY *qglBegin)(GLenum mode) = 0;
  9. void (APIENTRY *qglBindTexture)(GLenum target, GLuint texture) = 0;
  10. void (APIENTRY *qglBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap) = 0;
  11. void (APIENTRY *qglBlendFunc)(GLenum sfactor, GLenum dfactor) = 0;
  12. void (APIENTRY *qglCallList)(GLuint list) = 0;
  13. void (APIENTRY *qglCallLists)(GLsizei n, GLenum type, const GLvoid *lists) = 0;
  14. void (APIENTRY *qglClear)(GLbitfield mask) = 0;
  15. void (APIENTRY *qglClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) = 0;
  16. void (APIENTRY *qglClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) = 0;
  17. void (APIENTRY *qglClearDepth)(GLclampd depth) = 0;
  18. void (APIENTRY *qglClearIndex)(GLfloat c) = 0;
  19. void (APIENTRY *qglClearStencil)(GLint s) = 0;
  20. void (APIENTRY *qglClipPlane)(GLenum plane, const GLdouble *equation) = 0;
  21. void (APIENTRY *qglColor3b)(GLbyte red, GLbyte green, GLbyte blue) = 0;
  22. void (APIENTRY *qglColor3bv)(const GLbyte *v) = 0;
  23. void (APIENTRY *qglColor3d)(GLdouble red, GLdouble green, GLdouble blue) = 0;
  24. void (APIENTRY *qglColor3dv)(const GLdouble *v) = 0;
  25. void (APIENTRY *qglColor3f)(GLfloat red, GLfloat green, GLfloat blue) = 0;
  26. void (APIENTRY *qglColor3fv)(const GLfloat *v) = 0;
  27. void (APIENTRY *qglColor3i)(GLint red, GLint green, GLint blue) = 0;
  28. void (APIENTRY *qglColor3iv)(const GLint *v) = 0;
  29. void (APIENTRY *qglColor3s)(GLshort red, GLshort green, GLshort blue) = 0;
  30. void (APIENTRY *qglColor3sv)(const GLshort *v) = 0;
  31. void (APIENTRY *qglColor3ub)(GLubyte red, GLubyte green, GLubyte blue) = 0;
  32. void (APIENTRY *qglColor3ubv)(const GLubyte *v) = 0;
  33. void (APIENTRY *qglColor3ui)(GLuint red, GLuint green, GLuint blue) = 0;
  34. void (APIENTRY *qglColor3uiv)(const GLuint *v) = 0;
  35. void (APIENTRY *qglColor3us)(GLushort red, GLushort green, GLushort blue) = 0;
  36. void (APIENTRY *qglColor3usv)(const GLushort *v) = 0;
  37. void (APIENTRY *qglColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha) = 0;
  38. void (APIENTRY *qglColor4bv)(const GLbyte *v) = 0;
  39. void (APIENTRY *qglColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha) = 0;
  40. void (APIENTRY *qglColor4dv)(const GLdouble *v) = 0;
  41. void (APIENTRY *qglColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) = 0;
  42. void (APIENTRY *qglColor4fv)(const GLfloat *v) = 0;
  43. void (APIENTRY *qglColor4i)(GLint red, GLint green, GLint blue, GLint alpha) = 0;
  44. void (APIENTRY *qglColor4iv)(const GLint *v) = 0;
  45. void (APIENTRY *qglColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha) = 0;
  46. void (APIENTRY *qglColor4sv)(const GLshort *v) = 0;
  47. void (APIENTRY *qglColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) = 0;
  48. void (APIENTRY *qglColor4ubv)(const GLubyte *v) = 0;
  49. void (APIENTRY *qglColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha) = 0;
  50. void (APIENTRY *qglColor4uiv)(const GLuint *v) = 0;
  51. void (APIENTRY *qglColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha) = 0;
  52. void (APIENTRY *qglColor4usv)(const GLushort *v) = 0;
  53. void (APIENTRY *qglColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) = 0;
  54. void (APIENTRY *qglColorMaterial)(GLenum face, GLenum mode) = 0;
  55. void (APIENTRY *qglColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) = 0;
  56. void (APIENTRY *qglCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type) = 0;
  57. void (APIENTRY *qglCopyTexImage1D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border) = 0;
  58. void (APIENTRY *qglCopyTexImage2D)(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) = 0;
  59. void (APIENTRY *qglCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width) = 0;
  60. void (APIENTRY *qglCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) = 0;
  61. void (APIENTRY *qglCullFace)(GLenum mode) = 0;
  62. void (APIENTRY *qglDeleteLists)(GLuint list, GLsizei range) = 0;
  63. void (APIENTRY *qglDeleteTextures)(GLsizei n, const GLuint *textures) = 0;
  64. void (APIENTRY *qglDepthFunc)(GLenum func) = 0;
  65. void (APIENTRY *qglDepthMask)(GLboolean flag) = 0;
  66. void (APIENTRY *qglDepthRange)(GLclampd zNear, GLclampd zFar) = 0;
  67. void (APIENTRY *qglDisable)(GLenum cap) = 0;
  68. void (APIENTRY *qglDisableClientState)(GLenum array) = 0;
  69. void (APIENTRY *qglDrawArrays)(GLenum mode, GLint first, GLsizei count) = 0;
  70. void (APIENTRY *qglDrawBuffer)(GLenum mode) = 0;
  71. void (APIENTRY *qglDrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices) = 0;
  72. void (APIENTRY *qglDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) = 0;
  73. void (APIENTRY *qglEdgeFlag)(GLboolean flag) = 0;
  74. void (APIENTRY *qglEdgeFlagPointer)(GLsizei stride, const GLvoid *pointer) = 0;
  75. void (APIENTRY *qglEdgeFlagv)(const GLboolean *flag) = 0;
  76. void (APIENTRY *qglEnable)(GLenum cap) = 0;
  77. void (APIENTRY *qglEnableClientState)(GLenum array) = 0;
  78. void (APIENTRY *qglEnd)(void) = 0;
  79. void (APIENTRY *qglEndList)(void) = 0;
  80. void (APIENTRY *qglEvalCoord1d)(GLdouble u) = 0;
  81. void (APIENTRY *qglEvalCoord1dv)(const GLdouble *u) = 0;
  82. void (APIENTRY *qglEvalCoord1f)(GLfloat u) = 0;
  83. void (APIENTRY *qglEvalCoord1fv)(const GLfloat *u) = 0;
  84. void (APIENTRY *qglEvalCoord2d)(GLdouble u, GLdouble v) = 0;
  85. void (APIENTRY *qglEvalCoord2dv)(const GLdouble *u) = 0;
  86. void (APIENTRY *qglEvalCoord2f)(GLfloat u, GLfloat v) = 0;
  87. void (APIENTRY *qglEvalCoord2fv)(const GLfloat *u) = 0;
  88. void (APIENTRY *qglEvalMesh1)(GLenum mode, GLint i1, GLint i2) = 0;
  89. void (APIENTRY *qglEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2) = 0;
  90. void (APIENTRY *qglEvalPoint1)(GLint i) = 0;
  91. void (APIENTRY *qglEvalPoint2)(GLint i, GLint j) = 0;
  92. void (APIENTRY *qglFeedbackBuffer)(GLsizei size, GLenum type, GLfloat *buffer) = 0;
  93. void (APIENTRY *qglFinish)(void) = 0;
  94. void (APIENTRY *qglFlush)(void) = 0;
  95. void (APIENTRY *qglFogf)(GLenum pname, GLfloat param) = 0;
  96. void (APIENTRY *qglFogfv)(GLenum pname, const GLfloat *params) = 0;
  97. void (APIENTRY *qglFogi)(GLenum pname, GLint param) = 0;
  98. void (APIENTRY *qglFogiv)(GLenum pname, const GLint *params) = 0;
  99. void (APIENTRY *qglFrontFace)(GLenum mode) = 0;
  100. void (APIENTRY *qglFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) = 0;
  101. GLuint (APIENTRY *qglGenLists)(GLsizei range) = 0;
  102. void (APIENTRY *qglGenTextures)(GLsizei n, GLuint *textures) = 0;
  103. void (APIENTRY *qglGetBooleanv)(GLenum pname, GLboolean *params) = 0;
  104. void (APIENTRY *qglGetClipPlane)(GLenum plane, GLdouble *equation) = 0;
  105. void (APIENTRY *qglGetDoublev)(GLenum pname, GLdouble *params) = 0;
  106. GLenum (APIENTRY *qglGetError)(void) = 0;
  107. void (APIENTRY *qglGetFloatv)(GLenum pname, GLfloat *params) = 0;
  108. void (APIENTRY *qglGetIntegerv)(GLenum pname, GLint *params) = 0;
  109. void (APIENTRY *qglGetLightfv)(GLenum light, GLenum pname, GLfloat *params) = 0;
  110. void (APIENTRY *qglGetLightiv)(GLenum light, GLenum pname, GLint *params) = 0;
  111. void (APIENTRY *qglGetMapdv)(GLenum target, GLenum query, GLdouble *v) = 0;
  112. void (APIENTRY *qglGetMapfv)(GLenum target, GLenum query, GLfloat *v) = 0;
  113. void (APIENTRY *qglGetMapiv)(GLenum target, GLenum query, GLint *v) = 0;
  114. void (APIENTRY *qglGetMaterialfv)(GLenum face, GLenum pname, GLfloat *params) = 0;
  115. void (APIENTRY *qglGetMaterialiv)(GLenum face, GLenum pname, GLint *params) = 0;
  116. void (APIENTRY *qglGetPixelMapfv)(GLenum map, GLfloat *values) = 0;
  117. void (APIENTRY *qglGetPixelMapuiv)(GLenum map, GLuint *values) = 0;
  118. void (APIENTRY *qglGetPixelMapusv)(GLenum map, GLushort *values) = 0;
  119. void (APIENTRY *qglGetPointerv)(GLenum pname, GLvoid* *params) = 0;
  120. void (APIENTRY *qglGetPolygonStipple)(GLubyte *mask) = 0;
  121. const GLubyte * (APIENTRY *qglGetString)(GLenum name) = 0;
  122. void (APIENTRY *qglGetTexEnvfv)(GLenum target, GLenum pname, GLfloat *params) = 0;
  123. void (APIENTRY *qglGetTexEnviv)(GLenum target, GLenum pname, GLint *params) = 0;
  124. void (APIENTRY *qglGetTexGendv)(GLenum coord, GLenum pname, GLdouble *params) = 0;
  125. void (APIENTRY *qglGetTexGenfv)(GLenum coord, GLenum pname, GLfloat *params) = 0;
  126. void (APIENTRY *qglGetTexGeniv)(GLenum coord, GLenum pname, GLint *params) = 0;
  127. void (APIENTRY *qglGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels) = 0;
  128. void (APIENTRY *qglGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat *params) = 0;
  129. void (APIENTRY *qglGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint *params) = 0;
  130. void (APIENTRY *qglGetTexParameterfv)(GLenum target, GLenum pname, GLfloat *params) = 0;
  131. void (APIENTRY *qglGetTexParameteriv)(GLenum target, GLenum pname, GLint *params) = 0;
  132. void (APIENTRY *qglHint)(GLenum target, GLenum mode) = 0;
  133. void (APIENTRY *qglIndexMask)(GLuint mask) = 0;
  134. void (APIENTRY *qglIndexPointer)(GLenum type, GLsizei stride, const GLvoid *pointer) = 0;
  135. void (APIENTRY *qglIndexd)(GLdouble c) = 0;
  136. void (APIENTRY *qglIndexdv)(const GLdouble *c) = 0;
  137. void (APIENTRY *qglIndexf)(GLfloat c) = 0;
  138. void (APIENTRY *qglIndexfv)(const GLfloat *c) = 0;
  139. void (APIENTRY *qglIndexi)(GLint c) = 0;
  140. void (APIENTRY *qglIndexiv)(const GLint *c) = 0;
  141. void (APIENTRY *qglIndexs)(GLshort c) = 0;
  142. void (APIENTRY *qglIndexsv)(const GLshort *c) = 0;
  143. void (APIENTRY *qglIndexub)(GLubyte c) = 0;
  144. void (APIENTRY *qglIndexubv)(const GLubyte *c) = 0;
  145. void (APIENTRY *qglInitNames)(void) = 0;
  146. void (APIENTRY *qglInterleavedArrays)(GLenum format, GLsizei stride, const GLvoid *pointer) = 0;
  147. GLboolean (APIENTRY *qglIsEnabled)(GLenum cap) = 0;
  148. GLboolean (APIENTRY *qglIsList)(GLuint list) = 0;
  149. GLboolean (APIENTRY *qglIsTexture)(GLuint texture) = 0;
  150. void (APIENTRY *qglLightModelf)(GLenum pname, GLfloat param) = 0;
  151. void (APIENTRY *qglLightModelfv)(GLenum pname, const GLfloat *params) = 0;
  152. void (APIENTRY *qglLightModeli)(GLenum pname, GLint param) = 0;
  153. void (APIENTRY *qglLightModeliv)(GLenum pname, const GLint *params) = 0;
  154. void (APIENTRY *qglLightf)(GLenum light, GLenum pname, GLfloat param) = 0;
  155. void (APIENTRY *qglLightfv)(GLenum light, GLenum pname, const GLfloat *params) = 0;
  156. void (APIENTRY *qglLighti)(GLenum light, GLenum pname, GLint param) = 0;
  157. void (APIENTRY *qglLightiv)(GLenum light, GLenum pname, const GLint *params) = 0;
  158. void (APIENTRY *qglLineStipple)(GLint factor, GLushort pattern) = 0;
  159. void (APIENTRY *qglLineWidth)(GLfloat width) = 0;
  160. void (APIENTRY *qglListBase)(GLuint base) = 0;
  161. void (APIENTRY *qglLoadIdentity)(void) = 0;
  162. void (APIENTRY *qglLoadMatrixd)(const GLdouble *m) = 0;
  163. void (APIENTRY *qglLoadMatrixf)(const GLfloat *m) = 0;
  164. void (APIENTRY *qglLoadName)(GLuint name) = 0;
  165. void (APIENTRY *qglLogicOp)(GLenum opcode) = 0;
  166. void (APIENTRY *qglMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points) = 0;
  167. void (APIENTRY *qglMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points) = 0;
  168. void (APIENTRY *qglMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points) = 0;
  169. void (APIENTRY *qglMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points) = 0;
  170. void (APIENTRY *qglMapGrid1d)(GLint un, GLdouble u1, GLdouble u2) = 0;
  171. void (APIENTRY *qglMapGrid1f)(GLint un, GLfloat u1, GLfloat u2) = 0;
  172. void (APIENTRY *qglMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2) = 0;
  173. void (APIENTRY *qglMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2) = 0;
  174. void (APIENTRY *qglMaterialf)(GLenum face, GLenum pname, GLfloat param) = 0;
  175. void (APIENTRY *qglMaterialfv)(GLenum face, GLenum pname, const GLfloat *params) = 0;
  176. void (APIENTRY *qglMateriali)(GLenum face, GLenum pname, GLint param) = 0;
  177. void (APIENTRY *qglMaterialiv)(GLenum face, GLenum pname, const GLint *params) = 0;
  178. void (APIENTRY *qglMatrixMode)(GLenum mode) = 0;
  179. void (APIENTRY *qglMultMatrixd)(const GLdouble *m) = 0;
  180. void (APIENTRY *qglMultMatrixf)(const GLfloat *m) = 0;
  181. void (APIENTRY *qglNewList)(GLuint list, GLenum mode) = 0;
  182. void (APIENTRY *qglNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz) = 0;
  183. void (APIENTRY *qglNormal3bv)(const GLbyte *v) = 0;
  184. void (APIENTRY *qglNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz) = 0;
  185. void (APIENTRY *qglNormal3dv)(const GLdouble *v) = 0;
  186. void (APIENTRY *qglNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz) = 0;
  187. void (APIENTRY *qglNormal3fv)(const GLfloat *v) = 0;
  188. void (APIENTRY *qglNormal3i)(GLint nx, GLint ny, GLint nz) = 0;
  189. void (APIENTRY *qglNormal3iv)(const GLint *v) = 0;
  190. void (APIENTRY *qglNormal3s)(GLshort nx, GLshort ny, GLshort nz) = 0;
  191. void (APIENTRY *qglNormal3sv)(const GLshort *v) = 0;
  192. void (APIENTRY *qglNormalPointer)(GLenum type, GLsizei stride, const GLvoid *pointer) = 0;
  193. void (APIENTRY *qglOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar) = 0;
  194. void (APIENTRY *qglPassThrough)(GLfloat token) = 0;
  195. void (APIENTRY *qglPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat *values) = 0;
  196. void (APIENTRY *qglPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint *values) = 0;
  197. void (APIENTRY *qglPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort *values) = 0;
  198. void (APIENTRY *qglPixelStoref)(GLenum pname, GLfloat param) = 0;
  199. void (APIENTRY *qglPixelStorei)(GLenum pname, GLint param) = 0;
  200. void (APIENTRY *qglPixelTransferf)(GLenum pname, GLfloat param) = 0;
  201. void (APIENTRY *qglPixelTransferi)(GLenum pname, GLint param) = 0;
  202. void (APIENTRY *qglPixelZoom)(GLfloat xfactor, GLfloat yfactor) = 0;
  203. void (APIENTRY *qglPointSize)(GLfloat size) = 0;
  204. void (APIENTRY *qglPolygonMode)(GLenum face, GLenum mode) = 0;
  205. void (APIENTRY *qglPolygonOffset)(GLfloat factor, GLfloat units) = 0;
  206. void (APIENTRY *qglPolygonStipple)(const GLubyte *mask) = 0;
  207. void (APIENTRY *qglPopAttrib)(void) = 0;
  208. void (APIENTRY *qglPopClientAttrib)(void) = 0;
  209. void (APIENTRY *qglPopMatrix)(void) = 0;
  210. void (APIENTRY *qglPopName)(void) = 0;
  211. void (APIENTRY *qglPrioritizeTextures)(GLsizei n, const GLuint *textures, const GLclampf *priorities) = 0;
  212. void (APIENTRY *qglPushAttrib)(GLbitfield mask) = 0;
  213. void (APIENTRY *qglPushClientAttrib)(GLbitfield mask) = 0;
  214. void (APIENTRY *qglPushMatrix)(void) = 0;
  215. void (APIENTRY *qglPushName)(GLuint name) = 0;
  216. void (APIENTRY *qglRasterPos2d)(GLdouble x, GLdouble y) = 0;
  217. void (APIENTRY *qglRasterPos2dv)(const GLdouble *v) = 0;
  218. void (APIENTRY *qglRasterPos2f)(GLfloat x, GLfloat y) = 0;
  219. void (APIENTRY *qglRasterPos2fv)(const GLfloat *v) = 0;
  220. void (APIENTRY *qglRasterPos2i)(GLint x, GLint y) = 0;
  221. void (APIENTRY *qglRasterPos2iv)(const GLint *v) = 0;
  222. void (APIENTRY *qglRasterPos2s)(GLshort x, GLshort y) = 0;
  223. void (APIENTRY *qglRasterPos2sv)(const GLshort *v) = 0;
  224. void (APIENTRY *qglRasterPos3d)(GLdouble x, GLdouble y, GLdouble z) = 0;
  225. void (APIENTRY *qglRasterPos3dv)(const GLdouble *v) = 0;
  226. void (APIENTRY *qglRasterPos3f)(GLfloat x, GLfloat y, GLfloat z) = 0;
  227. void (APIENTRY *qglRasterPos3fv)(const GLfloat *v) = 0;
  228. void (APIENTRY *qglRasterPos3i)(GLint x, GLint y, GLint z) = 0;
  229. void (APIENTRY *qglRasterPos3iv)(const GLint *v) = 0;
  230. void (APIENTRY *qglRasterPos3s)(GLshort x, GLshort y, GLshort z) = 0;
  231. void (APIENTRY *qglRasterPos3sv)(const GLshort *v) = 0;
  232. void (APIENTRY *qglRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) = 0;
  233. void (APIENTRY *qglRasterPos4dv)(const GLdouble *v) = 0;
  234. void (APIENTRY *qglRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
  235. void (APIENTRY *qglRasterPos4fv)(const GLfloat *v) = 0;
  236. void (APIENTRY *qglRasterPos4i)(GLint x, GLint y, GLint z, GLint w) = 0;
  237. void (APIENTRY *qglRasterPos4iv)(const GLint *v) = 0;
  238. void (APIENTRY *qglRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w) = 0;
  239. void (APIENTRY *qglRasterPos4sv)(const GLshort *v) = 0;
  240. void (APIENTRY *qglReadBuffer)(GLenum mode) = 0;
  241. void (APIENTRY *qglReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels) = 0;
  242. void (APIENTRY *qglRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2) = 0;
  243. void (APIENTRY *qglRectdv)(const GLdouble *v1, const GLdouble *v2) = 0;
  244. void (APIENTRY *qglRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2) = 0;
  245. void (APIENTRY *qglRectfv)(const GLfloat *v1, const GLfloat *v2) = 0;
  246. void (APIENTRY *qglRecti)(GLint x1, GLint y1, GLint x2, GLint y2) = 0;
  247. void (APIENTRY *qglRectiv)(const GLint *v1, const GLint *v2) = 0;
  248. void (APIENTRY *qglRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2) = 0;
  249. void (APIENTRY *qglRectsv)(const GLshort *v1, const GLshort *v2) = 0;
  250. GLint (APIENTRY *qglRenderMode)(GLenum mode) = 0;
  251. void (APIENTRY *qglRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z) = 0;
  252. void (APIENTRY *qglRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) = 0;
  253. void (APIENTRY *qglScaled)(GLdouble x, GLdouble y, GLdouble z) = 0;
  254. void (APIENTRY *qglScalef)(GLfloat x, GLfloat y, GLfloat z) = 0;
  255. void (APIENTRY *qglScissor)(GLint x, GLint y, GLsizei width, GLsizei height) = 0;
  256. void (APIENTRY *qglSelectBuffer)(GLsizei size, GLuint *buffer) = 0;
  257. void (APIENTRY *qglShadeModel)(GLenum mode) = 0;
  258. void (APIENTRY *qglStencilFunc)(GLenum func, GLint ref, GLuint mask) = 0;
  259. void (APIENTRY *qglStencilMask)(GLuint mask) = 0;
  260. void (APIENTRY *qglStencilOp)(GLenum fail, GLenum zfail, GLenum zpass) = 0;
  261. void (APIENTRY *qglTexCoord1d)(GLdouble s) = 0;
  262. void (APIENTRY *qglTexCoord1dv)(const GLdouble *v) = 0;
  263. void (APIENTRY *qglTexCoord1f)(GLfloat s) = 0;
  264. void (APIENTRY *qglTexCoord1fv)(const GLfloat *v) = 0;
  265. void (APIENTRY *qglTexCoord1i)(GLint s) = 0;
  266. void (APIENTRY *qglTexCoord1iv)(const GLint *v) = 0;
  267. void (APIENTRY *qglTexCoord1s)(GLshort s) = 0;
  268. void (APIENTRY *qglTexCoord1sv)(const GLshort *v) = 0;
  269. void (APIENTRY *qglTexCoord2d)(GLdouble s, GLdouble t) = 0;
  270. void (APIENTRY *qglTexCoord2dv)(const GLdouble *v) = 0;
  271. void (APIENTRY *qglTexCoord2f)(GLfloat s, GLfloat t) = 0;
  272. void (APIENTRY *qglTexCoord2fv)(const GLfloat *v) = 0;
  273. void (APIENTRY *qglTexCoord2i)(GLint s, GLint t) = 0;
  274. void (APIENTRY *qglTexCoord2iv)(const GLint *v) = 0;
  275. void (APIENTRY *qglTexCoord2s)(GLshort s, GLshort t) = 0;
  276. void (APIENTRY *qglTexCoord2sv)(const GLshort *v) = 0;
  277. void (APIENTRY *qglTexCoord3d)(GLdouble s, GLdouble t, GLdouble r) = 0;
  278. void (APIENTRY *qglTexCoord3dv)(const GLdouble *v) = 0;
  279. void (APIENTRY *qglTexCoord3f)(GLfloat s, GLfloat t, GLfloat r) = 0;
  280. void (APIENTRY *qglTexCoord3fv)(const GLfloat *v) = 0;
  281. void (APIENTRY *qglTexCoord3i)(GLint s, GLint t, GLint r) = 0;
  282. void (APIENTRY *qglTexCoord3iv)(const GLint *v) = 0;
  283. void (APIENTRY *qglTexCoord3s)(GLshort s, GLshort t, GLshort r) = 0;
  284. void (APIENTRY *qglTexCoord3sv)(const GLshort *v) = 0;
  285. void (APIENTRY *qglTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q) = 0;
  286. void (APIENTRY *qglTexCoord4dv)(const GLdouble *v) = 0;
  287. void (APIENTRY *qglTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q) = 0;
  288. void (APIENTRY *qglTexCoord4fv)(const GLfloat *v) = 0;
  289. void (APIENTRY *qglTexCoord4i)(GLint s, GLint t, GLint r, GLint q) = 0;
  290. void (APIENTRY *qglTexCoord4iv)(const GLint *v) = 0;
  291. void (APIENTRY *qglTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q) = 0;
  292. void (APIENTRY *qglTexCoord4sv)(const GLshort *v) = 0;
  293. void (APIENTRY *qglTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) = 0;
  294. void (APIENTRY *qglTexEnvf)(GLenum target, GLenum pname, GLfloat param) = 0;
  295. void (APIENTRY *qglTexEnvfv)(GLenum target, GLenum pname, const GLfloat *params) = 0;
  296. void (APIENTRY *qglTexEnvi)(GLenum target, GLenum pname, GLint param) = 0;
  297. void (APIENTRY *qglTexEnviv)(GLenum target, GLenum pname, const GLint *params) = 0;
  298. void (APIENTRY *qglTexGend)(GLenum coord, GLenum pname, GLdouble param) = 0;
  299. void (APIENTRY *qglTexGendv)(GLenum coord, GLenum pname, const GLdouble *params) = 0;
  300. void (APIENTRY *qglTexGenf)(GLenum coord, GLenum pname, GLfloat param) = 0;
  301. void (APIENTRY *qglTexGenfv)(GLenum coord, GLenum pname, const GLfloat *params) = 0;
  302. void (APIENTRY *qglTexGeni)(GLenum coord, GLenum pname, GLint param) = 0;
  303. void (APIENTRY *qglTexGeniv)(GLenum coord, GLenum pname, const GLint *params) = 0;
  304. void (APIENTRY *qglTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels) = 0;
  305. void (APIENTRY *qglTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels) = 0;
  306. void (APIENTRY *qglTexParameterf)(GLenum target, GLenum pname, GLfloat param) = 0;
  307. void (APIENTRY *qglTexParameterfv)(GLenum target, GLenum pname, const GLfloat *params) = 0;
  308. void (APIENTRY *qglTexParameteri)(GLenum target, GLenum pname, GLint param) = 0;
  309. void (APIENTRY *qglTexParameteriv)(GLenum target, GLenum pname, const GLint *params) = 0;
  310. void (APIENTRY *qglTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels) = 0;
  311. void (APIENTRY *qglTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels) = 0;
  312. void (APIENTRY *qglTranslated)(GLdouble x, GLdouble y, GLdouble z) = 0;
  313. void (APIENTRY *qglTranslatef)(GLfloat x, GLfloat y, GLfloat z) = 0;
  314. void (APIENTRY *qglVertex2d)(GLdouble x, GLdouble y) = 0;
  315. void (APIENTRY *qglVertex2dv)(const GLdouble *v) = 0;
  316. void (APIENTRY *qglVertex2f)(GLfloat x, GLfloat y) = 0;
  317. void (APIENTRY *qglVertex2fv)(const GLfloat *v) = 0;
  318. void (APIENTRY *qglVertex2i)(GLint x, GLint y) = 0;
  319. void (APIENTRY *qglVertex2iv)(const GLint *v) = 0;
  320. void (APIENTRY *qglVertex2s)(GLshort x, GLshort y) = 0;
  321. void (APIENTRY *qglVertex2sv)(const GLshort *v) = 0;
  322. void (APIENTRY *qglVertex3d)(GLdouble x, GLdouble y, GLdouble z) = 0;
  323. void (APIENTRY *qglVertex3dv)(const GLdouble *v) = 0;
  324. void (APIENTRY *qglVertex3f)(GLfloat x, GLfloat y, GLfloat z) = 0;
  325. void (APIENTRY *qglVertex3fv)(const GLfloat *v) = 0;
  326. void (APIENTRY *qglVertex3i)(GLint x, GLint y, GLint z) = 0;
  327. void (APIENTRY *qglVertex3iv)(const GLint *v) = 0;
  328. void (APIENTRY *qglVertex3s)(GLshort x, GLshort y, GLshort z) = 0;
  329. void (APIENTRY *qglVertex3sv)(const GLshort *v) = 0;
  330. void (APIENTRY *qglVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w) = 0;
  331. void (APIENTRY *qglVertex4dv)(const GLdouble *v) = 0;
  332. void (APIENTRY *qglVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w) = 0;
  333. void (APIENTRY *qglVertex4fv)(const GLfloat *v) = 0;
  334. void (APIENTRY *qglVertex4i)(GLint x, GLint y, GLint z, GLint w) = 0;
  335. void (APIENTRY *qglVertex4iv)(const GLint *v) = 0;
  336. void (APIENTRY *qglVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w) = 0;
  337. void (APIENTRY *qglVertex4sv)(const GLshort *v) = 0;
  338. void (APIENTRY *qglVertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) = 0;
  339. void (APIENTRY *qglViewport)(GLint x, GLint y, GLsizei width, GLsizei height) = 0;

  340. PROC (WINAPI *qwglGetProcAddress)(LPCSTR) = 0;

  341. void (APIENTRY *qglActiveTexture)(GLenum texture) = 0;
  342. void (APIENTRY *qglSampleCoverage)(GLclampf value, GLboolean invert) = 0;
  343. void (APIENTRY *qglCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data) = 0;
  344. void (APIENTRY *qglCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data) = 0;
  345. void (APIENTRY *qglCompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data) = 0;
  346. void (APIENTRY *qglCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data) = 0;
  347. void (APIENTRY *qglCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data) = 0;
  348. void (APIENTRY *qglCompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data) = 0;
  349. void (APIENTRY *qglGetCompressedTexImage)(GLenum target, GLint level, GLvoid *img) = 0;

  350. GLboolean (APIENTRY *qglIsRenderbuffer)(GLuint renderbuffer) = 0;
  351. void (APIENTRY *qglBindRenderbuffer)(GLenum target, GLuint renderbuffer) = 0;
  352. void (APIENTRY *qglDeleteRenderbuffers)(GLsizei n, const GLuint *renderbuffers) = 0;
  353. void (APIENTRY *qglGenRenderbuffers)(GLsizei n, GLuint *renderbuffers) = 0;
  354. void (APIENTRY *qglRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) = 0;
  355. void (APIENTRY *qglGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint *params) = 0;
  356. GLboolean (APIENTRY *qglIsFramebuffer)(GLuint framebuffer) = 0;
  357. void (APIENTRY *qglBindFramebuffer)(GLenum target, GLuint framebuffer) = 0;
  358. void (APIENTRY *qglDeleteFramebuffers)(GLsizei n, const GLuint *framebuffers) = 0;
  359. void (APIENTRY *qglGenFramebuffers)(GLsizei n, GLuint *framebuffers) = 0;
  360. GLenum (APIENTRY *qglCheckFramebufferStatus)(GLenum target) = 0;
  361. void (APIENTRY *qglFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = 0;
  362. void (APIENTRY *qglFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) = 0;
  363. void (APIENTRY *qglFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) = 0;
  364. void (APIENTRY *qglFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) = 0;
  365. void (APIENTRY *qglGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint *params) = 0;
  366. void (APIENTRY *qglGenerateMipmap)(GLenum target) = 0;
  367. void (APIENTRY *qglBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) = 0;
  368. void (APIENTRY *qglRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) = 0;
  369. void (APIENTRY *qglFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) = 0;

  370. void QGL_InitExtension(void);

  371. void QGL_Init(void)
  372. {
  373.     HMODULE hOpenGL = GetModuleHandleA("opengl32.dll");

  374.     if (hOpenGL)
  375.     {
  376.         qglAccum = (void (APIENTRY *)(GLenum, GLfloat))GetProcAddress(hOpenGL, "glAccum");
  377.         qglAlphaFunc = (void (APIENTRY *)(GLenum, GLclampf))GetProcAddress(hOpenGL, "glAlphaFunc");
  378.         qglAreTexturesResident = (GLboolean (APIENTRY *)(GLsizei, const GLuint *, GLboolean *))GetProcAddress(hOpenGL, "glAreTexturesResident");
  379.         qglArrayElement = (void (APIENTRY *)(GLint))GetProcAddress(hOpenGL, "glArrayElement");
  380.         qglBegin = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glBegin");
  381.         qglBindTexture = (void (APIENTRY *)(GLenum, GLuint))GetProcAddress(hOpenGL, "glBindTexture");
  382.         qglBitmap = (void (APIENTRY *)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *))GetProcAddress(hOpenGL, "glBitmap");
  383.         qglBlendFunc = (void (APIENTRY *)(GLenum, GLenum))GetProcAddress(hOpenGL, "glBlendFunc");
  384.         qglCallList = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glCallList");
  385.         qglCallLists = (void (APIENTRY *)(GLsizei, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glCallLists");
  386.         qglClear = (void (APIENTRY *)(GLbitfield))GetProcAddress(hOpenGL, "glClear");
  387.         qglClearAccum = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glClearAccum");
  388.         qglClearColor = (void (APIENTRY *)(GLclampf, GLclampf, GLclampf, GLclampf))GetProcAddress(hOpenGL, "glClearColor");
  389.         qglClearDepth = (void (APIENTRY *)(GLclampd))GetProcAddress(hOpenGL, "glClearDepth");
  390.         qglClearIndex = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glClearIndex");
  391.         qglClearStencil = (void (APIENTRY *)(GLint))GetProcAddress(hOpenGL, "glClearStencil");
  392.         qglClipPlane = (void (APIENTRY *)(GLenum, const GLdouble *))GetProcAddress(hOpenGL, "glClipPlane");
  393.         qglColor3b = (void (APIENTRY *)(GLbyte, GLbyte, GLbyte))GetProcAddress(hOpenGL, "glColor3b");
  394.         qglColor3bv = (void (APIENTRY *)(const GLbyte *))GetProcAddress(hOpenGL, "glColor3bv");
  395.         qglColor3d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glColor3d");
  396.         qglColor3dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glColor3dv");
  397.         qglColor3f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glColor3f");
  398.         qglColor3fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glColor3fv");
  399.         qglColor3i = (void (APIENTRY *)(GLint, GLint, GLint))GetProcAddress(hOpenGL, "glColor3i");
  400.         qglColor3iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glColor3iv");
  401.         qglColor3s = (void (APIENTRY *)(GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glColor3s");
  402.         qglColor3sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glColor3sv");
  403.         qglColor3ub = (void (APIENTRY *)(GLubyte, GLubyte, GLubyte))GetProcAddress(hOpenGL, "glColor3ub");
  404.         qglColor3ubv = (void (APIENTRY *)(const GLubyte *))GetProcAddress(hOpenGL, "glColor3ubv");
  405.         qglColor3ui = (void (APIENTRY *)(GLuint, GLuint, GLuint))GetProcAddress(hOpenGL, "glColor3ui");
  406.         qglColor3uiv = (void (APIENTRY *)(const GLuint *))GetProcAddress(hOpenGL, "glColor3uiv");
  407.         qglColor3us = (void (APIENTRY *)(GLushort, GLushort, GLushort))GetProcAddress(hOpenGL, "glColor3us");
  408.         qglColor3usv = (void (APIENTRY *)(const GLushort *))GetProcAddress(hOpenGL, "glColor3usv");
  409.         qglColor4b = (void (APIENTRY *)(GLbyte, GLbyte, GLbyte, GLbyte))GetProcAddress(hOpenGL, "glColor4b");
  410.         qglColor4bv = (void (APIENTRY *)(const GLbyte *))GetProcAddress(hOpenGL, "glColor4bv");
  411.         qglColor4d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glColor4d");
  412.         qglColor4dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glColor4dv");
  413.         qglColor4f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glColor4f");
  414.         qglColor4fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glColor4fv");
  415.         qglColor4i = (void (APIENTRY *)(GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glColor4i");
  416.         qglColor4iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glColor4iv");
  417.         qglColor4s = (void (APIENTRY *)(GLshort, GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glColor4s");
  418.         qglColor4sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glColor4sv");
  419.         qglColor4ub = (void (APIENTRY *)(GLubyte, GLubyte, GLubyte, GLubyte))GetProcAddress(hOpenGL, "glColor4ub");
  420.         qglColor4ubv = (void (APIENTRY *)(const GLubyte *))GetProcAddress(hOpenGL, "glColor4ubv");
  421.         qglColor4ui = (void (APIENTRY *)(GLuint, GLuint, GLuint, GLuint))GetProcAddress(hOpenGL, "glColor4ui");
  422.         qglColor4uiv = (void (APIENTRY *)(const GLuint *))GetProcAddress(hOpenGL, "glColor4uiv");
  423.         qglColor4us = (void (APIENTRY *)(GLushort, GLushort, GLushort, GLushort))GetProcAddress(hOpenGL, "glColor4us");
  424.         qglColor4usv = (void (APIENTRY *)(const GLushort *))GetProcAddress(hOpenGL, "glColor4usv");
  425.         qglColorMask = (void (APIENTRY *)(GLboolean, GLboolean, GLboolean, GLboolean))GetProcAddress(hOpenGL, "glColorMask");
  426.         qglColorMaterial = (void (APIENTRY *)(GLenum, GLenum))GetProcAddress(hOpenGL, "glColorMaterial");
  427.         qglColorPointer = (void (APIENTRY *)(GLint, GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glColorPointer");
  428.         qglCopyPixels = (void (APIENTRY *)(GLint, GLint, GLsizei, GLsizei, GLenum))GetProcAddress(hOpenGL, "glCopyPixels");
  429.         qglCopyTexImage1D = (void (APIENTRY *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint))GetProcAddress(hOpenGL, "glCopyTexImage1D");
  430.         qglCopyTexImage2D = (void (APIENTRY *)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint))GetProcAddress(hOpenGL, "glCopyTexImage2D");
  431.         qglCopyTexSubImage1D = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLint, GLsizei))GetProcAddress(hOpenGL, "glCopyTexSubImage1D");
  432.         qglCopyTexSubImage2D = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei))GetProcAddress(hOpenGL, "glCopyTexSubImage2D");
  433.         qglCullFace = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glCullFace");
  434.         qglDeleteLists = (void (APIENTRY *)(GLuint, GLsizei))GetProcAddress(hOpenGL, "glDeleteLists");
  435.         qglDeleteTextures = (void (APIENTRY *)(GLsizei, const GLuint *))GetProcAddress(hOpenGL, "glDeleteTextures");
  436.         qglDepthFunc = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glDepthFunc");
  437.         qglDepthMask = (void (APIENTRY *)(GLboolean))GetProcAddress(hOpenGL, "glDepthMask");
  438.         qglDepthRange = (void (APIENTRY *)(GLclampd, GLclampd))GetProcAddress(hOpenGL, "glDepthRange");
  439.         qglDisable = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glDisable");
  440.         qglDisableClientState = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glDisableClientState");
  441.         qglDrawArrays = (void (APIENTRY *)(GLenum, GLint, GLsizei))GetProcAddress(hOpenGL, "glDrawArrays");
  442.         qglDrawBuffer = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glDrawBuffer");
  443.         qglDrawElements = (void (APIENTRY *)(GLenum, GLsizei, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glDrawElements");
  444.         qglDrawPixels = (void (APIENTRY *)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glDrawPixels");
  445.         qglEdgeFlag = (void (APIENTRY *)(GLboolean))GetProcAddress(hOpenGL, "glEdgeFlag");
  446.         qglEdgeFlagPointer = (void (APIENTRY *)(GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glEdgeFlagPointer");
  447.         qglEdgeFlagv = (void (APIENTRY *)(const GLboolean *))GetProcAddress(hOpenGL, "glEdgeFlagv");
  448.         qglEnable = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glEnable");
  449.         qglEnableClientState = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glEnableClientState");
  450.         qglEnd = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glEnd");
  451.         qglEndList = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glEndList");
  452.         qglEvalCoord1d = (void (APIENTRY *)(GLdouble))GetProcAddress(hOpenGL, "glEvalCoord1d");
  453.         qglEvalCoord1dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glEvalCoord1dv");
  454.         qglEvalCoord1f = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glEvalCoord1f");
  455.         qglEvalCoord1fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glEvalCoord1fv");
  456.         qglEvalCoord2d = (void (APIENTRY *)(GLdouble, GLdouble))GetProcAddress(hOpenGL, "glEvalCoord2d");
  457.         qglEvalCoord2dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glEvalCoord2dv");
  458.         qglEvalCoord2f = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glEvalCoord2f");
  459.         qglEvalCoord2fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glEvalCoord2fv");
  460.         qglEvalMesh1 = (void (APIENTRY *)(GLenum, GLint, GLint))GetProcAddress(hOpenGL, "glEvalMesh1");
  461.         qglEvalMesh2 = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glEvalMesh2");
  462.         qglEvalPoint1 = (void (APIENTRY *)(GLint))GetProcAddress(hOpenGL, "glEvalPoint1");
  463.         qglEvalPoint2 = (void (APIENTRY *)(GLint, GLint))GetProcAddress(hOpenGL, "glEvalPoint2");
  464.         qglFeedbackBuffer = (void (APIENTRY *)(GLsizei, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glFeedbackBuffer");
  465.         qglFinish = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glFinish");
  466.         qglFlush = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glFlush");
  467.         qglFogf = (void (APIENTRY *)(GLenum, GLfloat))GetProcAddress(hOpenGL, "glFogf");
  468.         qglFogfv = (void (APIENTRY *)(GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glFogfv");
  469.         qglFogi = (void (APIENTRY *)(GLenum, GLint))GetProcAddress(hOpenGL, "glFogi");
  470.         qglFogiv = (void (APIENTRY *)(GLenum, const GLint *))GetProcAddress(hOpenGL, "glFogiv");
  471.         qglFrontFace = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glFrontFace");
  472.         qglFrustum = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glFrustum");
  473.         qglGenLists = (GLuint (APIENTRY *)(GLsizei))GetProcAddress(hOpenGL, "glGenLists");
  474.         qglGenTextures = (void (APIENTRY *)(GLsizei, GLuint *))GetProcAddress(hOpenGL, "glGenTextures");
  475.         qglGetBooleanv = (void (APIENTRY *)(GLenum, GLboolean *))GetProcAddress(hOpenGL, "glGetBooleanv");
  476.         qglGetClipPlane = (void (APIENTRY *)(GLenum, GLdouble *))GetProcAddress(hOpenGL, "glGetClipPlane");
  477.         qglGetDoublev = (void (APIENTRY *)(GLenum, GLdouble *))GetProcAddress(hOpenGL, "glGetDoublev");
  478.         qglGetError = (GLenum (APIENTRY *)(void))GetProcAddress(hOpenGL, "glGetError");
  479.         qglGetFloatv = (void (APIENTRY *)(GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetFloatv");
  480.         qglGetIntegerv = (void (APIENTRY *)(GLenum, GLint *))GetProcAddress(hOpenGL, "glGetIntegerv");
  481.         qglGetLightfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetLightfv");
  482.         qglGetLightiv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetLightiv");
  483.         qglGetMapdv = (void (APIENTRY *)(GLenum, GLenum, GLdouble *))GetProcAddress(hOpenGL, "glGetMapdv");
  484.         qglGetMapfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetMapfv");
  485.         qglGetMapiv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetMapiv");
  486.         qglGetMaterialfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetMaterialfv");
  487.         qglGetMaterialiv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetMaterialiv");
  488.         qglGetPixelMapfv = (void (APIENTRY *)(GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetPixelMapfv");
  489.         qglGetPixelMapuiv = (void (APIENTRY *)(GLenum, GLuint *))GetProcAddress(hOpenGL, "glGetPixelMapuiv");
  490.         qglGetPixelMapusv = (void (APIENTRY *)(GLenum, GLushort *))GetProcAddress(hOpenGL, "glGetPixelMapusv");
  491.         qglGetPointerv = (void (APIENTRY *)(GLenum, GLvoid* *))GetProcAddress(hOpenGL, "glGetPointerv");
  492.         qglGetPolygonStipple = (void (APIENTRY *)(GLubyte *))GetProcAddress(hOpenGL, "glGetPolygonStipple");
  493.         qglGetString = (const GLubyte * (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glGetString");
  494.         qglGetTexEnvfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetTexEnvfv");
  495.         qglGetTexEnviv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetTexEnviv");
  496.         qglGetTexGendv = (void (APIENTRY *)(GLenum, GLenum, GLdouble *))GetProcAddress(hOpenGL, "glGetTexGendv");
  497.         qglGetTexGenfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetTexGenfv");
  498.         qglGetTexGeniv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetTexGeniv");
  499.         qglGetTexImage = (void (APIENTRY *)(GLenum, GLint, GLenum, GLenum, GLvoid *))GetProcAddress(hOpenGL, "glGetTexImage");
  500.         qglGetTexLevelParameterfv = (void (APIENTRY *)(GLenum, GLint, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetTexLevelParameterfv");
  501.         qglGetTexLevelParameteriv = (void (APIENTRY *)(GLenum, GLint, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetTexLevelParameteriv");
  502.         qglGetTexParameterfv = (void (APIENTRY *)(GLenum, GLenum, GLfloat *))GetProcAddress(hOpenGL, "glGetTexParameterfv");
  503.         qglGetTexParameteriv = (void (APIENTRY *)(GLenum, GLenum, GLint *))GetProcAddress(hOpenGL, "glGetTexParameteriv");
  504.         qglHint = (void (APIENTRY *)(GLenum, GLenum))GetProcAddress(hOpenGL, "glHint");
  505.         qglIndexMask = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glIndexMask");
  506.         qglIndexPointer = (void (APIENTRY *)(GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glIndexPointer");
  507.         qglIndexd = (void (APIENTRY *)(GLdouble))GetProcAddress(hOpenGL, "glIndexd");
  508.         qglIndexdv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glIndexdv");
  509.         qglIndexf = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glIndexf");
  510.         qglIndexfv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glIndexfv");
  511.         qglIndexi = (void (APIENTRY *)(GLint))GetProcAddress(hOpenGL, "glIndexi");
  512.         qglIndexiv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glIndexiv");
  513.         qglIndexs = (void (APIENTRY *)(GLshort))GetProcAddress(hOpenGL, "glIndexs");
  514.         qglIndexsv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glIndexsv");
  515.         qglIndexub = (void (APIENTRY *)(GLubyte))GetProcAddress(hOpenGL, "glIndexub");
  516.         qglIndexubv = (void (APIENTRY *)(const GLubyte *))GetProcAddress(hOpenGL, "glIndexubv");
  517.         qglInitNames = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glInitNames");
  518.         qglInterleavedArrays = (void (APIENTRY *)(GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glInterleavedArrays");
  519.         qglIsEnabled = (GLboolean (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glIsEnabled");
  520.         qglIsList = (GLboolean (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glIsList");
  521.         qglIsTexture = (GLboolean (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glIsTexture");
  522.         qglLightModelf = (void (APIENTRY *)(GLenum, GLfloat))GetProcAddress(hOpenGL, "glLightModelf");
  523.         qglLightModelfv = (void (APIENTRY *)(GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glLightModelfv");
  524.         qglLightModeli = (void (APIENTRY *)(GLenum, GLint))GetProcAddress(hOpenGL, "glLightModeli");
  525.         qglLightModeliv = (void (APIENTRY *)(GLenum, const GLint *))GetProcAddress(hOpenGL, "glLightModeliv");
  526.         qglLightf = (void (APIENTRY *)(GLenum, GLenum, GLfloat))GetProcAddress(hOpenGL, "glLightf");
  527.         qglLightfv = (void (APIENTRY *)(GLenum, GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glLightfv");
  528.         qglLighti = (void (APIENTRY *)(GLenum, GLenum, GLint))GetProcAddress(hOpenGL, "glLighti");
  529.         qglLightiv = (void (APIENTRY *)(GLenum, GLenum, const GLint *))GetProcAddress(hOpenGL, "glLightiv");
  530.         qglLineStipple = (void (APIENTRY *)(GLint, GLushort))GetProcAddress(hOpenGL, "glLineStipple");
  531.         qglLineWidth = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glLineWidth");
  532.         qglListBase = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glListBase");
  533.         qglLoadIdentity = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glLoadIdentity");
  534.         qglLoadMatrixd = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glLoadMatrixd");
  535.         qglLoadMatrixf = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glLoadMatrixf");
  536.         qglLoadName = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glLoadName");
  537.         qglLogicOp = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glLogicOp");
  538.         qglMap1d = (void (APIENTRY *)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *))GetProcAddress(hOpenGL, "glMap1d");
  539.         qglMap1f = (void (APIENTRY *)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *))GetProcAddress(hOpenGL, "glMap1f");
  540.         qglMap2d = (void (APIENTRY *)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *))GetProcAddress(hOpenGL, "glMap2d");
  541.         qglMap2f = (void (APIENTRY *)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *))GetProcAddress(hOpenGL, "glMap2f");
  542.         qglMapGrid1d = (void (APIENTRY *)(GLint, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glMapGrid1d");
  543.         qglMapGrid1f = (void (APIENTRY *)(GLint, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glMapGrid1f");
  544.         qglMapGrid2d = (void (APIENTRY *)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glMapGrid2d");
  545.         qglMapGrid2f = (void (APIENTRY *)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glMapGrid2f");
  546.         qglMaterialf = (void (APIENTRY *)(GLenum, GLenum, GLfloat))GetProcAddress(hOpenGL, "glMaterialf");
  547.         qglMaterialfv = (void (APIENTRY *)(GLenum, GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glMaterialfv");
  548.         qglMateriali = (void (APIENTRY *)(GLenum, GLenum, GLint))GetProcAddress(hOpenGL, "glMateriali");
  549.         qglMaterialiv = (void (APIENTRY *)(GLenum, GLenum, const GLint *))GetProcAddress(hOpenGL, "glMaterialiv");
  550.         qglMatrixMode = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glMatrixMode");
  551.         qglMultMatrixd = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glMultMatrixd");
  552.         qglMultMatrixf = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glMultMatrixf");
  553.         qglNewList = (void (APIENTRY *)(GLuint, GLenum))GetProcAddress(hOpenGL, "glNewList");
  554.         qglNormal3b = (void (APIENTRY *)(GLbyte, GLbyte, GLbyte))GetProcAddress(hOpenGL, "glNormal3b");
  555.         qglNormal3bv = (void (APIENTRY *)(const GLbyte *))GetProcAddress(hOpenGL, "glNormal3bv");
  556.         qglNormal3d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glNormal3d");
  557.         qglNormal3dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glNormal3dv");
  558.         qglNormal3f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glNormal3f");
  559.         qglNormal3fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glNormal3fv");
  560.         qglNormal3i = (void (APIENTRY *)(GLint, GLint, GLint))GetProcAddress(hOpenGL, "glNormal3i");
  561.         qglNormal3iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glNormal3iv");
  562.         qglNormal3s = (void (APIENTRY *)(GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glNormal3s");
  563.         qglNormal3sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glNormal3sv");
  564.         qglNormalPointer = (void (APIENTRY *)(GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glNormalPointer");
  565.         qglOrtho = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glOrtho");
  566.         qglPassThrough = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glPassThrough");
  567.         qglPixelMapfv = (void (APIENTRY *)(GLenum, GLsizei, const GLfloat *))GetProcAddress(hOpenGL, "glPixelMapfv");
  568.         qglPixelMapuiv = (void (APIENTRY *)(GLenum, GLsizei, const GLuint *))GetProcAddress(hOpenGL, "glPixelMapuiv");
  569.         qglPixelMapusv = (void (APIENTRY *)(GLenum, GLsizei, const GLushort *))GetProcAddress(hOpenGL, "glPixelMapusv");
  570.         qglPixelStoref = (void (APIENTRY *)(GLenum, GLfloat))GetProcAddress(hOpenGL, "glPixelStoref");
  571.         qglPixelStorei = (void (APIENTRY *)(GLenum, GLint))GetProcAddress(hOpenGL, "glPixelStorei");
  572.         qglPixelTransferf = (void (APIENTRY *)(GLenum, GLfloat))GetProcAddress(hOpenGL, "glPixelTransferf");
  573.         qglPixelTransferi = (void (APIENTRY *)(GLenum, GLint))GetProcAddress(hOpenGL, "glPixelTransferi");
  574.         qglPixelZoom = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glPixelZoom");
  575.         qglPointSize = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glPointSize");
  576.         qglPolygonMode = (void (APIENTRY *)(GLenum, GLenum))GetProcAddress(hOpenGL, "glPolygonMode");
  577.         qglPolygonOffset = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glPolygonOffset");
  578.         qglPolygonStipple = (void (APIENTRY *)(const GLubyte *))GetProcAddress(hOpenGL, "glPolygonStipple");
  579.         qglPopAttrib = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glPopAttrib");
  580.         qglPopClientAttrib = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glPopClientAttrib");
  581.         qglPopMatrix = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glPopMatrix");
  582.         qglPopName = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glPopName");
  583.         qglPrioritizeTextures = (void (APIENTRY *)(GLsizei, const GLuint *, const GLclampf *))GetProcAddress(hOpenGL, "glPrioritizeTextures");
  584.         qglPushAttrib = (void (APIENTRY *)(GLbitfield))GetProcAddress(hOpenGL, "glPushAttrib");
  585.         qglPushClientAttrib = (void (APIENTRY *)(GLbitfield))GetProcAddress(hOpenGL, "glPushClientAttrib");
  586.         qglPushMatrix = (void (APIENTRY *)(void))GetProcAddress(hOpenGL, "glPushMatrix");
  587.         qglPushName = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glPushName");
  588.         qglRasterPos2d = (void (APIENTRY *)(GLdouble, GLdouble))GetProcAddress(hOpenGL, "glRasterPos2d");
  589.         qglRasterPos2dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glRasterPos2dv");
  590.         qglRasterPos2f = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glRasterPos2f");
  591.         qglRasterPos2fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glRasterPos2fv");
  592.         qglRasterPos2i = (void (APIENTRY *)(GLint, GLint))GetProcAddress(hOpenGL, "glRasterPos2i");
  593.         qglRasterPos2iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glRasterPos2iv");
  594.         qglRasterPos2s = (void (APIENTRY *)(GLshort, GLshort))GetProcAddress(hOpenGL, "glRasterPos2s");
  595.         qglRasterPos2sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glRasterPos2sv");
  596.         qglRasterPos3d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glRasterPos3d");
  597.         qglRasterPos3dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glRasterPos3dv");
  598.         qglRasterPos3f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glRasterPos3f");
  599.         qglRasterPos3fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glRasterPos3fv");
  600.         qglRasterPos3i = (void (APIENTRY *)(GLint, GLint, GLint))GetProcAddress(hOpenGL, "glRasterPos3i");
  601.         qglRasterPos3iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glRasterPos3iv");
  602.         qglRasterPos3s = (void (APIENTRY *)(GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glRasterPos3s");
  603.         qglRasterPos3sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glRasterPos3sv");
  604.         qglRasterPos4d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glRasterPos4d");
  605.         qglRasterPos4dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glRasterPos4dv");
  606.         qglRasterPos4f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glRasterPos4f");
  607.         qglRasterPos4fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glRasterPos4fv");
  608.         qglRasterPos4i = (void (APIENTRY *)(GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glRasterPos4i");
  609.         qglRasterPos4iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glRasterPos4iv");
  610.         qglRasterPos4s = (void (APIENTRY *)(GLshort, GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glRasterPos4s");
  611.         qglRasterPos4sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glRasterPos4sv");
  612.         qglReadBuffer = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glReadBuffer");
  613.         qglReadPixels = (void (APIENTRY *)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *))GetProcAddress(hOpenGL, "glReadPixels");
  614.         qglRectd = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glRectd");
  615.         qglRectdv = (void (APIENTRY *)(const GLdouble *, const GLdouble *))GetProcAddress(hOpenGL, "glRectdv");
  616.         qglRectf = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glRectf");
  617.         qglRectfv = (void (APIENTRY *)(const GLfloat *, const GLfloat *))GetProcAddress(hOpenGL, "glRectfv");
  618.         qglRecti = (void (APIENTRY *)(GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glRecti");
  619.         qglRectiv = (void (APIENTRY *)(const GLint *, const GLint *))GetProcAddress(hOpenGL, "glRectiv");
  620.         qglRects = (void (APIENTRY *)(GLshort, GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glRects");
  621.         qglRectsv = (void (APIENTRY *)(const GLshort *, const GLshort *))GetProcAddress(hOpenGL, "glRectsv");
  622.         qglRenderMode = (GLint (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glRenderMode");
  623.         qglRotated = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glRotated");
  624.         qglRotatef = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glRotatef");
  625.         qglScaled = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glScaled");
  626.         qglScalef = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glScalef");
  627.         qglScissor = (void (APIENTRY *)(GLint, GLint, GLsizei, GLsizei))GetProcAddress(hOpenGL, "glScissor");
  628.         qglSelectBuffer = (void (APIENTRY *)(GLsizei, GLuint *))GetProcAddress(hOpenGL, "glSelectBuffer");
  629.         qglShadeModel = (void (APIENTRY *)(GLenum))GetProcAddress(hOpenGL, "glShadeModel");
  630.         qglStencilFunc = (void (APIENTRY *)(GLenum, GLint, GLuint))GetProcAddress(hOpenGL, "glStencilFunc");
  631.         qglStencilMask = (void (APIENTRY *)(GLuint))GetProcAddress(hOpenGL, "glStencilMask");
  632.         qglStencilOp = (void (APIENTRY *)(GLenum, GLenum, GLenum))GetProcAddress(hOpenGL, "glStencilOp");
  633.         qglTexCoord1d = (void (APIENTRY *)(GLdouble))GetProcAddress(hOpenGL, "glTexCoord1d");
  634.         qglTexCoord1dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glTexCoord1dv");
  635.         qglTexCoord1f = (void (APIENTRY *)(GLfloat))GetProcAddress(hOpenGL, "glTexCoord1f");
  636.         qglTexCoord1fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glTexCoord1fv");
  637.         qglTexCoord1i = (void (APIENTRY *)(GLint))GetProcAddress(hOpenGL, "glTexCoord1i");
  638.         qglTexCoord1iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glTexCoord1iv");
  639.         qglTexCoord1s = (void (APIENTRY *)(GLshort))GetProcAddress(hOpenGL, "glTexCoord1s");
  640.         qglTexCoord1sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glTexCoord1sv");
  641.         qglTexCoord2d = (void (APIENTRY *)(GLdouble, GLdouble))GetProcAddress(hOpenGL, "glTexCoord2d");
  642.         qglTexCoord2dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glTexCoord2dv");
  643.         qglTexCoord2f = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glTexCoord2f");
  644.         qglTexCoord2fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glTexCoord2fv");
  645.         qglTexCoord2i = (void (APIENTRY *)(GLint, GLint))GetProcAddress(hOpenGL, "glTexCoord2i");
  646.         qglTexCoord2iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glTexCoord2iv");
  647.         qglTexCoord2s = (void (APIENTRY *)(GLshort, GLshort))GetProcAddress(hOpenGL, "glTexCoord2s");
  648.         qglTexCoord2sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glTexCoord2sv");
  649.         qglTexCoord3d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glTexCoord3d");
  650.         qglTexCoord3dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glTexCoord3dv");
  651.         qglTexCoord3f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glTexCoord3f");
  652.         qglTexCoord3fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glTexCoord3fv");
  653.         qglTexCoord3i = (void (APIENTRY *)(GLint, GLint, GLint))GetProcAddress(hOpenGL, "glTexCoord3i");
  654.         qglTexCoord3iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glTexCoord3iv");
  655.         qglTexCoord3s = (void (APIENTRY *)(GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glTexCoord3s");
  656.         qglTexCoord3sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glTexCoord3sv");
  657.         qglTexCoord4d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glTexCoord4d");
  658.         qglTexCoord4dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glTexCoord4dv");
  659.         qglTexCoord4f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glTexCoord4f");
  660.         qglTexCoord4fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glTexCoord4fv");
  661.         qglTexCoord4i = (void (APIENTRY *)(GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glTexCoord4i");
  662.         qglTexCoord4iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glTexCoord4iv");
  663.         qglTexCoord4s = (void (APIENTRY *)(GLshort, GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glTexCoord4s");
  664.         qglTexCoord4sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glTexCoord4sv");
  665.         qglTexCoordPointer = (void (APIENTRY *)(GLint, GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glTexCoordPointer");
  666.         qglTexEnvf = (void (APIENTRY *)(GLenum, GLenum, GLfloat))GetProcAddress(hOpenGL, "glTexEnvf");
  667.         qglTexEnvfv = (void (APIENTRY *)(GLenum, GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glTexEnvfv");
  668.         qglTexEnvi = (void (APIENTRY *)(GLenum, GLenum, GLint))GetProcAddress(hOpenGL, "glTexEnvi");
  669.         qglTexEnviv = (void (APIENTRY *)(GLenum, GLenum, const GLint *))GetProcAddress(hOpenGL, "glTexEnviv");
  670.         qglTexGend = (void (APIENTRY *)(GLenum, GLenum, GLdouble))GetProcAddress(hOpenGL, "glTexGend");
  671.         qglTexGendv = (void (APIENTRY *)(GLenum, GLenum, const GLdouble *))GetProcAddress(hOpenGL, "glTexGendv");
  672.         qglTexGenf = (void (APIENTRY *)(GLenum, GLenum, GLfloat))GetProcAddress(hOpenGL, "glTexGenf");
  673.         qglTexGenfv = (void (APIENTRY *)(GLenum, GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glTexGenfv");
  674.         qglTexGeni = (void (APIENTRY *)(GLenum, GLenum, GLint))GetProcAddress(hOpenGL, "glTexGeni");
  675.         qglTexGeniv = (void (APIENTRY *)(GLenum, GLenum, const GLint *))GetProcAddress(hOpenGL, "glTexGeniv");
  676.         qglTexImage1D = (void (APIENTRY *)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glTexImage1D");
  677.         qglTexImage2D = (void (APIENTRY *)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glTexImage2D");
  678.         qglTexParameterf = (void (APIENTRY *)(GLenum, GLenum, GLfloat))GetProcAddress(hOpenGL, "glTexParameterf");
  679.         qglTexParameterfv = (void (APIENTRY *)(GLenum, GLenum, const GLfloat *))GetProcAddress(hOpenGL, "glTexParameterfv");
  680.         qglTexParameteri = (void (APIENTRY *)(GLenum, GLenum, GLint))GetProcAddress(hOpenGL, "glTexParameteri");
  681.         qglTexParameteriv = (void (APIENTRY *)(GLenum, GLenum, const GLint *))GetProcAddress(hOpenGL, "glTexParameteriv");
  682.         qglTexSubImage1D = (void (APIENTRY *)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glTexSubImage1D");
  683.         qglTexSubImage2D = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *))GetProcAddress(hOpenGL, "glTexSubImage2D");
  684.         qglTranslated = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glTranslated");
  685.         qglTranslatef = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glTranslatef");
  686.         qglVertex2d = (void (APIENTRY *)(GLdouble, GLdouble))GetProcAddress(hOpenGL, "glVertex2d");
  687.         qglVertex2dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glVertex2dv");
  688.         qglVertex2f = (void (APIENTRY *)(GLfloat, GLfloat))GetProcAddress(hOpenGL, "glVertex2f");
  689.         qglVertex2fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glVertex2fv");
  690.         qglVertex2i = (void (APIENTRY *)(GLint, GLint))GetProcAddress(hOpenGL, "glVertex2i");
  691.         qglVertex2iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glVertex2iv");
  692.         qglVertex2s = (void (APIENTRY *)(GLshort, GLshort))GetProcAddress(hOpenGL, "glVertex2s");
  693.         qglVertex2sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glVertex2sv");
  694.         qglVertex3d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glVertex3d");
  695.         qglVertex3dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glVertex3dv");
  696.         qglVertex3f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glVertex3f");
  697.         qglVertex3fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glVertex3fv");
  698.         qglVertex3i = (void (APIENTRY *)(GLint, GLint, GLint))GetProcAddress(hOpenGL, "glVertex3i");
  699.         qglVertex3iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glVertex3iv");
  700.         qglVertex3s = (void (APIENTRY *)(GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glVertex3s");
  701.         qglVertex3sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glVertex3sv");
  702.         qglVertex4d = (void (APIENTRY *)(GLdouble, GLdouble, GLdouble, GLdouble))GetProcAddress(hOpenGL, "glVertex4d");
  703.         qglVertex4dv = (void (APIENTRY *)(const GLdouble *))GetProcAddress(hOpenGL, "glVertex4dv");
  704.         qglVertex4f = (void (APIENTRY *)(GLfloat, GLfloat, GLfloat, GLfloat))GetProcAddress(hOpenGL, "glVertex4f");
  705.         qglVertex4fv = (void (APIENTRY *)(const GLfloat *))GetProcAddress(hOpenGL, "glVertex4fv");
  706.         qglVertex4i = (void (APIENTRY *)(GLint, GLint, GLint, GLint))GetProcAddress(hOpenGL, "glVertex4i");
  707.         qglVertex4iv = (void (APIENTRY *)(const GLint *))GetProcAddress(hOpenGL, "glVertex4iv");
  708.         qglVertex4s = (void (APIENTRY *)(GLshort, GLshort, GLshort, GLshort))GetProcAddress(hOpenGL, "glVertex4s");
  709.         qglVertex4sv = (void (APIENTRY *)(const GLshort *))GetProcAddress(hOpenGL, "glVertex4sv");
  710.         qglVertexPointer = (void (APIENTRY *)(GLint, GLenum, GLsizei, const GLvoid *))GetProcAddress(hOpenGL, "glVertexPointer");
  711.         qglViewport = (void (APIENTRY *)(GLint, GLint, GLsizei, GLsizei))GetProcAddress(hOpenGL, "glViewport");

  712.         qwglGetProcAddress = (PROC (WINAPI *)(LPCSTR))GetProcAddress(hOpenGL, "wglGetProcAddress");

  713.         QGL_InitExtension();
  714.     }
  715. }

  716. void QGL_InitExtension(void)
  717. {
  718.     const char *version = (const char *)qglGetString(GL_VERSION);
  719.     const char *extensions = (const char *)qglGetString(GL_EXTENSIONS);

  720.     if (version[0] > '1' && version[2] > '3')
  721.     {
  722.         qglActiveTexture = (void (APIENTRY *)(GLenum))qwglGetProcAddress("glActiveTexture");
  723.         qglSampleCoverage = (void (APIENTRY *)(GLclampf, GLboolean))qwglGetProcAddress("glSampleCoverage");
  724.         qglCompressedTexImage3D = (void (APIENTRY *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexImage3D");
  725.         qglCompressedTexImage2D = (void (APIENTRY *)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLint, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexImage2D");
  726.         qglCompressedTexImage1D = (void (APIENTRY *)(GLenum, GLint, GLenum, GLsizei, GLint, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexImage1D");
  727.         qglCompressedTexSubImage3D = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexSubImage3D");
  728.         qglCompressedTexSubImage2D = (void (APIENTRY *)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexSubImage2D");
  729.         qglCompressedTexSubImage1D = (void (APIENTRY *)(GLenum, GLint, GLint, GLsizei, GLenum, GLsizei, const GLvoid *))qwglGetProcAddress("glCompressedTexSubImage1D");
  730.         qglGetCompressedTexImage = (void (APIENTRY *)(GLenum, GLint, GLvoid *))qwglGetProcAddress("glGetCompressedTexImage");
  731.     }

  732.     if (strstr(extensions, "GL_ARB_framebuffer_object"))
  733.     {
  734.         qglIsRenderbuffer = (GLboolean (APIENTRY *)(GLuint))qwglGetProcAddress("glIsRenderbuffer");
  735.         qglBindRenderbuffer = (void (APIENTRY *)(GLenum, GLuint))qwglGetProcAddress("glBindRenderbuffer");
  736.         qglDeleteRenderbuffers = (void (APIENTRY *)(GLsizei, const GLuint *))qwglGetProcAddress("glDeleteRenderbuffers");
  737.         qglGenRenderbuffers = (void (APIENTRY *)(GLsizei, GLuint *))qwglGetProcAddress("glGenRenderbuffers");
  738.         qglRenderbufferStorage = (void (APIENTRY *)(GLenum, GLenum, GLsizei, GLsizei))qwglGetProcAddress("glRenderbufferStorage");
  739.         qglGetRenderbufferParameteriv = (void (APIENTRY *)(GLenum, GLenum, GLint *))qwglGetProcAddress("glGetRenderbufferParameteriv");
  740.         qglIsFramebuffer = (GLboolean (APIENTRY *)(GLuint))qwglGetProcAddress("glIsFramebuffer");
  741.         qglBindFramebuffer = (void (APIENTRY *)(GLenum, GLuint))qwglGetProcAddress("glBindFramebuffer");
  742.         qglDeleteFramebuffers = (void (APIENTRY *)(GLsizei, const GLuint *))qwglGetProcAddress("glDeleteFramebuffers");
  743.         qglGenFramebuffers = (void (APIENTRY *)(GLsizei, GLuint *))qwglGetProcAddress("glGenFramebuffers");
  744.         qglCheckFramebufferStatus = (GLenum (APIENTRY *)(GLenum))qwglGetProcAddress("glCheckFramebufferStatus");
  745.         qglFramebufferTexture1D = (void (APIENTRY *)(GLenum, GLenum, GLenum, GLuint, GLint))qwglGetProcAddress("glFramebufferTexture1D");
  746.         qglFramebufferTexture2D = (void (APIENTRY *)(GLenum, GLenum, GLenum, GLuint, GLint))qwglGetProcAddress("glFramebufferTexture2D");
  747.         qglFramebufferTexture3D = (void (APIENTRY *)(GLenum, GLenum, GLenum, GLuint, GLint, GLint))qwglGetProcAddress("glFramebufferTexture3D");
  748.         qglFramebufferRenderbuffer = (void (APIENTRY *)(GLenum, GLenum, GLenum, GLuint))qwglGetProcAddress("glFramebufferRenderbuffer");
  749.         qglGetFramebufferAttachmentParameteriv = (void (APIENTRY *)(GLenum, GLenum, GLenum, GLint *))qwglGetProcAddress("glGetFramebufferAttachmentParameteriv");
  750.         qglGenerateMipmap = (void (APIENTRY *)(GLenum))qwglGetProcAddress("glGenerateMipmap");
  751.         qglBlitFramebuffer = (void (APIENTRY *)(GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum))qwglGetProcAddress("glBlitFramebuffer");
  752.         qglRenderbufferStorageMultisample = (void (APIENTRY *)(GLenum, GLsizei, GLenum, GLsizei, GLsizei))qwglGetProcAddress("glRenderbufferStorageMultisample");
  753.         qglFramebufferTextureLayer = (void (APIENTRY *)(GLenum, GLenum, GLuint, GLint, GLint))qwglGetProcAddress("glFramebufferTextureLayer");
  754.     }
  755. }
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.  

GMT+8, 2026-10-26 05:52 , Processed in 0.259063 second(s), 21 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表