* Sync up to trunk head (r64716).
[reactos.git] / dll / opengl / opengl32 / icd.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: lib/opengl32/icd.h
5 * PURPOSE: OpenGL32 lib, ICD specific definitions
6 */
7
8 #pragma once
9
10 #define OPENGL_VERSION_110_ENTRIES 336
11
12 struct __GLdispatchTableRec
13 {
14 void (GLAPIENTRY * NewList)(GLuint, GLenum);
15 void (GLAPIENTRY * EndList)(void);
16 void (GLAPIENTRY * CallList)(GLuint);
17 void (GLAPIENTRY * CallLists)(GLsizei, GLenum, const GLvoid *);
18 void (GLAPIENTRY * DeleteLists)(GLuint, GLsizei);
19 GLuint (GLAPIENTRY * GenLists)(GLsizei);
20 void (GLAPIENTRY * ListBase)(GLuint);
21 void (GLAPIENTRY * Begin)(GLenum);
22 void (GLAPIENTRY * Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *);
23 void (GLAPIENTRY * Color3b)(GLbyte, GLbyte, GLbyte);
24 void (GLAPIENTRY * Color3bv)(const GLbyte *);
25 void (GLAPIENTRY * Color3d)(GLdouble, GLdouble, GLdouble);
26 void (GLAPIENTRY * Color3dv)(const GLdouble *);
27 void (GLAPIENTRY * Color3f)(GLfloat, GLfloat, GLfloat);
28 void (GLAPIENTRY * Color3fv)(const GLfloat *);
29 void (GLAPIENTRY * Color3i)(GLint, GLint, GLint);
30 void (GLAPIENTRY * Color3iv)(const GLint *);
31 void (GLAPIENTRY * Color3s)(GLshort, GLshort, GLshort);
32 void (GLAPIENTRY * Color3sv)(const GLshort *);
33 void (GLAPIENTRY * Color3ub)(GLubyte, GLubyte, GLubyte);
34 void (GLAPIENTRY * Color3ubv)(const GLubyte *);
35 void (GLAPIENTRY * Color3ui)(GLuint, GLuint, GLuint);
36 void (GLAPIENTRY * Color3uiv)(const GLuint *);
37 void (GLAPIENTRY * Color3us)(GLushort, GLushort, GLushort);
38 void (GLAPIENTRY * Color3usv)(const GLushort *);
39 void (GLAPIENTRY * Color4b)(GLbyte, GLbyte, GLbyte, GLbyte);
40 void (GLAPIENTRY * Color4bv)(const GLbyte *);
41 void (GLAPIENTRY * Color4d)(GLdouble, GLdouble, GLdouble, GLdouble);
42 void (GLAPIENTRY * Color4dv)(const GLdouble *);
43 void (GLAPIENTRY * Color4f)(GLfloat, GLfloat, GLfloat, GLfloat);
44 void (GLAPIENTRY * Color4fv)(const GLfloat *);
45 void (GLAPIENTRY * Color4i)(GLint, GLint, GLint, GLint);
46 void (GLAPIENTRY * Color4iv)(const GLint *);
47 void (GLAPIENTRY * Color4s)(GLshort, GLshort, GLshort, GLshort);
48 void (GLAPIENTRY * Color4sv)(const GLshort *);
49 void (GLAPIENTRY * Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
50 void (GLAPIENTRY * Color4ubv)(const GLubyte *);
51 void (GLAPIENTRY * Color4ui)(GLuint, GLuint, GLuint, GLuint);
52 void (GLAPIENTRY * Color4uiv)(const GLuint *);
53 void (GLAPIENTRY * Color4us)(GLushort, GLushort, GLushort, GLushort);
54 void (GLAPIENTRY * Color4usv)(const GLushort *);
55 void (GLAPIENTRY * EdgeFlag)(GLboolean);
56 void (GLAPIENTRY * EdgeFlagv)(const GLboolean *);
57 void (GLAPIENTRY * End)(void);
58 void (GLAPIENTRY * Indexd)(GLdouble);
59 void (GLAPIENTRY * Indexdv)(const GLdouble *);
60 void (GLAPIENTRY * Indexf)(GLfloat);
61 void (GLAPIENTRY * Indexfv)(const GLfloat *);
62 void (GLAPIENTRY * Indexi)(GLint);
63 void (GLAPIENTRY * Indexiv)(const GLint *);
64 void (GLAPIENTRY * Indexs)(GLshort);
65 void (GLAPIENTRY * Indexsv)(const GLshort *);
66 void (GLAPIENTRY * Normal3b)(GLbyte, GLbyte, GLbyte);
67 void (GLAPIENTRY * Normal3bv)(const GLbyte *);
68 void (GLAPIENTRY * Normal3d)(GLdouble, GLdouble, GLdouble);
69 void (GLAPIENTRY * Normal3dv)(const GLdouble *);
70 void (GLAPIENTRY * Normal3f)(GLfloat, GLfloat, GLfloat);
71 void (GLAPIENTRY * Normal3fv)(const GLfloat *);
72 void (GLAPIENTRY * Normal3i)(GLint, GLint, GLint);
73 void (GLAPIENTRY * Normal3iv)(const GLint *);
74 void (GLAPIENTRY * Normal3s)(GLshort, GLshort, GLshort);
75 void (GLAPIENTRY * Normal3sv)(const GLshort *);
76 void (GLAPIENTRY * RasterPos2d)(GLdouble, GLdouble);
77 void (GLAPIENTRY * RasterPos2dv)(const GLdouble *);
78 void (GLAPIENTRY * RasterPos2f)(GLfloat, GLfloat);
79 void (GLAPIENTRY * RasterPos2fv)(const GLfloat *);
80 void (GLAPIENTRY * RasterPos2i)(GLint, GLint);
81 void (GLAPIENTRY * RasterPos2iv)(const GLint *);
82 void (GLAPIENTRY * RasterPos2s)(GLshort, GLshort);
83 void (GLAPIENTRY * RasterPos2sv)(const GLshort *);
84 void (GLAPIENTRY * RasterPos3d)(GLdouble, GLdouble, GLdouble);
85 void (GLAPIENTRY * RasterPos3dv)(const GLdouble *);
86 void (GLAPIENTRY * RasterPos3f)(GLfloat, GLfloat, GLfloat);
87 void (GLAPIENTRY * RasterPos3fv)(const GLfloat *);
88 void (GLAPIENTRY * RasterPos3i)(GLint, GLint, GLint);
89 void (GLAPIENTRY * RasterPos3iv)(const GLint *);
90 void (GLAPIENTRY * RasterPos3s)(GLshort, GLshort, GLshort);
91 void (GLAPIENTRY * RasterPos3sv)(const GLshort *);
92 void (GLAPIENTRY * RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
93 void (GLAPIENTRY * RasterPos4dv)(const GLdouble *);
94 void (GLAPIENTRY * RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat);
95 void (GLAPIENTRY * RasterPos4fv)(const GLfloat *);
96 void (GLAPIENTRY * RasterPos4i)(GLint, GLint, GLint, GLint);
97 void (GLAPIENTRY * RasterPos4iv)(const GLint *);
98 void (GLAPIENTRY * RasterPos4s)(GLshort, GLshort, GLshort, GLshort);
99 void (GLAPIENTRY * RasterPos4sv)(const GLshort *);
100 void (GLAPIENTRY * Rectd)(GLdouble, GLdouble, GLdouble, GLdouble);
101 void (GLAPIENTRY * Rectdv)(const GLdouble *, const GLdouble *);
102 void (GLAPIENTRY * Rectf)(GLfloat, GLfloat, GLfloat, GLfloat);
103 void (GLAPIENTRY * Rectfv)(const GLfloat *, const GLfloat *);
104 void (GLAPIENTRY * Recti)(GLint, GLint, GLint, GLint);
105 void (GLAPIENTRY * Rectiv)(const GLint *, const GLint *);
106 void (GLAPIENTRY * Rects)(GLshort, GLshort, GLshort, GLshort);
107 void (GLAPIENTRY * Rectsv)(const GLshort *, const GLshort *);
108 void (GLAPIENTRY * TexCoord1d)(GLdouble);
109 void (GLAPIENTRY * TexCoord1dv)(const GLdouble *);
110 void (GLAPIENTRY * TexCoord1f)(GLfloat);
111 void (GLAPIENTRY * TexCoord1fv)(const GLfloat *);
112 void (GLAPIENTRY * TexCoord1i)(GLint);
113 void (GLAPIENTRY * TexCoord1iv)(const GLint *);
114 void (GLAPIENTRY * TexCoord1s)(GLshort);
115 void (GLAPIENTRY * TexCoord1sv)(const GLshort *);
116 void (GLAPIENTRY * TexCoord2d)(GLdouble, GLdouble);
117 void (GLAPIENTRY * TexCoord2dv)(const GLdouble *);
118 void (GLAPIENTRY * TexCoord2f)(GLfloat, GLfloat);
119 void (GLAPIENTRY * TexCoord2fv)(const GLfloat *);
120 void (GLAPIENTRY * TexCoord2i)(GLint, GLint);
121 void (GLAPIENTRY * TexCoord2iv)(const GLint *);
122 void (GLAPIENTRY * TexCoord2s)(GLshort, GLshort);
123 void (GLAPIENTRY * TexCoord2sv)(const GLshort *);
124 void (GLAPIENTRY * TexCoord3d)(GLdouble, GLdouble, GLdouble);
125 void (GLAPIENTRY * TexCoord3dv)(const GLdouble *);
126 void (GLAPIENTRY * TexCoord3f)(GLfloat, GLfloat, GLfloat);
127 void (GLAPIENTRY * TexCoord3fv)(const GLfloat *);
128 void (GLAPIENTRY * TexCoord3i)(GLint, GLint, GLint);
129 void (GLAPIENTRY * TexCoord3iv)(const GLint *);
130 void (GLAPIENTRY * TexCoord3s)(GLshort, GLshort, GLshort);
131 void (GLAPIENTRY * TexCoord3sv)(const GLshort *);
132 void (GLAPIENTRY * TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble);
133 void (GLAPIENTRY * TexCoord4dv)(const GLdouble *);
134 void (GLAPIENTRY * TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat);
135 void (GLAPIENTRY * TexCoord4fv)(const GLfloat *);
136 void (GLAPIENTRY * TexCoord4i)(GLint, GLint, GLint, GLint);
137 void (GLAPIENTRY * TexCoord4iv)(const GLint *);
138 void (GLAPIENTRY * TexCoord4s)(GLshort, GLshort, GLshort, GLshort);
139 void (GLAPIENTRY * TexCoord4sv)(const GLshort *);
140 void (GLAPIENTRY * Vertex2d)(GLdouble, GLdouble);
141 void (GLAPIENTRY * Vertex2dv)(const GLdouble *);
142 void (GLAPIENTRY * Vertex2f)(GLfloat, GLfloat);
143 void (GLAPIENTRY * Vertex2fv)(const GLfloat *);
144 void (GLAPIENTRY * Vertex2i)(GLint, GLint);
145 void (GLAPIENTRY * Vertex2iv)(const GLint *);
146 void (GLAPIENTRY * Vertex2s)(GLshort, GLshort);
147 void (GLAPIENTRY * Vertex2sv)(const GLshort *);
148 void (GLAPIENTRY * Vertex3d)(GLdouble, GLdouble, GLdouble);
149 void (GLAPIENTRY * Vertex3dv)(const GLdouble *);
150 void (GLAPIENTRY * Vertex3f)(GLfloat, GLfloat, GLfloat);
151 void (GLAPIENTRY * Vertex3fv)(const GLfloat *);
152 void (GLAPIENTRY * Vertex3i)(GLint, GLint, GLint);
153 void (GLAPIENTRY * Vertex3iv)(const GLint *);
154 void (GLAPIENTRY * Vertex3s)(GLshort, GLshort, GLshort);
155 void (GLAPIENTRY * Vertex3sv)(const GLshort *);
156 void (GLAPIENTRY * Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble);
157 void (GLAPIENTRY * Vertex4dv)(const GLdouble *);
158 void (GLAPIENTRY * Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat);
159 void (GLAPIENTRY * Vertex4fv)(const GLfloat *);
160 void (GLAPIENTRY * Vertex4i)(GLint, GLint, GLint, GLint);
161 void (GLAPIENTRY * Vertex4iv)(const GLint *);
162 void (GLAPIENTRY * Vertex4s)(GLshort, GLshort, GLshort, GLshort);
163 void (GLAPIENTRY * Vertex4sv)(const GLshort *);
164 void (GLAPIENTRY * ClipPlane)(GLenum, const GLdouble *);
165 void (GLAPIENTRY * ColorMaterial)(GLenum, GLenum);
166 void (GLAPIENTRY * CullFace)(GLenum);
167 void (GLAPIENTRY * Fogf)(GLenum, GLfloat);
168 void (GLAPIENTRY * Fogfv)(GLenum, const GLfloat *);
169 void (GLAPIENTRY * Fogi)(GLenum, GLint);
170 void (GLAPIENTRY * Fogiv)(GLenum, const GLint *);
171 void (GLAPIENTRY * FrontFace)(GLenum);
172 void (GLAPIENTRY * Hint)(GLenum, GLenum);
173 void (GLAPIENTRY * Lightf)(GLenum, GLenum, GLfloat);
174 void (GLAPIENTRY * Lightfv)(GLenum, GLenum, const GLfloat *);
175 void (GLAPIENTRY * Lighti)(GLenum, GLenum, GLint);
176 void (GLAPIENTRY * Lightiv)(GLenum, GLenum, const GLint *);
177 void (GLAPIENTRY * LightModelf)(GLenum, GLfloat);
178 void (GLAPIENTRY * LightModelfv)(GLenum, const GLfloat *);
179 void (GLAPIENTRY * LightModeli)(GLenum, GLint);
180 void (GLAPIENTRY * LightModeliv)(GLenum, const GLint *);
181 void (GLAPIENTRY * LineStipple)(GLint, GLushort);
182 void (GLAPIENTRY * LineWidth)(GLfloat);
183 void (GLAPIENTRY * Materialf)(GLenum, GLenum, GLfloat);
184 void (GLAPIENTRY * Materialfv)(GLenum, GLenum, const GLfloat *);
185 void (GLAPIENTRY * Materiali)(GLenum, GLenum, GLint);
186 void (GLAPIENTRY * Materialiv)(GLenum, GLenum, const GLint *);
187 void (GLAPIENTRY * PointSize)(GLfloat);
188 void (GLAPIENTRY * PolygonMode)(GLenum, GLenum);
189 void (GLAPIENTRY * PolygonStipple)(const GLubyte *);
190 void (GLAPIENTRY * Scissor)(GLint, GLint, GLsizei, GLsizei);
191 void (GLAPIENTRY * ShadeModel)(GLenum);
192 void (GLAPIENTRY * TexParameterf)(GLenum, GLenum, GLfloat);
193 void (GLAPIENTRY * TexParameterfv)(GLenum, GLenum, const GLfloat *);
194 void (GLAPIENTRY * TexParameteri)(GLenum, GLenum, GLint);
195 void (GLAPIENTRY * TexParameteriv)(GLenum, GLenum, const GLint *);
196 void (GLAPIENTRY * TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
197 void (GLAPIENTRY * TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
198 void (GLAPIENTRY * TexEnvf)(GLenum, GLenum, GLfloat);
199 void (GLAPIENTRY * TexEnvfv)(GLenum, GLenum, const GLfloat *);
200 void (GLAPIENTRY * TexEnvi)(GLenum, GLenum, GLint);
201 void (GLAPIENTRY * TexEnviv)(GLenum, GLenum, const GLint *);
202 void (GLAPIENTRY * TexGend)(GLenum, GLenum, GLdouble);
203 void (GLAPIENTRY * TexGendv)(GLenum, GLenum, const GLdouble *);
204 void (GLAPIENTRY * TexGenf)(GLenum, GLenum, GLfloat);
205 void (GLAPIENTRY * TexGenfv)(GLenum, GLenum, const GLfloat *);
206 void (GLAPIENTRY * TexGeni)(GLenum, GLenum, GLint);
207 void (GLAPIENTRY * TexGeniv)(GLenum, GLenum, const GLint *);
208 void (GLAPIENTRY * FeedbackBuffer)(GLsizei, GLenum, GLfloat *);
209 void (GLAPIENTRY * SelectBuffer)(GLsizei, GLuint *);
210 GLint (GLAPIENTRY * RenderMode)(GLenum);
211 void (GLAPIENTRY * InitNames)(void);
212 void (GLAPIENTRY * LoadName)(GLuint);
213 void (GLAPIENTRY * PassThrough)(GLfloat);
214 void (GLAPIENTRY * PopName)(void);
215 void (GLAPIENTRY * PushName)(GLuint);
216 void (GLAPIENTRY * DrawBuffer)(GLenum);
217 void (GLAPIENTRY * Clear)(GLbitfield);
218 void (GLAPIENTRY * ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat);
219 void (GLAPIENTRY * ClearIndex)(GLfloat);
220 void (GLAPIENTRY * ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
221 void (GLAPIENTRY * ClearStencil)(GLint);
222 void (GLAPIENTRY * ClearDepth)(GLclampd);
223 void (GLAPIENTRY * StencilMask)(GLuint);
224 void (GLAPIENTRY * ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
225 void (GLAPIENTRY * DepthMask)(GLboolean);
226 void (GLAPIENTRY * IndexMask)(GLuint);
227 void (GLAPIENTRY * Accum)(GLenum, GLfloat);
228 void (GLAPIENTRY * Disable)(GLenum);
229 void (GLAPIENTRY * Enable)(GLenum);
230 void (GLAPIENTRY * Finish)(void);
231 void (GLAPIENTRY * Flush)(void);
232 void (GLAPIENTRY * PopAttrib)(void);
233 void (GLAPIENTRY * PushAttrib)(GLbitfield);
234 void (GLAPIENTRY * Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
235 void (GLAPIENTRY * Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
236 void (GLAPIENTRY * Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
237 void (GLAPIENTRY * Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
238 void (GLAPIENTRY * MapGrid1d)(GLint, GLdouble, GLdouble);
239 void (GLAPIENTRY * MapGrid1f)(GLint, GLfloat, GLfloat);
240 void (GLAPIENTRY * MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
241 void (GLAPIENTRY * MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
242 void (GLAPIENTRY * EvalCoord1d)(GLdouble);
243 void (GLAPIENTRY * EvalCoord1dv)(const GLdouble *);
244 void (GLAPIENTRY * EvalCoord1f)(GLfloat);
245 void (GLAPIENTRY * EvalCoord1fv)(const GLfloat *);
246 void (GLAPIENTRY * EvalCoord2d)(GLdouble, GLdouble);
247 void (GLAPIENTRY * EvalCoord2dv)(const GLdouble *);
248 void (GLAPIENTRY * EvalCoord2f)(GLfloat, GLfloat);
249 void (GLAPIENTRY * EvalCoord2fv)(const GLfloat *);
250 void (GLAPIENTRY * EvalMesh1)(GLenum, GLint, GLint);
251 void (GLAPIENTRY * EvalPoint1)(GLint);
252 void (GLAPIENTRY * EvalMesh2)(GLenum, GLint, GLint, GLint, GLint);
253 void (GLAPIENTRY * EvalPoint2)(GLint, GLint);
254 void (GLAPIENTRY * AlphaFunc)(GLenum, GLclampf);
255 void (GLAPIENTRY * BlendFunc)(GLenum, GLenum);
256 void (GLAPIENTRY * LogicOp)(GLenum);
257 void (GLAPIENTRY * StencilFunc)(GLenum, GLint, GLuint);
258 void (GLAPIENTRY * StencilOp)(GLenum, GLenum, GLenum);
259 void (GLAPIENTRY * DepthFunc)(GLenum);
260 void (GLAPIENTRY * PixelZoom)(GLfloat, GLfloat);
261 void (GLAPIENTRY * PixelTransferf)(GLenum, GLfloat);
262 void (GLAPIENTRY * PixelTransferi)(GLenum, GLint);
263 void (GLAPIENTRY * PixelStoref)(GLenum, GLfloat);
264 void (GLAPIENTRY * PixelStorei)(GLenum, GLint);
265 void (GLAPIENTRY * PixelMapfv)(GLenum, GLint, const GLfloat *);
266 void (GLAPIENTRY * PixelMapuiv)(GLenum, GLint, const GLuint *);
267 void (GLAPIENTRY * PixelMapusv)(GLenum, GLint, const GLushort *);
268 void (GLAPIENTRY * ReadBuffer)(GLenum);
269 void (GLAPIENTRY * CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum);
270 void (GLAPIENTRY * ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
271 void (GLAPIENTRY * DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
272 void (GLAPIENTRY * GetBooleanv)(GLenum, GLboolean *);
273 void (GLAPIENTRY * GetClipPlane)(GLenum, GLdouble *);
274 void (GLAPIENTRY * GetDoublev)(GLenum, GLdouble *);
275 GLenum (GLAPIENTRY * GetError)(void);
276 void (GLAPIENTRY * GetFloatv)(GLenum, GLfloat *);
277 void (GLAPIENTRY * GetIntegerv)(GLenum, GLint *);
278 void (GLAPIENTRY * GetLightfv)(GLenum, GLenum, GLfloat *);
279 void (GLAPIENTRY * GetLightiv)(GLenum, GLenum, GLint *);
280 void (GLAPIENTRY * GetMapdv)(GLenum, GLenum, GLdouble *);
281 void (GLAPIENTRY * GetMapfv)(GLenum, GLenum, GLfloat *);
282 void (GLAPIENTRY * GetMapiv)(GLenum, GLenum, GLint *);
283 void (GLAPIENTRY * GetMaterialfv)(GLenum, GLenum, GLfloat *);
284 void (GLAPIENTRY * GetMaterialiv)(GLenum, GLenum, GLint *);
285 void (GLAPIENTRY * GetPixelMapfv)(GLenum, GLfloat *);
286 void (GLAPIENTRY * GetPixelMapuiv)(GLenum, GLuint *);
287 void (GLAPIENTRY * GetPixelMapusv)(GLenum, GLushort *);
288 void (GLAPIENTRY * GetPolygonStipple)(GLubyte *);
289 const GLubyte * (GLAPIENTRY * GetString)(GLenum);
290 void (GLAPIENTRY * GetTexEnvfv)(GLenum, GLenum, GLfloat *);
291 void (GLAPIENTRY * GetTexEnviv)(GLenum, GLenum, GLint *);
292 void (GLAPIENTRY * GetTexGendv)(GLenum, GLenum, GLdouble *);
293 void (GLAPIENTRY * GetTexGenfv)(GLenum, GLenum, GLfloat *);
294 void (GLAPIENTRY * GetTexGeniv)(GLenum, GLenum, GLint *);
295 void (GLAPIENTRY * GetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *);
296 void (GLAPIENTRY * GetTexParameterfv)(GLenum, GLenum, GLfloat *);
297 void (GLAPIENTRY * GetTexParameteriv)(GLenum, GLenum, GLint *);
298 void (GLAPIENTRY * GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
299 void (GLAPIENTRY * GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
300 GLboolean (GLAPIENTRY * IsEnabled)(GLenum);
301 GLboolean (GLAPIENTRY * IsList)(GLuint);
302 void (GLAPIENTRY * DepthRange)(GLclampd, GLclampd);
303 void (GLAPIENTRY * Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
304 void (GLAPIENTRY * LoadIdentity)(void);
305 void (GLAPIENTRY * LoadMatrixf)(const GLfloat *);
306 void (GLAPIENTRY * LoadMatrixd)(const GLdouble *);
307 void (GLAPIENTRY * MatrixMode)(GLenum);
308 void (GLAPIENTRY * MultMatrixf)(const GLfloat *);
309 void (GLAPIENTRY * MultMatrixd)(const GLdouble *);
310 void (GLAPIENTRY * Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
311 void (GLAPIENTRY * PopMatrix)(void);
312 void (GLAPIENTRY * PushMatrix)(void);
313 void (GLAPIENTRY * Rotated)(GLdouble, GLdouble, GLdouble, GLdouble);
314 void (GLAPIENTRY * Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat);
315 void (GLAPIENTRY * Scaled)(GLdouble, GLdouble, GLdouble);
316 void (GLAPIENTRY * Scalef)(GLfloat, GLfloat, GLfloat);
317 void (GLAPIENTRY * Translated)(GLdouble, GLdouble, GLdouble);
318 void (GLAPIENTRY * Translatef)(GLfloat, GLfloat, GLfloat);
319 void (GLAPIENTRY * Viewport)(GLint, GLint, GLsizei, GLsizei);
320 void (GLAPIENTRY * ArrayElement)(GLint);
321 void (GLAPIENTRY * BindTexture)(GLenum, GLuint);
322 void (GLAPIENTRY * ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
323 void (GLAPIENTRY * DisableClientState)(GLenum);
324 void (GLAPIENTRY * DrawArrays)(GLenum, GLint, GLsizei);
325 void (GLAPIENTRY * DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
326 void (GLAPIENTRY * EdgeFlagPointer)(GLsizei, const GLvoid *);
327 void (GLAPIENTRY * EnableClientState)(GLenum);
328 void (GLAPIENTRY * IndexPointer)(GLenum, GLsizei, const GLvoid *);
329 void (GLAPIENTRY * Indexub)(GLubyte);
330 void (GLAPIENTRY * Indexubv)(const GLubyte *);
331 void (GLAPIENTRY * InterleavedArrays)(GLenum, GLsizei, const GLvoid *);
332 void (GLAPIENTRY * NormalPointer)(GLenum, GLsizei, const GLvoid *);
333 void (GLAPIENTRY * PolygonOffset)(GLfloat, GLfloat);
334 void (GLAPIENTRY * TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *);
335 void (GLAPIENTRY * VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *);
336 GLboolean (GLAPIENTRY * AreTexturesResident)(GLsizei, const GLuint *, GLboolean *);
337 void (GLAPIENTRY * CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
338 void (GLAPIENTRY * CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
339 void (GLAPIENTRY * CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
340 void (GLAPIENTRY * CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
341 void (GLAPIENTRY * DeleteTextures)(GLsizei, const GLuint *);
342 void (GLAPIENTRY * GenTextures)(GLsizei, GLuint *);
343 void (GLAPIENTRY * GetPointerv)(GLenum, GLvoid **);
344 GLboolean (GLAPIENTRY * IsTexture)(GLuint);
345 void (GLAPIENTRY * PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *);
346 void (GLAPIENTRY * TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
347 void (GLAPIENTRY * TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
348 void (GLAPIENTRY * PopClientAttrib)(void);
349 void (GLAPIENTRY * PushClientAttrib)(GLbitfield);
350 };
351
352 typedef struct __GLdispatchTableRec GLDISPATCHTABLE;
353
354 typedef struct _GLCLTPROCTABLE
355 {
356 int cEntries;
357 GLDISPATCHTABLE glDispatchTable;
358 } GLCLTPROCTABLE, * PGLCLTPROCTABLE;
359
360 typedef VOID (APIENTRY * PFN_SETPROCTABLE)(const GLCLTPROCTABLE*);
361
362 /* Those functions are there in case GL calls are made without a context */
363 extern const GLCLTPROCTABLE StubTable;
364
365 /* This doesn't seem to be anywhere in ddk or psdk */
366 DECLARE_HANDLE(DHGLRC);
367
368 struct ICD_Data
369 {
370 /* The Name returned with OPENGL_GETINFO escape code */
371 WCHAR DriverName[256];
372 /* The DLL handle */
373 HMODULE hModule;
374
375 /* The ICD DLL exports */
376 BOOL (WINAPI *DrvCopyContext)( DHGLRC, DHGLRC, UINT );
377 DHGLRC (WINAPI *DrvCreateContext)( HDC );
378 DHGLRC (WINAPI *DrvCreateLayerContext)( HDC, int );
379 BOOL (WINAPI *DrvDeleteContext)( DHGLRC );
380 BOOL (WINAPI *DrvDescribeLayerPlane)( HDC, int, int, UINT, LPLAYERPLANEDESCRIPTOR );
381 int (WINAPI *DrvDescribePixelFormat)( IN HDC, IN int, IN UINT, OUT LPPIXELFORMATDESCRIPTOR );
382 int (WINAPI *DrvGetLayerPaletteEntries)( HDC, int, int, int, COLORREF * );
383 PROC (WINAPI *DrvGetProcAddress)( LPCSTR lpProcName );
384 void (WINAPI *DrvReleaseContext)( DHGLRC hglrc ); /* maybe returns BOOL? */
385 BOOL (WINAPI *DrvRealizeLayerPalette)( HDC, int, BOOL );
386 const GLCLTPROCTABLE* (WINAPI *DrvSetContext)( HDC hdc, DHGLRC hglrc, PFN_SETPROCTABLE callback );
387 int (WINAPI *DrvSetLayerPaletteEntries)( HDC, int, int, int, CONST COLORREF * );
388 BOOL (WINAPI *DrvSetPixelFormat)( IN HDC, IN int);
389 BOOL (WINAPI *DrvShareLists)( DHGLRC, DHGLRC );
390 BOOL (WINAPI *DrvSwapBuffers)( HDC );
391 BOOL (WINAPI *DrvSwapLayerBuffers)( HDC, UINT );
392
393 /* Make this a linked list */
394 struct ICD_Data* next;
395 };
396
397 struct ICD_Data* IntGetIcdData(HDC hdc);
398