Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

482 lines
33 KiB

  1. /*++ BUILD Version: 0001
  2. Copyright (c) 1985-94, Microsoft Corporation
  3. Module Name:
  4. gldrv.h
  5. Abstract:
  6. Private entry points, defines and types for Installable OpenGL DDI.
  7. --*/
  8. #ifndef _GLDRV_
  9. #define _GLDRV_
  10. typedef struct _GLDISPATCHTABLE {
  11. void (APIENTRY *glNewList )( GLuint list, GLenum mode );
  12. void (APIENTRY *glEndList )( void );
  13. void (APIENTRY *glCallList )( GLuint list );
  14. void (APIENTRY *glCallLists )( GLsizei n, GLenum type, const GLvoid *lists );
  15. void (APIENTRY *glDeleteLists )( GLuint list, GLsizei range );
  16. GLuint (APIENTRY *glGenLists )( GLsizei range );
  17. void (APIENTRY *glListBase )( GLuint base );
  18. void (APIENTRY *glBegin )( GLenum mode );
  19. void (APIENTRY *glBitmap )( GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap );
  20. void (APIENTRY *glColor3b )( GLbyte red, GLbyte green, GLbyte blue );
  21. void (APIENTRY *glColor3bv )( const GLbyte *v );
  22. void (APIENTRY *glColor3d )( GLdouble red, GLdouble green, GLdouble blue );
  23. void (APIENTRY *glColor3dv )( const GLdouble *v );
  24. void (APIENTRY *glColor3f )( GLfloat red, GLfloat green, GLfloat blue );
  25. void (APIENTRY *glColor3fv )( const GLfloat *v );
  26. void (APIENTRY *glColor3i )( GLint red, GLint green, GLint blue );
  27. void (APIENTRY *glColor3iv )( const GLint *v );
  28. void (APIENTRY *glColor3s )( GLshort red, GLshort green, GLshort blue );
  29. void (APIENTRY *glColor3sv )( const GLshort *v );
  30. void (APIENTRY *glColor3ub )( GLubyte red, GLubyte green, GLubyte blue );
  31. void (APIENTRY *glColor3ubv )( const GLubyte *v );
  32. void (APIENTRY *glColor3ui )( GLuint red, GLuint green, GLuint blue );
  33. void (APIENTRY *glColor3uiv )( const GLuint *v );
  34. void (APIENTRY *glColor3us )( GLushort red, GLushort green, GLushort blue );
  35. void (APIENTRY *glColor3usv )( const GLushort *v );
  36. void (APIENTRY *glColor4b )( GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha );
  37. void (APIENTRY *glColor4bv )( const GLbyte *v );
  38. void (APIENTRY *glColor4d )( GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha );
  39. void (APIENTRY *glColor4dv )( const GLdouble *v );
  40. void (APIENTRY *glColor4f )( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
  41. void (APIENTRY *glColor4fv )( const GLfloat *v );
  42. void (APIENTRY *glColor4i )( GLint red, GLint green, GLint blue, GLint alpha );
  43. void (APIENTRY *glColor4iv )( const GLint *v );
  44. void (APIENTRY *glColor4s )( GLshort red, GLshort green, GLshort blue, GLshort alpha );
  45. void (APIENTRY *glColor4sv )( const GLshort *v );
  46. void (APIENTRY *glColor4ub )( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha );
  47. void (APIENTRY *glColor4ubv )( const GLubyte *v );
  48. void (APIENTRY *glColor4ui )( GLuint red, GLuint green, GLuint blue, GLuint alpha );
  49. void (APIENTRY *glColor4uiv )( const GLuint *v );
  50. void (APIENTRY *glColor4us )( GLushort red, GLushort green, GLushort blue, GLushort alpha );
  51. void (APIENTRY *glColor4usv )( const GLushort *v );
  52. void (APIENTRY *glEdgeFlag )( GLboolean flag );
  53. void (APIENTRY *glEdgeFlagv )( const GLboolean *flag );
  54. void (APIENTRY *glEnd )( void );
  55. void (APIENTRY *glIndexd )( GLdouble c );
  56. void (APIENTRY *glIndexdv )( const GLdouble *c );
  57. void (APIENTRY *glIndexf )( GLfloat c );
  58. void (APIENTRY *glIndexfv )( const GLfloat *c );
  59. void (APIENTRY *glIndexi )( GLint c );
  60. void (APIENTRY *glIndexiv )( const GLint *c );
  61. void (APIENTRY *glIndexs )( GLshort c );
  62. void (APIENTRY *glIndexsv )( const GLshort *c );
  63. void (APIENTRY *glNormal3b )( GLbyte nx, GLbyte ny, GLbyte nz );
  64. void (APIENTRY *glNormal3bv )( const GLbyte *v );
  65. void (APIENTRY *glNormal3d )( GLdouble nx, GLdouble ny, GLdouble nz );
  66. void (APIENTRY *glNormal3dv )( const GLdouble *v );
  67. void (APIENTRY *glNormal3f )( GLfloat nx, GLfloat ny, GLfloat nz );
  68. void (APIENTRY *glNormal3fv )( const GLfloat *v );
  69. void (APIENTRY *glNormal3i )( GLint nx, GLint ny, GLint nz );
  70. void (APIENTRY *glNormal3iv )( const GLint *v );
  71. void (APIENTRY *glNormal3s )( GLshort nx, GLshort ny, GLshort nz );
  72. void (APIENTRY *glNormal3sv )( const GLshort *v );
  73. void (APIENTRY *glRasterPos2d )( GLdouble x, GLdouble y );
  74. void (APIENTRY *glRasterPos2dv )( const GLdouble *v );
  75. void (APIENTRY *glRasterPos2f )( GLfloat x, GLfloat y );
  76. void (APIENTRY *glRasterPos2fv )( const GLfloat *v );
  77. void (APIENTRY *glRasterPos2i )( GLint x, GLint y );
  78. void (APIENTRY *glRasterPos2iv )( const GLint *v );
  79. void (APIENTRY *glRasterPos2s )( GLshort x, GLshort y );
  80. void (APIENTRY *glRasterPos2sv )( const GLshort *v );
  81. void (APIENTRY *glRasterPos3d )( GLdouble x, GLdouble y, GLdouble z );
  82. void (APIENTRY *glRasterPos3dv )( const GLdouble *v );
  83. void (APIENTRY *glRasterPos3f )( GLfloat x, GLfloat y, GLfloat z );
  84. void (APIENTRY *glRasterPos3fv )( const GLfloat *v );
  85. void (APIENTRY *glRasterPos3i )( GLint x, GLint y, GLint z );
  86. void (APIENTRY *glRasterPos3iv )( const GLint *v );
  87. void (APIENTRY *glRasterPos3s )( GLshort x, GLshort y, GLshort z );
  88. void (APIENTRY *glRasterPos3sv )( const GLshort *v );
  89. void (APIENTRY *glRasterPos4d )( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  90. void (APIENTRY *glRasterPos4dv )( const GLdouble *v );
  91. void (APIENTRY *glRasterPos4f )( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  92. void (APIENTRY *glRasterPos4fv )( const GLfloat *v );
  93. void (APIENTRY *glRasterPos4i )( GLint x, GLint y, GLint z, GLint w );
  94. void (APIENTRY *glRasterPos4iv )( const GLint *v );
  95. void (APIENTRY *glRasterPos4s )( GLshort x, GLshort y, GLshort z, GLshort w );
  96. void (APIENTRY *glRasterPos4sv )( const GLshort *v );
  97. void (APIENTRY *glRectd )( GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2 );
  98. void (APIENTRY *glRectdv )( const GLdouble *v1, const GLdouble *v2 );
  99. void (APIENTRY *glRectf )( GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2 );
  100. void (APIENTRY *glRectfv )( const GLfloat *v1, const GLfloat *v2 );
  101. void (APIENTRY *glRecti )( GLint x1, GLint y1, GLint x2, GLint y2 );
  102. void (APIENTRY *glRectiv )( const GLint *v1, const GLint *v2 );
  103. void (APIENTRY *glRects )( GLshort x1, GLshort y1, GLshort x2, GLshort y2 );
  104. void (APIENTRY *glRectsv )( const GLshort *v1, const GLshort *v2 );
  105. void (APIENTRY *glTexCoord1d )( GLdouble s );
  106. void (APIENTRY *glTexCoord1dv )( const GLdouble *v );
  107. void (APIENTRY *glTexCoord1f )( GLfloat s );
  108. void (APIENTRY *glTexCoord1fv )( const GLfloat *v );
  109. void (APIENTRY *glTexCoord1i )( GLint s );
  110. void (APIENTRY *glTexCoord1iv )( const GLint *v );
  111. void (APIENTRY *glTexCoord1s )( GLshort s );
  112. void (APIENTRY *glTexCoord1sv )( const GLshort *v );
  113. void (APIENTRY *glTexCoord2d )( GLdouble s, GLdouble t );
  114. void (APIENTRY *glTexCoord2dv )( const GLdouble *v );
  115. void (APIENTRY *glTexCoord2f )( GLfloat s, GLfloat t );
  116. void (APIENTRY *glTexCoord2fv )( const GLfloat *v );
  117. void (APIENTRY *glTexCoord2i )( GLint s, GLint t );
  118. void (APIENTRY *glTexCoord2iv )( const GLint *v );
  119. void (APIENTRY *glTexCoord2s )( GLshort s, GLshort t );
  120. void (APIENTRY *glTexCoord2sv )( const GLshort *v );
  121. void (APIENTRY *glTexCoord3d )( GLdouble s, GLdouble t, GLdouble r );
  122. void (APIENTRY *glTexCoord3dv )( const GLdouble *v );
  123. void (APIENTRY *glTexCoord3f )( GLfloat s, GLfloat t, GLfloat r );
  124. void (APIENTRY *glTexCoord3fv )( const GLfloat *v );
  125. void (APIENTRY *glTexCoord3i )( GLint s, GLint t, GLint r );
  126. void (APIENTRY *glTexCoord3iv )( const GLint *v );
  127. void (APIENTRY *glTexCoord3s )( GLshort s, GLshort t, GLshort r );
  128. void (APIENTRY *glTexCoord3sv )( const GLshort *v );
  129. void (APIENTRY *glTexCoord4d )( GLdouble s, GLdouble t, GLdouble r, GLdouble q );
  130. void (APIENTRY *glTexCoord4dv )( const GLdouble *v );
  131. void (APIENTRY *glTexCoord4f )( GLfloat s, GLfloat t, GLfloat r, GLfloat q );
  132. void (APIENTRY *glTexCoord4fv )( const GLfloat *v );
  133. void (APIENTRY *glTexCoord4i )( GLint s, GLint t, GLint r, GLint q );
  134. void (APIENTRY *glTexCoord4iv )( const GLint *v );
  135. void (APIENTRY *glTexCoord4s )( GLshort s, GLshort t, GLshort r, GLshort q );
  136. void (APIENTRY *glTexCoord4sv )( const GLshort *v );
  137. void (APIENTRY *glVertex2d )( GLdouble x, GLdouble y );
  138. void (APIENTRY *glVertex2dv )( const GLdouble *v );
  139. void (APIENTRY *glVertex2f )( GLfloat x, GLfloat y );
  140. void (APIENTRY *glVertex2fv )( const GLfloat *v );
  141. void (APIENTRY *glVertex2i )( GLint x, GLint y );
  142. void (APIENTRY *glVertex2iv )( const GLint *v );
  143. void (APIENTRY *glVertex2s )( GLshort x, GLshort y );
  144. void (APIENTRY *glVertex2sv )( const GLshort *v );
  145. void (APIENTRY *glVertex3d )( GLdouble x, GLdouble y, GLdouble z );
  146. void (APIENTRY *glVertex3dv )( const GLdouble *v );
  147. void (APIENTRY *glVertex3f )( GLfloat x, GLfloat y, GLfloat z );
  148. void (APIENTRY *glVertex3fv )( const GLfloat *v );
  149. void (APIENTRY *glVertex3i )( GLint x, GLint y, GLint z );
  150. void (APIENTRY *glVertex3iv )( const GLint *v );
  151. void (APIENTRY *glVertex3s )( GLshort x, GLshort y, GLshort z );
  152. void (APIENTRY *glVertex3sv )( const GLshort *v );
  153. void (APIENTRY *glVertex4d )( GLdouble x, GLdouble y, GLdouble z, GLdouble w );
  154. void (APIENTRY *glVertex4dv )( const GLdouble *v );
  155. void (APIENTRY *glVertex4f )( GLfloat x, GLfloat y, GLfloat z, GLfloat w );
  156. void (APIENTRY *glVertex4fv )( const GLfloat *v );
  157. void (APIENTRY *glVertex4i )( GLint x, GLint y, GLint z, GLint w );
  158. void (APIENTRY *glVertex4iv )( const GLint *v );
  159. void (APIENTRY *glVertex4s )( GLshort x, GLshort y, GLshort z, GLshort w );
  160. void (APIENTRY *glVertex4sv )( const GLshort *v );
  161. void (APIENTRY *glClipPlane )( GLenum plane, const GLdouble *equation );
  162. void (APIENTRY *glColorMaterial )( GLenum face, GLenum mode );
  163. void (APIENTRY *glCullFace )( GLenum mode );
  164. void (APIENTRY *glFogf )( GLenum pname, GLfloat param );
  165. void (APIENTRY *glFogfv )( GLenum pname, const GLfloat *params );
  166. void (APIENTRY *glFogi )( GLenum pname, GLint param );
  167. void (APIENTRY *glFogiv )( GLenum pname, const GLint *params );
  168. void (APIENTRY *glFrontFace )( GLenum mode );
  169. void (APIENTRY *glHint )( GLenum target, GLenum mode );
  170. void (APIENTRY *glLightf )( GLenum light, GLenum pname, GLfloat param );
  171. void (APIENTRY *glLightfv )( GLenum light, GLenum pname, const GLfloat *params );
  172. void (APIENTRY *glLighti )( GLenum light, GLenum pname, GLint param );
  173. void (APIENTRY *glLightiv )( GLenum light, GLenum pname, const GLint *params );
  174. void (APIENTRY *glLightModelf )( GLenum pname, GLfloat param );
  175. void (APIENTRY *glLightModelfv )( GLenum pname, const GLfloat *params );
  176. void (APIENTRY *glLightModeli )( GLenum pname, GLint param );
  177. void (APIENTRY *glLightModeliv )( GLenum pname, const GLint *params );
  178. void (APIENTRY *glLineStipple )( GLint factor, GLushort pattern );
  179. void (APIENTRY *glLineWidth )( GLfloat width );
  180. void (APIENTRY *glMaterialf )( GLenum face, GLenum pname, GLfloat param );
  181. void (APIENTRY *glMaterialfv )( GLenum face, GLenum pname, const GLfloat *params );
  182. void (APIENTRY *glMateriali )( GLenum face, GLenum pname, GLint param );
  183. void (APIENTRY *glMaterialiv )( GLenum face, GLenum pname, const GLint *params );
  184. void (APIENTRY *glPointSize )( GLfloat size );
  185. void (APIENTRY *glPolygonMode )( GLenum face, GLenum mode );
  186. void (APIENTRY *glPolygonStipple )( const GLubyte *mask );
  187. void (APIENTRY *glScissor )( GLint x, GLint y, GLsizei width, GLsizei height );
  188. void (APIENTRY *glShadeModel )( GLenum mode );
  189. void (APIENTRY *glTexParameterf )( GLenum target, GLenum pname, GLfloat param );
  190. void (APIENTRY *glTexParameterfv )( GLenum target, GLenum pname, const GLfloat *params );
  191. void (APIENTRY *glTexParameteri )( GLenum target, GLenum pname, GLint param );
  192. void (APIENTRY *glTexParameteriv )( GLenum target, GLenum pname, const GLint *params );
  193. void (APIENTRY *glTexImage1D )( GLenum target, GLint level, GLint components, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
  194. void (APIENTRY *glTexImage2D )( GLenum target, GLint level, GLint components, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels );
  195. void (APIENTRY *glTexEnvf )( GLenum target, GLenum pname, GLfloat param );
  196. void (APIENTRY *glTexEnvfv )( GLenum target, GLenum pname, const GLfloat *params );
  197. void (APIENTRY *glTexEnvi )( GLenum target, GLenum pname, GLint param );
  198. void (APIENTRY *glTexEnviv )( GLenum target, GLenum pname, const GLint *params );
  199. void (APIENTRY *glTexGend )( GLenum coord, GLenum pname, GLdouble param );
  200. void (APIENTRY *glTexGendv )( GLenum coord, GLenum pname, const GLdouble *params );
  201. void (APIENTRY *glTexGenf )( GLenum coord, GLenum pname, GLfloat param );
  202. void (APIENTRY *glTexGenfv )( GLenum coord, GLenum pname, const GLfloat *params );
  203. void (APIENTRY *glTexGeni )( GLenum coord, GLenum pname, GLint param );
  204. void (APIENTRY *glTexGeniv )( GLenum coord, GLenum pname, const GLint *params );
  205. void (APIENTRY *glFeedbackBuffer )( GLsizei size, GLenum type, GLfloat *buffer );
  206. void (APIENTRY *glSelectBuffer )( GLsizei size, GLuint *buffer );
  207. GLint (APIENTRY *glRenderMode )( GLenum mode );
  208. void (APIENTRY *glInitNames )( void );
  209. void (APIENTRY *glLoadName )( GLuint name );
  210. void (APIENTRY *glPassThrough )( GLfloat token );
  211. void (APIENTRY *glPopName )( void );
  212. void (APIENTRY *glPushName )( GLuint name );
  213. void (APIENTRY *glDrawBuffer )( GLenum mode );
  214. void (APIENTRY *glClear )( GLbitfield mask );
  215. void (APIENTRY *glClearAccum )( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha );
  216. void (APIENTRY *glClearIndex )( GLfloat c );
  217. void (APIENTRY *glClearColor )( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha );
  218. void (APIENTRY *glClearStencil )( GLint s );
  219. void (APIENTRY *glClearDepth )( GLclampd depth );
  220. void (APIENTRY *glStencilMask )( GLuint mask );
  221. void (APIENTRY *glColorMask )( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha );
  222. void (APIENTRY *glDepthMask )( GLboolean flag );
  223. void (APIENTRY *glIndexMask )( GLuint mask );
  224. void (APIENTRY *glAccum )( GLenum op, GLfloat value );
  225. void (APIENTRY *glDisable )( GLenum cap );
  226. void (APIENTRY *glEnable )( GLenum cap );
  227. void (APIENTRY *glFinish )( void );
  228. void (APIENTRY *glFlush )( void );
  229. void (APIENTRY *glPopAttrib )( void );
  230. void (APIENTRY *glPushAttrib )( GLbitfield mask );
  231. void (APIENTRY *glMap1d )( GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points );
  232. void (APIENTRY *glMap1f )( GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points );
  233. void (APIENTRY *glMap2d )( GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points );
  234. void (APIENTRY *glMap2f )( GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points );
  235. void (APIENTRY *glMapGrid1d )( GLint un, GLdouble u1, GLdouble u2 );
  236. void (APIENTRY *glMapGrid1f )( GLint un, GLfloat u1, GLfloat u2 );
  237. void (APIENTRY *glMapGrid2d )( GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2 );
  238. void (APIENTRY *glMapGrid2f )( GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2 );
  239. void (APIENTRY *glEvalCoord1d )( GLdouble u );
  240. void (APIENTRY *glEvalCoord1dv )( const GLdouble *u );
  241. void (APIENTRY *glEvalCoord1f )( GLfloat u );
  242. void (APIENTRY *glEvalCoord1fv )( const GLfloat *u );
  243. void (APIENTRY *glEvalCoord2d )( GLdouble u, GLdouble v );
  244. void (APIENTRY *glEvalCoord2dv )( const GLdouble *u );
  245. void (APIENTRY *glEvalCoord2f )( GLfloat u, GLfloat v );
  246. void (APIENTRY *glEvalCoord2fv )( const GLfloat *u );
  247. void (APIENTRY *glEvalMesh1 )( GLenum mode, GLint i1, GLint i2 );
  248. void (APIENTRY *glEvalPoint1 )( GLint i );
  249. void (APIENTRY *glEvalMesh2 )( GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2 );
  250. void (APIENTRY *glEvalPoint2 )( GLint i, GLint j );
  251. void (APIENTRY *glAlphaFunc )( GLenum func, GLclampf ref );
  252. void (APIENTRY *glBlendFunc )( GLenum sfactor, GLenum dfactor );
  253. void (APIENTRY *glLogicOp )( GLenum opcode );
  254. void (APIENTRY *glStencilFunc )( GLenum func, GLint ref, GLuint mask );
  255. void (APIENTRY *glStencilOp )( GLenum fail, GLenum zfail, GLenum zpass );
  256. void (APIENTRY *glDepthFunc )( GLenum func );
  257. void (APIENTRY *glPixelZoom )( GLfloat xfactor, GLfloat yfactor );
  258. void (APIENTRY *glPixelTransferf )( GLenum pname, GLfloat param );
  259. void (APIENTRY *glPixelTransferi )( GLenum pname, GLint param );
  260. void (APIENTRY *glPixelStoref )( GLenum pname, GLfloat param );
  261. void (APIENTRY *glPixelStorei )( GLenum pname, GLint param );
  262. void (APIENTRY *glPixelMapfv )( GLenum map, GLint mapsize, const GLfloat *values );
  263. void (APIENTRY *glPixelMapuiv )( GLenum map, GLint mapsize, const GLuint *values );
  264. void (APIENTRY *glPixelMapusv )( GLenum map, GLint mapsize, const GLushort *values );
  265. void (APIENTRY *glReadBuffer )( GLenum mode );
  266. void (APIENTRY *glCopyPixels )( GLint x, GLint y, GLsizei width, GLsizei height, GLenum type );
  267. void (APIENTRY *glReadPixels )( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels );
  268. void (APIENTRY *glDrawPixels )( GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels );
  269. void (APIENTRY *glGetBooleanv )( GLenum pname, GLboolean *params );
  270. void (APIENTRY *glGetClipPlane )( GLenum plane, GLdouble *equation );
  271. void (APIENTRY *glGetDoublev )( GLenum pname, GLdouble *params );
  272. GLenum (APIENTRY *glGetError )( void );
  273. void (APIENTRY *glGetFloatv )( GLenum pname, GLfloat *params );
  274. void (APIENTRY *glGetIntegerv )( GLenum pname, GLint *params );
  275. void (APIENTRY *glGetLightfv )( GLenum light, GLenum pname, GLfloat *params );
  276. void (APIENTRY *glGetLightiv )( GLenum light, GLenum pname, GLint *params );
  277. void (APIENTRY *glGetMapdv )( GLenum target, GLenum query, GLdouble *v );
  278. void (APIENTRY *glGetMapfv )( GLenum target, GLenum query, GLfloat *v );
  279. void (APIENTRY *glGetMapiv )( GLenum target, GLenum query, GLint *v );
  280. void (APIENTRY *glGetMaterialfv )( GLenum face, GLenum pname, GLfloat *params );
  281. void (APIENTRY *glGetMaterialiv )( GLenum face, GLenum pname, GLint *params );
  282. void (APIENTRY *glGetPixelMapfv )( GLenum map, GLfloat *values );
  283. void (APIENTRY *glGetPixelMapuiv )( GLenum map, GLuint *values );
  284. void (APIENTRY *glGetPixelMapusv )( GLenum map, GLushort *values );
  285. void (APIENTRY *glGetPolygonStipple )( GLubyte *mask );
  286. const GLubyte * (APIENTRY *glGetString )( GLenum name );
  287. void (APIENTRY *glGetTexEnvfv )( GLenum target, GLenum pname, GLfloat *params );
  288. void (APIENTRY *glGetTexEnviv )( GLenum target, GLenum pname, GLint *params );
  289. void (APIENTRY *glGetTexGendv )( GLenum coord, GLenum pname, GLdouble *params );
  290. void (APIENTRY *glGetTexGenfv )( GLenum coord, GLenum pname, GLfloat *params );
  291. void (APIENTRY *glGetTexGeniv )( GLenum coord, GLenum pname, GLint *params );
  292. void (APIENTRY *glGetTexImage )( GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels );
  293. void (APIENTRY *glGetTexParameterfv )( GLenum target, GLenum pname, GLfloat *params );
  294. void (APIENTRY *glGetTexParameteriv )( GLenum target, GLenum pname, GLint *params );
  295. void (APIENTRY *glGetTexLevelParameterfv )( GLenum target, GLint level, GLenum pname, GLfloat *params );
  296. void (APIENTRY *glGetTexLevelParameteriv )( GLenum target, GLint level, GLenum pname, GLint *params );
  297. GLboolean (APIENTRY *glIsEnabled )( GLenum cap );
  298. GLboolean (APIENTRY *glIsList )( GLuint list );
  299. void (APIENTRY *glDepthRange )( GLclampd zNear, GLclampd zFar );
  300. void (APIENTRY *glFrustum )( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar );
  301. void (APIENTRY *glLoadIdentity )( void );
  302. void (APIENTRY *glLoadMatrixf )( const GLfloat *m );
  303. void (APIENTRY *glLoadMatrixd )( const GLdouble *m );
  304. void (APIENTRY *glMatrixMode )( GLenum mode );
  305. void (APIENTRY *glMultMatrixf )( const GLfloat *m );
  306. void (APIENTRY *glMultMatrixd )( const GLdouble *m );
  307. void (APIENTRY *glOrtho )( GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar );
  308. void (APIENTRY *glPopMatrix )( void );
  309. void (APIENTRY *glPushMatrix )( void );
  310. void (APIENTRY *glRotated )( GLdouble angle, GLdouble x, GLdouble y, GLdouble z );
  311. void (APIENTRY *glRotatef )( GLfloat angle, GLfloat x, GLfloat y, GLfloat z );
  312. void (APIENTRY *glScaled )( GLdouble x, GLdouble y, GLdouble z );
  313. void (APIENTRY *glScalef )( GLfloat x, GLfloat y, GLfloat z );
  314. void (APIENTRY *glTranslated )( GLdouble x, GLdouble y, GLdouble z );
  315. void (APIENTRY *glTranslatef )( GLfloat x, GLfloat y, GLfloat z );
  316. void (APIENTRY *glViewport )( GLint x, GLint y, GLsizei width, GLsizei height );
  317. // OpenGL version 1.0 entries end here
  318. // OpenGL version 1.1 entries begin here
  319. void (APIENTRY *glArrayElement )(GLint i);
  320. void (APIENTRY *glBindTexture )(GLenum target, GLuint texture);
  321. void (APIENTRY *glColorPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  322. void (APIENTRY *glDisableClientState )(GLenum array);
  323. void (APIENTRY *glDrawArrays )(GLenum mode, GLint first, GLsizei count);
  324. void (APIENTRY *glDrawElements )(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices);
  325. void (APIENTRY *glEdgeFlagPointer )(GLsizei stride, const GLvoid *pointer);
  326. void (APIENTRY *glEnableClientState )(GLenum array);
  327. void (APIENTRY *glIndexPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
  328. void (APIENTRY *glIndexub )(GLubyte c);
  329. void (APIENTRY *glIndexubv )(const GLubyte *c);
  330. void (APIENTRY *glInterleavedArrays )(GLenum format, GLsizei stride, const GLvoid *pointer);
  331. void (APIENTRY *glNormalPointer )(GLenum type, GLsizei stride, const GLvoid *pointer);
  332. void (APIENTRY *glPolygonOffset )(GLfloat factor, GLfloat units);
  333. void (APIENTRY *glTexCoordPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  334. void (APIENTRY *glVertexPointer )(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
  335. GLboolean (APIENTRY *glAreTexturesResident )(GLsizei n, const GLuint *textures, GLboolean *residences);
  336. void (APIENTRY *glCopyTexImage1D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border);
  337. void (APIENTRY *glCopyTexImage2D )(GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
  338. void (APIENTRY *glCopyTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
  339. void (APIENTRY *glCopyTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
  340. void (APIENTRY *glDeleteTextures )(GLsizei n, const GLuint *textures);
  341. void (APIENTRY *glGenTextures )(GLsizei n, GLuint *textures);
  342. void (APIENTRY *glGetPointerv )(GLenum pname, GLvoid* *params);
  343. GLboolean (APIENTRY *glIsTexture )(GLuint texture);
  344. void (APIENTRY *glPrioritizeTextures )(GLsizei n, const GLuint *textures, const GLclampf *priorities);
  345. void (APIENTRY *glTexSubImage1D )(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
  346. void (APIENTRY *glTexSubImage2D )(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
  347. void (APIENTRY *glPopClientAttrib )(void);
  348. void (APIENTRY *glPushClientAttrib )(GLbitfield mask);
  349. } GLDISPATCHTABLE, *PGLDISPATCHTABLE;
  350. // OpenGL Client/Driver Procedure Table.
  351. typedef struct _GLCLTPROCTABLE {
  352. int cEntries; // Number of function entries in table
  353. GLDISPATCHTABLE glDispatchTable; // OpenGL function dispatch table
  354. } GLCLTPROCTABLE, *PGLCLTPROCTABLE;
  355. // Number of entries expected for various versions of OpenGL
  356. #define OPENGL_VERSION_100_ENTRIES 306
  357. #define OPENGL_VERSION_110_ENTRIES 336
  358. // Driver GLRC handle.
  359. typedef ULONG DHGLRC;
  360. // SetProcTable function prototype for DrvSetContext.
  361. typedef VOID (APIENTRY *PFN_SETPROCTABLE)(PGLCLTPROCTABLE);
  362. // DrvSetCallbackProcs prototypes
  363. typedef VOID (APIENTRY *PFN_SETCURRENTVALUE)(VOID *pv);
  364. typedef VOID *(APIENTRY *PFN_GETCURRENTVALUE)(VOID);
  365. typedef DHGLRC (APIENTRY *PFN_GETDHGLRC)(HGLRC hrc);
  366. // Driver context function prototypes.
  367. BOOL APIENTRY DrvCopyContext(DHGLRC, DHGLRC, UINT);
  368. DHGLRC APIENTRY DrvCreateContext(HDC);
  369. DHGLRC APIENTRY DrvCreateLayerContext(HDC, int);
  370. BOOL APIENTRY DrvDeleteContext(DHGLRC);
  371. PGLCLTPROCTABLE APIENTRY DrvSetContext(HDC,DHGLRC,PFN_SETPROCTABLE);
  372. BOOL APIENTRY DrvReleaseContext(DHGLRC);
  373. BOOL APIENTRY DrvValidateVersion(ULONG);
  374. BOOL APIENTRY DrvShareLists(DHGLRC, DHGLRC);
  375. PROC APIENTRY DrvGetProcAddress(LPCSTR);
  376. VOID APIENTRY DrvSetCallbackProcs(INT, PROC *);
  377. BOOL APIENTRY DrvDescribeLayerPlane(HDC, INT, INT, UINT,
  378. LPLAYERPLANEDESCRIPTOR);
  379. INT APIENTRY DrvSetLayerPaletteEntries(HDC, INT, INT, INT,
  380. CONST COLORREF *);
  381. INT APIENTRY DrvGetLayerPaletteEntries(HDC, INT, INT, INT,
  382. COLORREF *);
  383. BOOL APIENTRY DrvRealizeLayerPalette(HDC, INT, BOOL);
  384. BOOL APIENTRY DrvSwapLayerBuffers(HDC, UINT);
  385. #if WINVER >= 0x500
  386. typedef struct IDirectDrawSurface *LPDIRECTDRAWSURFACE;
  387. typedef struct _DDSURFACEDESC *LPDDSURFACEDESC;
  388. DHGLRC APIENTRY DrvCreateDirectDrawContext(HDC, LPDIRECTDRAWSURFACE,
  389. int);
  390. int APIENTRY DrvEnumTextureFormats(int, LPDDSURFACEDESC);
  391. BOOL APIENTRY DrvBindDirectDrawTexture(LPDIRECTDRAWSURFACE);
  392. DWORD APIENTRY DrvSwapMultipleBuffers(UINT cBuffers,
  393. CONST WGLSWAP *pgswap);
  394. #endif // WINVER >= 0x500
  395. // Input structure for OPENGL_CMD ExtEscape.
  396. typedef struct _WNDOBJ WNDOBJ;
  397. typedef struct _XLATEOBJ XLATEOBJ;
  398. typedef struct _OPENGLCMD
  399. {
  400. ULONG ulSubEsc;
  401. FLONG fl;
  402. WNDOBJ *pwo;
  403. XLATEOBJ *pxo;
  404. } OPENGLCMD, *POPENGLCMD;
  405. #if WINVER >= 0x500
  406. #define OPENGLCMD_MAXMULTI WGL_SWAPMULTIPLE_MAX
  407. typedef struct _OPENGLCMDMULTI
  408. {
  409. ULONG ulSubEsc;
  410. FLONG fl;
  411. ULONG cMulti;
  412. XLATEOBJ *pxo;
  413. } OPENGLCMDMULTI, *POPENGLCMDMULTI;
  414. #endif // WINVER >= 0x500
  415. // Flags for OPENGL_CMD ExtEscape.
  416. #define OGLCMD_NEEDWNDOBJ 0x01
  417. #define OGLCMD_NEEDXLATEOBJ 0x02
  418. #if WINVER >= 0x500
  419. #define OGLCMD_MULTIWNDOBJ 0x04
  420. #endif // WINVER >= 0x500
  421. // OPENGL_GETINFO ExtEscape sub-escape numbers. They are defined by Microsoft.
  422. #define OPENGL_GETINFO_DRVNAME 0
  423. // Input structure for OPENGL_GETINFO ExtEscape.
  424. typedef struct _OPENGLGETINFO
  425. {
  426. ULONG ulSubEsc;
  427. } OPENGLGETINFO, *POPENGLGETINFO;
  428. // Input structure for OPENGL_GETINFO_DRVNAME ExtEscape.
  429. typedef struct _GLDRVNAME
  430. {
  431. OPENGLGETINFO oglget;
  432. } GLDRVNAME, *PGLDRVNAME;
  433. // Output structure for OPENGL_GETINFO_DRVNAME ExtEscape.
  434. typedef struct _GLDRVNAMERET
  435. {
  436. ULONG ulVersion; // must be 1 for this version
  437. ULONG ulDriverVersion; // driver specific version number
  438. WCHAR awch[MAX_PATH+1];
  439. } GLDRVNAMERET, *PGLDRVNAMERET;
  440. #endif /* _GLDRV_ */