1 /**************************************************************************
3 * Copyright 2008-2009 Vmware, Inc.
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sub license, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
14 * The above copyright notice and this permission notice (including the
15 * next paragraph) shall be included in all copies or substantial portions
18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21 * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
26 **************************************************************************/
31 * This header defines the interface used by the system's opengl32.dll and the
32 * Installable Client Driver (ICD).
46 #define OPENGL_VERSION_110_ENTRIES 336
48 struct __GLdispatchTableRec
50 void (GLAPIENTRY
* NewList
)(GLuint
, GLenum
);
51 void (GLAPIENTRY
* EndList
)(void);
52 void (GLAPIENTRY
* CallList
)(GLuint
);
53 void (GLAPIENTRY
* CallLists
)(GLsizei
, GLenum
, const GLvoid
*);
54 void (GLAPIENTRY
* DeleteLists
)(GLuint
, GLsizei
);
55 GLuint (GLAPIENTRY
* GenLists
)(GLsizei
);
56 void (GLAPIENTRY
* ListBase
)(GLuint
);
57 void (GLAPIENTRY
* Begin
)(GLenum
);
58 void (GLAPIENTRY
* Bitmap
)(GLsizei
, GLsizei
, GLfloat
, GLfloat
, GLfloat
, GLfloat
, const GLubyte
*);
59 void (GLAPIENTRY
* Color3b
)(GLbyte
, GLbyte
, GLbyte
);
60 void (GLAPIENTRY
* Color3bv
)(const GLbyte
*);
61 void (GLAPIENTRY
* Color3d
)(GLdouble
, GLdouble
, GLdouble
);
62 void (GLAPIENTRY
* Color3dv
)(const GLdouble
*);
63 void (GLAPIENTRY
* Color3f
)(GLfloat
, GLfloat
, GLfloat
);
64 void (GLAPIENTRY
* Color3fv
)(const GLfloat
*);
65 void (GLAPIENTRY
* Color3i
)(GLint
, GLint
, GLint
);
66 void (GLAPIENTRY
* Color3iv
)(const GLint
*);
67 void (GLAPIENTRY
* Color3s
)(GLshort
, GLshort
, GLshort
);
68 void (GLAPIENTRY
* Color3sv
)(const GLshort
*);
69 void (GLAPIENTRY
* Color3ub
)(GLubyte
, GLubyte
, GLubyte
);
70 void (GLAPIENTRY
* Color3ubv
)(const GLubyte
*);
71 void (GLAPIENTRY
* Color3ui
)(GLuint
, GLuint
, GLuint
);
72 void (GLAPIENTRY
* Color3uiv
)(const GLuint
*);
73 void (GLAPIENTRY
* Color3us
)(GLushort
, GLushort
, GLushort
);
74 void (GLAPIENTRY
* Color3usv
)(const GLushort
*);
75 void (GLAPIENTRY
* Color4b
)(GLbyte
, GLbyte
, GLbyte
, GLbyte
);
76 void (GLAPIENTRY
* Color4bv
)(const GLbyte
*);
77 void (GLAPIENTRY
* Color4d
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
78 void (GLAPIENTRY
* Color4dv
)(const GLdouble
*);
79 void (GLAPIENTRY
* Color4f
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
80 void (GLAPIENTRY
* Color4fv
)(const GLfloat
*);
81 void (GLAPIENTRY
* Color4i
)(GLint
, GLint
, GLint
, GLint
);
82 void (GLAPIENTRY
* Color4iv
)(const GLint
*);
83 void (GLAPIENTRY
* Color4s
)(GLshort
, GLshort
, GLshort
, GLshort
);
84 void (GLAPIENTRY
* Color4sv
)(const GLshort
*);
85 void (GLAPIENTRY
* Color4ub
)(GLubyte
, GLubyte
, GLubyte
, GLubyte
);
86 void (GLAPIENTRY
* Color4ubv
)(const GLubyte
*);
87 void (GLAPIENTRY
* Color4ui
)(GLuint
, GLuint
, GLuint
, GLuint
);
88 void (GLAPIENTRY
* Color4uiv
)(const GLuint
*);
89 void (GLAPIENTRY
* Color4us
)(GLushort
, GLushort
, GLushort
, GLushort
);
90 void (GLAPIENTRY
* Color4usv
)(const GLushort
*);
91 void (GLAPIENTRY
* EdgeFlag
)(GLboolean
);
92 void (GLAPIENTRY
* EdgeFlagv
)(const GLboolean
*);
93 void (GLAPIENTRY
* End
)(void);
94 void (GLAPIENTRY
* Indexd
)(GLdouble
);
95 void (GLAPIENTRY
* Indexdv
)(const GLdouble
*);
96 void (GLAPIENTRY
* Indexf
)(GLfloat
);
97 void (GLAPIENTRY
* Indexfv
)(const GLfloat
*);
98 void (GLAPIENTRY
* Indexi
)(GLint
);
99 void (GLAPIENTRY
* Indexiv
)(const GLint
*);
100 void (GLAPIENTRY
* Indexs
)(GLshort
);
101 void (GLAPIENTRY
* Indexsv
)(const GLshort
*);
102 void (GLAPIENTRY
* Normal3b
)(GLbyte
, GLbyte
, GLbyte
);
103 void (GLAPIENTRY
* Normal3bv
)(const GLbyte
*);
104 void (GLAPIENTRY
* Normal3d
)(GLdouble
, GLdouble
, GLdouble
);
105 void (GLAPIENTRY
* Normal3dv
)(const GLdouble
*);
106 void (GLAPIENTRY
* Normal3f
)(GLfloat
, GLfloat
, GLfloat
);
107 void (GLAPIENTRY
* Normal3fv
)(const GLfloat
*);
108 void (GLAPIENTRY
* Normal3i
)(GLint
, GLint
, GLint
);
109 void (GLAPIENTRY
* Normal3iv
)(const GLint
*);
110 void (GLAPIENTRY
* Normal3s
)(GLshort
, GLshort
, GLshort
);
111 void (GLAPIENTRY
* Normal3sv
)(const GLshort
*);
112 void (GLAPIENTRY
* RasterPos2d
)(GLdouble
, GLdouble
);
113 void (GLAPIENTRY
* RasterPos2dv
)(const GLdouble
*);
114 void (GLAPIENTRY
* RasterPos2f
)(GLfloat
, GLfloat
);
115 void (GLAPIENTRY
* RasterPos2fv
)(const GLfloat
*);
116 void (GLAPIENTRY
* RasterPos2i
)(GLint
, GLint
);
117 void (GLAPIENTRY
* RasterPos2iv
)(const GLint
*);
118 void (GLAPIENTRY
* RasterPos2s
)(GLshort
, GLshort
);
119 void (GLAPIENTRY
* RasterPos2sv
)(const GLshort
*);
120 void (GLAPIENTRY
* RasterPos3d
)(GLdouble
, GLdouble
, GLdouble
);
121 void (GLAPIENTRY
* RasterPos3dv
)(const GLdouble
*);
122 void (GLAPIENTRY
* RasterPos3f
)(GLfloat
, GLfloat
, GLfloat
);
123 void (GLAPIENTRY
* RasterPos3fv
)(const GLfloat
*);
124 void (GLAPIENTRY
* RasterPos3i
)(GLint
, GLint
, GLint
);
125 void (GLAPIENTRY
* RasterPos3iv
)(const GLint
*);
126 void (GLAPIENTRY
* RasterPos3s
)(GLshort
, GLshort
, GLshort
);
127 void (GLAPIENTRY
* RasterPos3sv
)(const GLshort
*);
128 void (GLAPIENTRY
* RasterPos4d
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
129 void (GLAPIENTRY
* RasterPos4dv
)(const GLdouble
*);
130 void (GLAPIENTRY
* RasterPos4f
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
131 void (GLAPIENTRY
* RasterPos4fv
)(const GLfloat
*);
132 void (GLAPIENTRY
* RasterPos4i
)(GLint
, GLint
, GLint
, GLint
);
133 void (GLAPIENTRY
* RasterPos4iv
)(const GLint
*);
134 void (GLAPIENTRY
* RasterPos4s
)(GLshort
, GLshort
, GLshort
, GLshort
);
135 void (GLAPIENTRY
* RasterPos4sv
)(const GLshort
*);
136 void (GLAPIENTRY
* Rectd
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
137 void (GLAPIENTRY
* Rectdv
)(const GLdouble
*, const GLdouble
*);
138 void (GLAPIENTRY
* Rectf
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
139 void (GLAPIENTRY
* Rectfv
)(const GLfloat
*, const GLfloat
*);
140 void (GLAPIENTRY
* Recti
)(GLint
, GLint
, GLint
, GLint
);
141 void (GLAPIENTRY
* Rectiv
)(const GLint
*, const GLint
*);
142 void (GLAPIENTRY
* Rects
)(GLshort
, GLshort
, GLshort
, GLshort
);
143 void (GLAPIENTRY
* Rectsv
)(const GLshort
*, const GLshort
*);
144 void (GLAPIENTRY
* TexCoord1d
)(GLdouble
);
145 void (GLAPIENTRY
* TexCoord1dv
)(const GLdouble
*);
146 void (GLAPIENTRY
* TexCoord1f
)(GLfloat
);
147 void (GLAPIENTRY
* TexCoord1fv
)(const GLfloat
*);
148 void (GLAPIENTRY
* TexCoord1i
)(GLint
);
149 void (GLAPIENTRY
* TexCoord1iv
)(const GLint
*);
150 void (GLAPIENTRY
* TexCoord1s
)(GLshort
);
151 void (GLAPIENTRY
* TexCoord1sv
)(const GLshort
*);
152 void (GLAPIENTRY
* TexCoord2d
)(GLdouble
, GLdouble
);
153 void (GLAPIENTRY
* TexCoord2dv
)(const GLdouble
*);
154 void (GLAPIENTRY
* TexCoord2f
)(GLfloat
, GLfloat
);
155 void (GLAPIENTRY
* TexCoord2fv
)(const GLfloat
*);
156 void (GLAPIENTRY
* TexCoord2i
)(GLint
, GLint
);
157 void (GLAPIENTRY
* TexCoord2iv
)(const GLint
*);
158 void (GLAPIENTRY
* TexCoord2s
)(GLshort
, GLshort
);
159 void (GLAPIENTRY
* TexCoord2sv
)(const GLshort
*);
160 void (GLAPIENTRY
* TexCoord3d
)(GLdouble
, GLdouble
, GLdouble
);
161 void (GLAPIENTRY
* TexCoord3dv
)(const GLdouble
*);
162 void (GLAPIENTRY
* TexCoord3f
)(GLfloat
, GLfloat
, GLfloat
);
163 void (GLAPIENTRY
* TexCoord3fv
)(const GLfloat
*);
164 void (GLAPIENTRY
* TexCoord3i
)(GLint
, GLint
, GLint
);
165 void (GLAPIENTRY
* TexCoord3iv
)(const GLint
*);
166 void (GLAPIENTRY
* TexCoord3s
)(GLshort
, GLshort
, GLshort
);
167 void (GLAPIENTRY
* TexCoord3sv
)(const GLshort
*);
168 void (GLAPIENTRY
* TexCoord4d
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
169 void (GLAPIENTRY
* TexCoord4dv
)(const GLdouble
*);
170 void (GLAPIENTRY
* TexCoord4f
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
171 void (GLAPIENTRY
* TexCoord4fv
)(const GLfloat
*);
172 void (GLAPIENTRY
* TexCoord4i
)(GLint
, GLint
, GLint
, GLint
);
173 void (GLAPIENTRY
* TexCoord4iv
)(const GLint
*);
174 void (GLAPIENTRY
* TexCoord4s
)(GLshort
, GLshort
, GLshort
, GLshort
);
175 void (GLAPIENTRY
* TexCoord4sv
)(const GLshort
*);
176 void (GLAPIENTRY
* Vertex2d
)(GLdouble
, GLdouble
);
177 void (GLAPIENTRY
* Vertex2dv
)(const GLdouble
*);
178 void (GLAPIENTRY
* Vertex2f
)(GLfloat
, GLfloat
);
179 void (GLAPIENTRY
* Vertex2fv
)(const GLfloat
*);
180 void (GLAPIENTRY
* Vertex2i
)(GLint
, GLint
);
181 void (GLAPIENTRY
* Vertex2iv
)(const GLint
*);
182 void (GLAPIENTRY
* Vertex2s
)(GLshort
, GLshort
);
183 void (GLAPIENTRY
* Vertex2sv
)(const GLshort
*);
184 void (GLAPIENTRY
* Vertex3d
)(GLdouble
, GLdouble
, GLdouble
);
185 void (GLAPIENTRY
* Vertex3dv
)(const GLdouble
*);
186 void (GLAPIENTRY
* Vertex3f
)(GLfloat
, GLfloat
, GLfloat
);
187 void (GLAPIENTRY
* Vertex3fv
)(const GLfloat
*);
188 void (GLAPIENTRY
* Vertex3i
)(GLint
, GLint
, GLint
);
189 void (GLAPIENTRY
* Vertex3iv
)(const GLint
*);
190 void (GLAPIENTRY
* Vertex3s
)(GLshort
, GLshort
, GLshort
);
191 void (GLAPIENTRY
* Vertex3sv
)(const GLshort
*);
192 void (GLAPIENTRY
* Vertex4d
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
193 void (GLAPIENTRY
* Vertex4dv
)(const GLdouble
*);
194 void (GLAPIENTRY
* Vertex4f
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
195 void (GLAPIENTRY
* Vertex4fv
)(const GLfloat
*);
196 void (GLAPIENTRY
* Vertex4i
)(GLint
, GLint
, GLint
, GLint
);
197 void (GLAPIENTRY
* Vertex4iv
)(const GLint
*);
198 void (GLAPIENTRY
* Vertex4s
)(GLshort
, GLshort
, GLshort
, GLshort
);
199 void (GLAPIENTRY
* Vertex4sv
)(const GLshort
*);
200 void (GLAPIENTRY
* ClipPlane
)(GLenum
, const GLdouble
*);
201 void (GLAPIENTRY
* ColorMaterial
)(GLenum
, GLenum
);
202 void (GLAPIENTRY
* CullFace
)(GLenum
);
203 void (GLAPIENTRY
* Fogf
)(GLenum
, GLfloat
);
204 void (GLAPIENTRY
* Fogfv
)(GLenum
, const GLfloat
*);
205 void (GLAPIENTRY
* Fogi
)(GLenum
, GLint
);
206 void (GLAPIENTRY
* Fogiv
)(GLenum
, const GLint
*);
207 void (GLAPIENTRY
* FrontFace
)(GLenum
);
208 void (GLAPIENTRY
* Hint
)(GLenum
, GLenum
);
209 void (GLAPIENTRY
* Lightf
)(GLenum
, GLenum
, GLfloat
);
210 void (GLAPIENTRY
* Lightfv
)(GLenum
, GLenum
, const GLfloat
*);
211 void (GLAPIENTRY
* Lighti
)(GLenum
, GLenum
, GLint
);
212 void (GLAPIENTRY
* Lightiv
)(GLenum
, GLenum
, const GLint
*);
213 void (GLAPIENTRY
* LightModelf
)(GLenum
, GLfloat
);
214 void (GLAPIENTRY
* LightModelfv
)(GLenum
, const GLfloat
*);
215 void (GLAPIENTRY
* LightModeli
)(GLenum
, GLint
);
216 void (GLAPIENTRY
* LightModeliv
)(GLenum
, const GLint
*);
217 void (GLAPIENTRY
* LineStipple
)(GLint
, GLushort
);
218 void (GLAPIENTRY
* LineWidth
)(GLfloat
);
219 void (GLAPIENTRY
* Materialf
)(GLenum
, GLenum
, GLfloat
);
220 void (GLAPIENTRY
* Materialfv
)(GLenum
, GLenum
, const GLfloat
*);
221 void (GLAPIENTRY
* Materiali
)(GLenum
, GLenum
, GLint
);
222 void (GLAPIENTRY
* Materialiv
)(GLenum
, GLenum
, const GLint
*);
223 void (GLAPIENTRY
* PointSize
)(GLfloat
);
224 void (GLAPIENTRY
* PolygonMode
)(GLenum
, GLenum
);
225 void (GLAPIENTRY
* PolygonStipple
)(const GLubyte
*);
226 void (GLAPIENTRY
* Scissor
)(GLint
, GLint
, GLsizei
, GLsizei
);
227 void (GLAPIENTRY
* ShadeModel
)(GLenum
);
228 void (GLAPIENTRY
* TexParameterf
)(GLenum
, GLenum
, GLfloat
);
229 void (GLAPIENTRY
* TexParameterfv
)(GLenum
, GLenum
, const GLfloat
*);
230 void (GLAPIENTRY
* TexParameteri
)(GLenum
, GLenum
, GLint
);
231 void (GLAPIENTRY
* TexParameteriv
)(GLenum
, GLenum
, const GLint
*);
232 void (GLAPIENTRY
* TexImage1D
)(GLenum
, GLint
, GLint
, GLsizei
, GLint
, GLenum
, GLenum
, const GLvoid
*);
233 void (GLAPIENTRY
* TexImage2D
)(GLenum
, GLint
, GLint
, GLsizei
, GLsizei
, GLint
, GLenum
, GLenum
, const GLvoid
*);
234 void (GLAPIENTRY
* TexEnvf
)(GLenum
, GLenum
, GLfloat
);
235 void (GLAPIENTRY
* TexEnvfv
)(GLenum
, GLenum
, const GLfloat
*);
236 void (GLAPIENTRY
* TexEnvi
)(GLenum
, GLenum
, GLint
);
237 void (GLAPIENTRY
* TexEnviv
)(GLenum
, GLenum
, const GLint
*);
238 void (GLAPIENTRY
* TexGend
)(GLenum
, GLenum
, GLdouble
);
239 void (GLAPIENTRY
* TexGendv
)(GLenum
, GLenum
, const GLdouble
*);
240 void (GLAPIENTRY
* TexGenf
)(GLenum
, GLenum
, GLfloat
);
241 void (GLAPIENTRY
* TexGenfv
)(GLenum
, GLenum
, const GLfloat
*);
242 void (GLAPIENTRY
* TexGeni
)(GLenum
, GLenum
, GLint
);
243 void (GLAPIENTRY
* TexGeniv
)(GLenum
, GLenum
, const GLint
*);
244 void (GLAPIENTRY
* FeedbackBuffer
)(GLsizei
, GLenum
, GLfloat
*);
245 void (GLAPIENTRY
* SelectBuffer
)(GLsizei
, GLuint
*);
246 GLint (GLAPIENTRY
* RenderMode
)(GLenum
);
247 void (GLAPIENTRY
* InitNames
)(void);
248 void (GLAPIENTRY
* LoadName
)(GLuint
);
249 void (GLAPIENTRY
* PassThrough
)(GLfloat
);
250 void (GLAPIENTRY
* PopName
)(void);
251 void (GLAPIENTRY
* PushName
)(GLuint
);
252 void (GLAPIENTRY
* DrawBuffer
)(GLenum
);
253 void (GLAPIENTRY
* Clear
)(GLbitfield
);
254 void (GLAPIENTRY
* ClearAccum
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
255 void (GLAPIENTRY
* ClearIndex
)(GLfloat
);
256 void (GLAPIENTRY
* ClearColor
)(GLclampf
, GLclampf
, GLclampf
, GLclampf
);
257 void (GLAPIENTRY
* ClearStencil
)(GLint
);
258 void (GLAPIENTRY
* ClearDepth
)(GLclampd
);
259 void (GLAPIENTRY
* StencilMask
)(GLuint
);
260 void (GLAPIENTRY
* ColorMask
)(GLboolean
, GLboolean
, GLboolean
, GLboolean
);
261 void (GLAPIENTRY
* DepthMask
)(GLboolean
);
262 void (GLAPIENTRY
* IndexMask
)(GLuint
);
263 void (GLAPIENTRY
* Accum
)(GLenum
, GLfloat
);
264 void (GLAPIENTRY
* Disable
)(GLenum
);
265 void (GLAPIENTRY
* Enable
)(GLenum
);
266 void (GLAPIENTRY
* Finish
)(void);
267 void (GLAPIENTRY
* Flush
)(void);
268 void (GLAPIENTRY
* PopAttrib
)(void);
269 void (GLAPIENTRY
* PushAttrib
)(GLbitfield
);
270 void (GLAPIENTRY
* Map1d
)(GLenum
, GLdouble
, GLdouble
, GLint
, GLint
, const GLdouble
*);
271 void (GLAPIENTRY
* Map1f
)(GLenum
, GLfloat
, GLfloat
, GLint
, GLint
, const GLfloat
*);
272 void (GLAPIENTRY
* Map2d
)(GLenum
, GLdouble
, GLdouble
, GLint
, GLint
, GLdouble
, GLdouble
, GLint
, GLint
, const GLdouble
*);
273 void (GLAPIENTRY
* Map2f
)(GLenum
, GLfloat
, GLfloat
, GLint
, GLint
, GLfloat
, GLfloat
, GLint
, GLint
, const GLfloat
*);
274 void (GLAPIENTRY
* MapGrid1d
)(GLint
, GLdouble
, GLdouble
);
275 void (GLAPIENTRY
* MapGrid1f
)(GLint
, GLfloat
, GLfloat
);
276 void (GLAPIENTRY
* MapGrid2d
)(GLint
, GLdouble
, GLdouble
, GLint
, GLdouble
, GLdouble
);
277 void (GLAPIENTRY
* MapGrid2f
)(GLint
, GLfloat
, GLfloat
, GLint
, GLfloat
, GLfloat
);
278 void (GLAPIENTRY
* EvalCoord1d
)(GLdouble
);
279 void (GLAPIENTRY
* EvalCoord1dv
)(const GLdouble
*);
280 void (GLAPIENTRY
* EvalCoord1f
)(GLfloat
);
281 void (GLAPIENTRY
* EvalCoord1fv
)(const GLfloat
*);
282 void (GLAPIENTRY
* EvalCoord2d
)(GLdouble
, GLdouble
);
283 void (GLAPIENTRY
* EvalCoord2dv
)(const GLdouble
*);
284 void (GLAPIENTRY
* EvalCoord2f
)(GLfloat
, GLfloat
);
285 void (GLAPIENTRY
* EvalCoord2fv
)(const GLfloat
*);
286 void (GLAPIENTRY
* EvalMesh1
)(GLenum
, GLint
, GLint
);
287 void (GLAPIENTRY
* EvalPoint1
)(GLint
);
288 void (GLAPIENTRY
* EvalMesh2
)(GLenum
, GLint
, GLint
, GLint
, GLint
);
289 void (GLAPIENTRY
* EvalPoint2
)(GLint
, GLint
);
290 void (GLAPIENTRY
* AlphaFunc
)(GLenum
, GLclampf
);
291 void (GLAPIENTRY
* BlendFunc
)(GLenum
, GLenum
);
292 void (GLAPIENTRY
* LogicOp
)(GLenum
);
293 void (GLAPIENTRY
* StencilFunc
)(GLenum
, GLint
, GLuint
);
294 void (GLAPIENTRY
* StencilOp
)(GLenum
, GLenum
, GLenum
);
295 void (GLAPIENTRY
* DepthFunc
)(GLenum
);
296 void (GLAPIENTRY
* PixelZoom
)(GLfloat
, GLfloat
);
297 void (GLAPIENTRY
* PixelTransferf
)(GLenum
, GLfloat
);
298 void (GLAPIENTRY
* PixelTransferi
)(GLenum
, GLint
);
299 void (GLAPIENTRY
* PixelStoref
)(GLenum
, GLfloat
);
300 void (GLAPIENTRY
* PixelStorei
)(GLenum
, GLint
);
301 void (GLAPIENTRY
* PixelMapfv
)(GLenum
, GLint
, const GLfloat
*);
302 void (GLAPIENTRY
* PixelMapuiv
)(GLenum
, GLint
, const GLuint
*);
303 void (GLAPIENTRY
* PixelMapusv
)(GLenum
, GLint
, const GLushort
*);
304 void (GLAPIENTRY
* ReadBuffer
)(GLenum
);
305 void (GLAPIENTRY
* CopyPixels
)(GLint
, GLint
, GLsizei
, GLsizei
, GLenum
);
306 void (GLAPIENTRY
* ReadPixels
)(GLint
, GLint
, GLsizei
, GLsizei
, GLenum
, GLenum
, GLvoid
*);
307 void (GLAPIENTRY
* DrawPixels
)(GLsizei
, GLsizei
, GLenum
, GLenum
, const GLvoid
*);
308 void (GLAPIENTRY
* GetBooleanv
)(GLenum
, GLboolean
*);
309 void (GLAPIENTRY
* GetClipPlane
)(GLenum
, GLdouble
*);
310 void (GLAPIENTRY
* GetDoublev
)(GLenum
, GLdouble
*);
311 GLenum (GLAPIENTRY
* GetError
)(void);
312 void (GLAPIENTRY
* GetFloatv
)(GLenum
, GLfloat
*);
313 void (GLAPIENTRY
* GetIntegerv
)(GLenum
, GLint
*);
314 void (GLAPIENTRY
* GetLightfv
)(GLenum
, GLenum
, GLfloat
*);
315 void (GLAPIENTRY
* GetLightiv
)(GLenum
, GLenum
, GLint
*);
316 void (GLAPIENTRY
* GetMapdv
)(GLenum
, GLenum
, GLdouble
*);
317 void (GLAPIENTRY
* GetMapfv
)(GLenum
, GLenum
, GLfloat
*);
318 void (GLAPIENTRY
* GetMapiv
)(GLenum
, GLenum
, GLint
*);
319 void (GLAPIENTRY
* GetMaterialfv
)(GLenum
, GLenum
, GLfloat
*);
320 void (GLAPIENTRY
* GetMaterialiv
)(GLenum
, GLenum
, GLint
*);
321 void (GLAPIENTRY
* GetPixelMapfv
)(GLenum
, GLfloat
*);
322 void (GLAPIENTRY
* GetPixelMapuiv
)(GLenum
, GLuint
*);
323 void (GLAPIENTRY
* GetPixelMapusv
)(GLenum
, GLushort
*);
324 void (GLAPIENTRY
* GetPolygonStipple
)(GLubyte
*);
325 const GLubyte
* (GLAPIENTRY
* GetString
)(GLenum
);
326 void (GLAPIENTRY
* GetTexEnvfv
)(GLenum
, GLenum
, GLfloat
*);
327 void (GLAPIENTRY
* GetTexEnviv
)(GLenum
, GLenum
, GLint
*);
328 void (GLAPIENTRY
* GetTexGendv
)(GLenum
, GLenum
, GLdouble
*);
329 void (GLAPIENTRY
* GetTexGenfv
)(GLenum
, GLenum
, GLfloat
*);
330 void (GLAPIENTRY
* GetTexGeniv
)(GLenum
, GLenum
, GLint
*);
331 void (GLAPIENTRY
* GetTexImage
)(GLenum
, GLint
, GLenum
, GLenum
, GLvoid
*);
332 void (GLAPIENTRY
* GetTexParameterfv
)(GLenum
, GLenum
, GLfloat
*);
333 void (GLAPIENTRY
* GetTexParameteriv
)(GLenum
, GLenum
, GLint
*);
334 void (GLAPIENTRY
* GetTexLevelParameterfv
)(GLenum
, GLint
, GLenum
, GLfloat
*);
335 void (GLAPIENTRY
* GetTexLevelParameteriv
)(GLenum
, GLint
, GLenum
, GLint
*);
336 GLboolean (GLAPIENTRY
* IsEnabled
)(GLenum
);
337 GLboolean (GLAPIENTRY
* IsList
)(GLuint
);
338 void (GLAPIENTRY
* DepthRange
)(GLclampd
, GLclampd
);
339 void (GLAPIENTRY
* Frustum
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
, GLdouble
, GLdouble
);
340 void (GLAPIENTRY
* LoadIdentity
)(void);
341 void (GLAPIENTRY
* LoadMatrixf
)(const GLfloat
*);
342 void (GLAPIENTRY
* LoadMatrixd
)(const GLdouble
*);
343 void (GLAPIENTRY
* MatrixMode
)(GLenum
);
344 void (GLAPIENTRY
* MultMatrixf
)(const GLfloat
*);
345 void (GLAPIENTRY
* MultMatrixd
)(const GLdouble
*);
346 void (GLAPIENTRY
* Ortho
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
, GLdouble
, GLdouble
);
347 void (GLAPIENTRY
* PopMatrix
)(void);
348 void (GLAPIENTRY
* PushMatrix
)(void);
349 void (GLAPIENTRY
* Rotated
)(GLdouble
, GLdouble
, GLdouble
, GLdouble
);
350 void (GLAPIENTRY
* Rotatef
)(GLfloat
, GLfloat
, GLfloat
, GLfloat
);
351 void (GLAPIENTRY
* Scaled
)(GLdouble
, GLdouble
, GLdouble
);
352 void (GLAPIENTRY
* Scalef
)(GLfloat
, GLfloat
, GLfloat
);
353 void (GLAPIENTRY
* Translated
)(GLdouble
, GLdouble
, GLdouble
);
354 void (GLAPIENTRY
* Translatef
)(GLfloat
, GLfloat
, GLfloat
);
355 void (GLAPIENTRY
* Viewport
)(GLint
, GLint
, GLsizei
, GLsizei
);
356 void (GLAPIENTRY
* ArrayElement
)(GLint
);
357 void (GLAPIENTRY
* BindTexture
)(GLenum
, GLuint
);
358 void (GLAPIENTRY
* ColorPointer
)(GLint
, GLenum
, GLsizei
, const GLvoid
*);
359 void (GLAPIENTRY
* DisableClientState
)(GLenum
);
360 void (GLAPIENTRY
* DrawArrays
)(GLenum
, GLint
, GLsizei
);
361 void (GLAPIENTRY
* DrawElements
)(GLenum
, GLsizei
, GLenum
, const GLvoid
*);
362 void (GLAPIENTRY
* EdgeFlagPointer
)(GLsizei
, const GLvoid
*);
363 void (GLAPIENTRY
* EnableClientState
)(GLenum
);
364 void (GLAPIENTRY
* IndexPointer
)(GLenum
, GLsizei
, const GLvoid
*);
365 void (GLAPIENTRY
* Indexub
)(GLubyte
);
366 void (GLAPIENTRY
* Indexubv
)(const GLubyte
*);
367 void (GLAPIENTRY
* InterleavedArrays
)(GLenum
, GLsizei
, const GLvoid
*);
368 void (GLAPIENTRY
* NormalPointer
)(GLenum
, GLsizei
, const GLvoid
*);
369 void (GLAPIENTRY
* PolygonOffset
)(GLfloat
, GLfloat
);
370 void (GLAPIENTRY
* TexCoordPointer
)(GLint
, GLenum
, GLsizei
, const GLvoid
*);
371 void (GLAPIENTRY
* VertexPointer
)(GLint
, GLenum
, GLsizei
, const GLvoid
*);
372 GLboolean (GLAPIENTRY
* AreTexturesResident
)(GLsizei
, const GLuint
*, GLboolean
*);
373 void (GLAPIENTRY
* CopyTexImage1D
)(GLenum
, GLint
, GLenum
, GLint
, GLint
, GLsizei
, GLint
);
374 void (GLAPIENTRY
* CopyTexImage2D
)(GLenum
, GLint
, GLenum
, GLint
, GLint
, GLsizei
, GLsizei
, GLint
);
375 void (GLAPIENTRY
* CopyTexSubImage1D
)(GLenum
, GLint
, GLint
, GLint
, GLint
, GLsizei
);
376 void (GLAPIENTRY
* CopyTexSubImage2D
)(GLenum
, GLint
, GLint
, GLint
, GLint
, GLint
, GLsizei
, GLsizei
);
377 void (GLAPIENTRY
* DeleteTextures
)(GLsizei
, const GLuint
*);
378 void (GLAPIENTRY
* GenTextures
)(GLsizei
, GLuint
*);
379 void (GLAPIENTRY
* GetPointerv
)(GLenum
, GLvoid
**);
380 GLboolean (GLAPIENTRY
* IsTexture
)(GLuint
);
381 void (GLAPIENTRY
* PrioritizeTextures
)(GLsizei
, const GLuint
*, const GLclampf
*);
382 void (GLAPIENTRY
* TexSubImage1D
)(GLenum
, GLint
, GLint
, GLsizei
, GLenum
, GLenum
, const GLvoid
*);
383 void (GLAPIENTRY
* TexSubImage2D
)(GLenum
, GLint
, GLint
, GLint
, GLsizei
, GLsizei
, GLenum
, GLenum
, const GLvoid
*);
384 void (GLAPIENTRY
* PopClientAttrib
)(void);
385 void (GLAPIENTRY
* PushClientAttrib
)(GLbitfield
);
388 typedef struct __GLdispatchTableRec GLDISPATCHTABLE
;
390 typedef struct _GLCLTPROCTABLE
393 GLDISPATCHTABLE glDispatchTable
;
394 } GLCLTPROCTABLE
, * PGLCLTPROCTABLE
;
396 typedef VOID (APIENTRY
* PFN_SETPROCTABLE
)(PGLCLTPROCTABLE
);
399 * Presentation data passed to opengl32!wglCbPresentBuffers.
401 * Pure software drivers don't need to worry about this -- if they stick to the
402 * GDI API then will integrate with the Desktop Window Manager (DWM) without
403 * problems. Hardware drivers, however, cannot present directly to the primary
404 * surface while the DWM is active, as DWM gets exclusive access to the primary
407 * Proper DWM integration requires:
408 * - advertise the PFD_SUPPORT_COMPOSITION flag
409 * - redirect glFlush/glfinish/wglSwapBuffers into a surface shared with the
412 * @sa http://www.opengl.org/pipeline/article/vol003_7/
413 * @sa http://blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx
415 typedef struct _GLCBPRESENTBUFFERSDATA
418 * wglCbPresentBuffers enforces this to be 2.
423 * wglCbPresentBuffers enforces to be 0 or 1, but it is most commonly
429 * Locally unique identifier (LUID) of the graphics adapter.
431 * This should contain the value returned by D3DKMTOpenAdapterFromHdc. It
432 * is passed to dwmapi!DwmpDxGetWindowSharedSurface in order to obtain
433 * the shared surface handle for the bound drawable (window).
435 * @sa http://msdn.microsoft.com/en-us/library/ms799177.aspx
440 * This is passed unmodified to DrvPresentBuffers
445 * Client area rectangle to update, relative to the window upper-left corner.
448 } GLCBPRESENTBUFFERSDATA
, *PGLCBPRESENTBUFFERSDATA
;
451 * Callbacks supplied to DrvSetCallbackProcs by the OpenGL runtime.
453 * Pointers to several callback functions in opengl32.dll.
455 typedef struct _GLCALLBACKTABLE
458 * Set per-thread driver private data.
462 void (APIENTRY
*wglCbSetCurrentValue
)(void *pvData
);
465 * Get per-thread private data.
469 void * (APIENTRY
*wglCbGetCurrentValue
)(void);
472 * Get the ICD GHGLRC handle corresponding to the specified hglrc handle.
476 DHGLRC (APIENTRY
*wglCbGetDhglrc
)(HGLRC hglrc
);
479 PROC wglCbGetDdHandle
;
482 * Queue a present composition.
484 * Makes the runtime call DrvPresentBuffers with the composition information.
486 BOOL (APIENTRY
*wglCbPresentBuffers
)(HDC hdc
, PGLCBPRESENTBUFFERSDATA data
);
490 typedef struct _GLPRESENTBUFFERSDATA
493 * The shared surface handle.
495 * Return by dwmapi!DwmpDxGetWindowSharedSurface.
497 * @sa http://channel9.msdn.com/forums/TechOff/251261-Help-Getting-the-shared-window-texture-out-of-DWM-/
499 HANDLE hSharedSurface
;
504 * Present history token.
506 * This is returned by dwmapi!DwmpDxGetWindowSharedSurface and
507 * should be passed to D3DKMTRender in D3DKMT_RENDER::PresentHistoryToken.
509 * @sa http://msdn.microsoft.com/en-us/library/ms799176.aspx
511 ULONGLONG PresentHistoryToken
;
513 /** Same as GLCBPRESENTBUFFERSDATA::pPrivateData */
515 } GLPRESENTBUFFERSDATA
, *PGLPRESENTBUFFERSDATA
;
524 DrvCreateLayerContext(
537 DrvDescribeLayerPlane(
542 LPLAYERPLANEDESCRIPTOR plpd
);
545 DrvDescribePixelFormat(
549 PIXELFORMATDESCRIPTOR
*ppfd
);
552 DrvGetLayerPaletteEntries(
564 DrvPresentBuffers(HDC hdc
, PGLPRESENTBUFFERSDATA data
);
567 DrvRealizeLayerPalette(
581 PGLCLTPROCTABLE APIENTRY
585 PFN_SETPROCTABLE pfnSetProcTable
);
588 DrvSetLayerPaletteEntries(
593 CONST COLORREF
*pcr
);
618 #endif /* STW_ICD_H */