1db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca/**************************************************************************
2db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
34e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Copyright 2008-2009 Vmware, Inc.
4db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * All Rights Reserved.
5db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
6db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * Permission is hereby granted, free of charge, to any person obtaining a
7db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * copy of this software and associated documentation files (the
8db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * "Software"), to deal in the Software without restriction, including
9db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * without limitation the rights to use, copy, modify, merge, publish,
10db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * distribute, sub license, and/or sell copies of the Software, and to
11db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * permit persons to whom the Software is furnished to do so, subject to
12db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * the following conditions:
13db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
14db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * The above copyright notice and this permission notice (including the
15db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * next paragraph) shall be included in all copies or substantial portions
16db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * of the Software.
17db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
18db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
214e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca *
26db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca **************************************************************************/
27db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
284bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca/**
294bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca * @file
304bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca *
314bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca * This header defines the interface used by the system's opengl32.dll and the
324bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca * Installable Client Driver (ICD).
334bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca */
344bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca
358ef412900363aa6338351001574867866ebcae89José Fonseca#ifndef STW_ICD_H
368ef412900363aa6338351001574867866ebcae89José Fonseca#define STW_ICD_H
37db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
38db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
39db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca#include <windows.h>
40db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
41db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca#include "GL/gl.h"
42db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
43db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
44db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecatypedef ULONG DHGLRC;
45db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
46db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca#define OPENGL_VERSION_110_ENTRIES  336
47db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
48db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecastruct __GLdispatchTableRec
49db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca{
50db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * NewList)(GLuint, GLenum);
51db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EndList)(void);
52db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CallList)(GLuint);
53db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CallLists)(GLsizei, GLenum, const GLvoid *);
54db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DeleteLists)(GLuint, GLsizei);
55db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLuint (GLAPIENTRY * GenLists)(GLsizei);
56db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ListBase)(GLuint);
57db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Begin)(GLenum);
58db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *);
59db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3b)(GLbyte, GLbyte, GLbyte);
60db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3bv)(const GLbyte *);
61db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3d)(GLdouble, GLdouble, GLdouble);
62db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3dv)(const GLdouble *);
63db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3f)(GLfloat, GLfloat, GLfloat);
64db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3fv)(const GLfloat *);
65db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3i)(GLint, GLint, GLint);
66db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3iv)(const GLint *);
67db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3s)(GLshort, GLshort, GLshort);
68db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3sv)(const GLshort *);
69db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3ub)(GLubyte, GLubyte, GLubyte);
70db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3ubv)(const GLubyte *);
71db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3ui)(GLuint, GLuint, GLuint);
72db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3uiv)(const GLuint *);
73db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3us)(GLushort, GLushort, GLushort);
74db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color3usv)(const GLushort *);
75db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4b)(GLbyte, GLbyte, GLbyte, GLbyte);
76db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4bv)(const GLbyte *);
77db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4d)(GLdouble, GLdouble, GLdouble, GLdouble);
78db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4dv)(const GLdouble *);
79db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4f)(GLfloat, GLfloat, GLfloat, GLfloat);
80db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4fv)(const GLfloat *);
81db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4i)(GLint, GLint, GLint, GLint);
82db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4iv)(const GLint *);
83db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4s)(GLshort, GLshort, GLshort, GLshort);
84db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4sv)(const GLshort *);
85db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
86db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4ubv)(const GLubyte *);
87db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4ui)(GLuint, GLuint, GLuint, GLuint);
88db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4uiv)(const GLuint *);
89db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4us)(GLushort, GLushort, GLushort, GLushort);
90db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Color4usv)(const GLushort *);
91db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EdgeFlag)(GLboolean);
92db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EdgeFlagv)(const GLboolean *);
93db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * End)(void);
94db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexd)(GLdouble);
95db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexdv)(const GLdouble *);
96db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexf)(GLfloat);
97db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexfv)(const GLfloat *);
98db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexi)(GLint);
99db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexiv)(const GLint *);
100db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexs)(GLshort);
101db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexsv)(const GLshort *);
102db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3b)(GLbyte, GLbyte, GLbyte);
103db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3bv)(const GLbyte *);
104db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3d)(GLdouble, GLdouble, GLdouble);
105db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3dv)(const GLdouble *);
106db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3f)(GLfloat, GLfloat, GLfloat);
107db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3fv)(const GLfloat *);
108db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3i)(GLint, GLint, GLint);
109db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3iv)(const GLint *);
110db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3s)(GLshort, GLshort, GLshort);
111db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Normal3sv)(const GLshort *);
112db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2d)(GLdouble, GLdouble);
113db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2dv)(const GLdouble *);
114db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2f)(GLfloat, GLfloat);
115db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2fv)(const GLfloat *);
116db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2i)(GLint, GLint);
117db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2iv)(const GLint *);
118db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2s)(GLshort, GLshort);
119db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos2sv)(const GLshort *);
120db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3d)(GLdouble, GLdouble, GLdouble);
121db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3dv)(const GLdouble *);
122db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3f)(GLfloat, GLfloat, GLfloat);
123db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3fv)(const GLfloat *);
124db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3i)(GLint, GLint, GLint);
125db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3iv)(const GLint *);
126db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3s)(GLshort, GLshort, GLshort);
127db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos3sv)(const GLshort *);
128db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
129db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4dv)(const GLdouble *);
130db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat);
131db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4fv)(const GLfloat *);
132db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4i)(GLint, GLint, GLint, GLint);
133db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4iv)(const GLint *);
134db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4s)(GLshort, GLshort, GLshort, GLshort);
135db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * RasterPos4sv)(const GLshort *);
136db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectd)(GLdouble, GLdouble, GLdouble, GLdouble);
137db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectdv)(const GLdouble *, const GLdouble *);
138db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectf)(GLfloat, GLfloat, GLfloat, GLfloat);
139db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectfv)(const GLfloat *, const GLfloat *);
140db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Recti)(GLint, GLint, GLint, GLint);
141db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectiv)(const GLint *, const GLint *);
142db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rects)(GLshort, GLshort, GLshort, GLshort);
143db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rectsv)(const GLshort *, const GLshort *);
144db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1d)(GLdouble);
145db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1dv)(const GLdouble *);
146db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1f)(GLfloat);
147db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1fv)(const GLfloat *);
148db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1i)(GLint);
149db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1iv)(const GLint *);
150db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1s)(GLshort);
151db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord1sv)(const GLshort *);
152db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2d)(GLdouble, GLdouble);
153db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2dv)(const GLdouble *);
154db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2f)(GLfloat, GLfloat);
155db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2fv)(const GLfloat *);
156db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2i)(GLint, GLint);
157db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2iv)(const GLint *);
158db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2s)(GLshort, GLshort);
159db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord2sv)(const GLshort *);
160db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3d)(GLdouble, GLdouble, GLdouble);
161db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3dv)(const GLdouble *);
162db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3f)(GLfloat, GLfloat, GLfloat);
163db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3fv)(const GLfloat *);
164db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3i)(GLint, GLint, GLint);
165db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3iv)(const GLint *);
166db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3s)(GLshort, GLshort, GLshort);
167db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord3sv)(const GLshort *);
168db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble);
169db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4dv)(const GLdouble *);
170db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat);
171db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4fv)(const GLfloat *);
172db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4i)(GLint, GLint, GLint, GLint);
173db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4iv)(const GLint *);
174db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4s)(GLshort, GLshort, GLshort, GLshort);
175db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoord4sv)(const GLshort *);
176db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2d)(GLdouble, GLdouble);
177db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2dv)(const GLdouble *);
178db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2f)(GLfloat, GLfloat);
179db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2fv)(const GLfloat *);
180db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2i)(GLint, GLint);
181db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2iv)(const GLint *);
182db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2s)(GLshort, GLshort);
183db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex2sv)(const GLshort *);
184db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3d)(GLdouble, GLdouble, GLdouble);
185db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3dv)(const GLdouble *);
186db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3f)(GLfloat, GLfloat, GLfloat);
187db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3fv)(const GLfloat *);
188db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3i)(GLint, GLint, GLint);
189db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3iv)(const GLint *);
190db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3s)(GLshort, GLshort, GLshort);
191db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex3sv)(const GLshort *);
192db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble);
193db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4dv)(const GLdouble *);
194db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat);
195db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4fv)(const GLfloat *);
196db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4i)(GLint, GLint, GLint, GLint);
197db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4iv)(const GLint *);
198db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4s)(GLshort, GLshort, GLshort, GLshort);
199db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Vertex4sv)(const GLshort *);
200db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClipPlane)(GLenum, const GLdouble *);
201db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ColorMaterial)(GLenum, GLenum);
202db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CullFace)(GLenum);
203db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Fogf)(GLenum, GLfloat);
204db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Fogfv)(GLenum, const GLfloat *);
205db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Fogi)(GLenum, GLint);
206db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Fogiv)(GLenum, const GLint *);
207db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * FrontFace)(GLenum);
208db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Hint)(GLenum, GLenum);
209db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Lightf)(GLenum, GLenum, GLfloat);
210db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Lightfv)(GLenum, GLenum, const GLfloat *);
211db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Lighti)(GLenum, GLenum, GLint);
212db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Lightiv)(GLenum, GLenum, const GLint *);
213db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LightModelf)(GLenum, GLfloat);
214db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LightModelfv)(GLenum, const GLfloat *);
215db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LightModeli)(GLenum, GLint);
216db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LightModeliv)(GLenum, const GLint *);
217db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LineStipple)(GLint, GLushort);
218db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LineWidth)(GLfloat);
219db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Materialf)(GLenum, GLenum, GLfloat);
220db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Materialfv)(GLenum, GLenum, const GLfloat *);
221db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Materiali)(GLenum, GLenum, GLint);
222db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Materialiv)(GLenum, GLenum, const GLint *);
223db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PointSize)(GLfloat);
224db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PolygonMode)(GLenum, GLenum);
225db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PolygonStipple)(const GLubyte *);
226db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Scissor)(GLint, GLint, GLsizei, GLsizei);
227db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ShadeModel)(GLenum);
228db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexParameterf)(GLenum, GLenum, GLfloat);
229db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexParameterfv)(GLenum, GLenum, const GLfloat *);
230db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexParameteri)(GLenum, GLenum, GLint);
231db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexParameteriv)(GLenum, GLenum, const GLint *);
232db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
233db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
234db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexEnvf)(GLenum, GLenum, GLfloat);
235db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexEnvfv)(GLenum, GLenum, const GLfloat *);
236db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexEnvi)(GLenum, GLenum, GLint);
237db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexEnviv)(GLenum, GLenum, const GLint *);
238db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGend)(GLenum, GLenum, GLdouble);
239db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGendv)(GLenum, GLenum, const GLdouble *);
240db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGenf)(GLenum, GLenum, GLfloat);
241db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGenfv)(GLenum, GLenum, const GLfloat *);
242db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGeni)(GLenum, GLenum, GLint);
243db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexGeniv)(GLenum, GLenum, const GLint *);
244db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * FeedbackBuffer)(GLsizei, GLenum, GLfloat *);
245db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * SelectBuffer)(GLsizei, GLuint *);
246db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLint (GLAPIENTRY * RenderMode)(GLenum);
247db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * InitNames)(void);
248db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LoadName)(GLuint);
249db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PassThrough)(GLfloat);
250db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PopName)(void);
251db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PushName)(GLuint);
252db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DrawBuffer)(GLenum);
253db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Clear)(GLbitfield);
254db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat);
255db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClearIndex)(GLfloat);
256db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
257db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClearStencil)(GLint);
258db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ClearDepth)(GLclampd);
259db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * StencilMask)(GLuint);
260db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
261db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DepthMask)(GLboolean);
262db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * IndexMask)(GLuint);
263db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Accum)(GLenum, GLfloat);
264db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Disable)(GLenum);
265db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Enable)(GLenum);
266db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Finish)(void);
267db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Flush)(void);
268db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PopAttrib)(void);
269db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PushAttrib)(GLbitfield);
270db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
271db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
272db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
273db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
274db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MapGrid1d)(GLint, GLdouble, GLdouble);
275db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MapGrid1f)(GLint, GLfloat, GLfloat);
276db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
277db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
278db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord1d)(GLdouble);
279db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord1dv)(const GLdouble *);
280db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord1f)(GLfloat);
281db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord1fv)(const GLfloat *);
282db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord2d)(GLdouble, GLdouble);
283db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord2dv)(const GLdouble *);
284db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord2f)(GLfloat, GLfloat);
285db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalCoord2fv)(const GLfloat *);
286db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalMesh1)(GLenum, GLint, GLint);
287db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalPoint1)(GLint);
288db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalMesh2)(GLenum, GLint, GLint, GLint, GLint);
289db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EvalPoint2)(GLint, GLint);
290db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * AlphaFunc)(GLenum, GLclampf);
291db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * BlendFunc)(GLenum, GLenum);
292db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LogicOp)(GLenum);
293db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * StencilFunc)(GLenum, GLint, GLuint);
294db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * StencilOp)(GLenum, GLenum, GLenum);
295db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DepthFunc)(GLenum);
296db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelZoom)(GLfloat, GLfloat);
297db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelTransferf)(GLenum, GLfloat);
298db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelTransferi)(GLenum, GLint);
299db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelStoref)(GLenum, GLfloat);
300db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelStorei)(GLenum, GLint);
301db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelMapfv)(GLenum, GLint, const GLfloat *);
302db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelMapuiv)(GLenum, GLint, const GLuint *);
303db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PixelMapusv)(GLenum, GLint, const GLushort *);
304db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ReadBuffer)(GLenum);
305db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum);
306db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
307db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
308db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetBooleanv)(GLenum, GLboolean *);
309db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetClipPlane)(GLenum, GLdouble *);
310db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetDoublev)(GLenum, GLdouble *);
311db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLenum (GLAPIENTRY * GetError)(void);
312db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetFloatv)(GLenum, GLfloat *);
313db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetIntegerv)(GLenum, GLint *);
314db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetLightfv)(GLenum, GLenum, GLfloat *);
315db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetLightiv)(GLenum, GLenum, GLint *);
316db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetMapdv)(GLenum, GLenum, GLdouble *);
317db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetMapfv)(GLenum, GLenum, GLfloat *);
318db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetMapiv)(GLenum, GLenum, GLint *);
319db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetMaterialfv)(GLenum, GLenum, GLfloat *);
320db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetMaterialiv)(GLenum, GLenum, GLint *);
321db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetPixelMapfv)(GLenum, GLfloat *);
322db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetPixelMapuiv)(GLenum, GLuint *);
323db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetPixelMapusv)(GLenum, GLushort *);
324db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetPolygonStipple)(GLubyte *);
325db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   const GLubyte * (GLAPIENTRY * GetString)(GLenum);
326db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexEnvfv)(GLenum, GLenum, GLfloat *);
327db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexEnviv)(GLenum, GLenum, GLint *);
328db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexGendv)(GLenum, GLenum, GLdouble *);
329db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexGenfv)(GLenum, GLenum, GLfloat *);
330db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexGeniv)(GLenum, GLenum, GLint *);
331db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *);
332db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexParameterfv)(GLenum, GLenum, GLfloat *);
333db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexParameteriv)(GLenum, GLenum, GLint *);
334db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
335db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
336db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLboolean (GLAPIENTRY * IsEnabled)(GLenum);
337db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLboolean (GLAPIENTRY * IsList)(GLuint);
338db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DepthRange)(GLclampd, GLclampd);
339db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
340db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LoadIdentity)(void);
341db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LoadMatrixf)(const GLfloat *);
342db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * LoadMatrixd)(const GLdouble *);
343db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MatrixMode)(GLenum);
344db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MultMatrixf)(const GLfloat *);
345db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * MultMatrixd)(const GLdouble *);
346db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
347db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PopMatrix)(void);
348db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PushMatrix)(void);
349db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rotated)(GLdouble, GLdouble, GLdouble, GLdouble);
350db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat);
351db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Scaled)(GLdouble, GLdouble, GLdouble);
352db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Scalef)(GLfloat, GLfloat, GLfloat);
353db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Translated)(GLdouble, GLdouble, GLdouble);
354db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Translatef)(GLfloat, GLfloat, GLfloat);
355db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Viewport)(GLint, GLint, GLsizei, GLsizei);
356db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ArrayElement)(GLint);
357db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * BindTexture)(GLenum, GLuint);
358db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
359db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DisableClientState)(GLenum);
360db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DrawArrays)(GLenum, GLint, GLsizei);
361db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
362db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EdgeFlagPointer)(GLsizei, const GLvoid *);
363db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * EnableClientState)(GLenum);
364db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * IndexPointer)(GLenum, GLsizei, const GLvoid *);
365db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexub)(GLubyte);
366db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * Indexubv)(const GLubyte *);
367db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * InterleavedArrays)(GLenum, GLsizei, const GLvoid *);
368db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * NormalPointer)(GLenum, GLsizei, const GLvoid *);
369db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PolygonOffset)(GLfloat, GLfloat);
370db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *);
371db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *);
372db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLboolean (GLAPIENTRY * AreTexturesResident)(GLsizei, const GLuint *, GLboolean *);
373db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
374db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
375db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
376db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
377db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * DeleteTextures)(GLsizei, const GLuint *);
378db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GenTextures)(GLsizei, GLuint *);
379db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * GetPointerv)(GLenum, GLvoid **);
380db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLboolean (GLAPIENTRY * IsTexture)(GLuint);
381db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *);
382db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
383db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
384db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PopClientAttrib)(void);
385db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   void (GLAPIENTRY * PushClientAttrib)(GLbitfield);
386db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca};
387db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
388db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecatypedef struct __GLdispatchTableRec GLDISPATCHTABLE;
389db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
390db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecatypedef struct _GLCLTPROCTABLE
391db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca{
392db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   int cEntries;
393db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   GLDISPATCHTABLE glDispatchTable;
394db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca} GLCLTPROCTABLE, * PGLCLTPROCTABLE;
395db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
396db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecatypedef VOID (APIENTRY * PFN_SETPROCTABLE)(PGLCLTPROCTABLE);
397db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
3984e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca/**
3994e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Presentation data passed to opengl32!wglCbPresentBuffers.
4004e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca *
4014e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Pure software drivers don't need to worry about this -- if they stick to the
4024e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * GDI API then will integrate with the Desktop Window Manager (DWM) without
4034e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * problems. Hardware drivers, however, cannot present directly to the primary
4044e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * surface while the DWM is active, as DWM gets exclusive access to the primary
4054e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * surface.
4064e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca *
4074e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Proper DWM integration requires:
4084e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * - advertise the PFD_SUPPORT_COMPOSITION flag
4094e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * - redirect glFlush/glfinish/wglSwapBuffers into a surface shared with the
4104e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * DWM process.
4114e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca *
4124e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * @sa http://www.opengl.org/pipeline/article/vol003_7/
4134e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * @sa http://blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx
4144e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca */
4154e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonsecatypedef struct _GLCBPRESENTBUFFERSDATA
4164e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca{
4174e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4184e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * wglCbPresentBuffers enforces this to be 2.
4194e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4204e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   DWORD magic1;
4214e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4224e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4234e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * wglCbPresentBuffers enforces to be 0 or 1, but it is most commonly
4244e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * set to 0.
4254e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4264e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   DWORD magic2;
4274e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4284e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4294e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Locally unique identifier (LUID) of the graphics adapter.
4304e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
4314e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * This should contain the value returned by D3DKMTOpenAdapterFromHdc. It
4324e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * is passed to dwmapi!DwmpDxGetWindowSharedSurface in order to obtain
4334e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * the shared surface handle for the bound drawable (window).
4344e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
4354e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * @sa http://msdn.microsoft.com/en-us/library/ms799177.aspx
4364e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4374e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   LUID AdapterLuid;
4384e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4394e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4404e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * This is passed unmodified to DrvPresentBuffers
4414e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4424e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   LPVOID pPrivateData;
4434e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4444e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4454e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Client area rectangle to update, relative to the window upper-left corner.
4464e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4474e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   RECT rect;
4484e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca} GLCBPRESENTBUFFERSDATA, *PGLCBPRESENTBUFFERSDATA;
4494e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4504e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca/**
4514e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Callbacks supplied to DrvSetCallbackProcs by the OpenGL runtime.
4524e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca *
4534e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca * Pointers to several callback functions in opengl32.dll.
4544e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca */
4554e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonsecatypedef struct _GLCALLBACKTABLE
4564e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca{
4574bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   /**
4584bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Set per-thread driver private data.
4594bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    *
4604bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Unused.
4614bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    **/
4624bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   void (APIENTRY *wglCbSetCurrentValue)(void *pvData);
4634e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4644bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   /**
4654bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Get per-thread private data.
4664bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    *
4674bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Unused.
4684bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    */
4694bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   void * (APIENTRY *wglCbGetCurrentValue)(void);
4704e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4714bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   /**
4724bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Get the ICD GHGLRC handle corresponding to the specified hglrc handle.
4734bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    *
4744bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    * Currently unused.
4754bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca    */
4764bde1ba7fb6253e80197d3645b23893424ef756bJosé Fonseca   DHGLRC (APIENTRY *wglCbGetDhglrc)(HGLRC hglrc);
4774e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4784e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /** Unused */
4794e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   PROC wglCbGetDdHandle;
4804e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4814e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4824e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Queue a present composition.
4834e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
4844e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Makes the runtime call DrvPresentBuffers with the composition information.
4854e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4864e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   BOOL (APIENTRY *wglCbPresentBuffers)(HDC hdc, PGLCBPRESENTBUFFERSDATA data);
4874e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4884e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca} GLCALLBACKTABLE;
4894e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
4904e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonsecatypedef struct _GLPRESENTBUFFERSDATA
4914e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca{
4924e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
4934e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * The shared surface handle.
4944e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
4954e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Return by dwmapi!DwmpDxGetWindowSharedSurface.
4964e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
4974e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * @sa http://channel9.msdn.com/forums/TechOff/251261-Help-Getting-the-shared-window-texture-out-of-DWM-/
4984e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
4994e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   HANDLE hSharedSurface;
5004e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
5014e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   LUID AdapterLuid;
5024e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
5034e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /**
5044e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * Present history token.
5054e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
5064e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * This is returned by dwmapi!DwmpDxGetWindowSharedSurface and
5074e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * should be passed to D3DKMTRender in D3DKMT_RENDER::PresentHistoryToken.
5084e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    *
5094e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    * @sa http://msdn.microsoft.com/en-us/library/ms799176.aspx
5104e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca    */
5114e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   ULONGLONG PresentHistoryToken;
5124e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
5134e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   /** Same as GLCBPRESENTBUFFERSDATA::pPrivateData */
5144e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca   LPVOID pPrivateData;
5154e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca} GLPRESENTBUFFERSDATA, *PGLPRESENTBUFFERSDATA;
5164e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
517db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
518db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvCopyContext(
519db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhrcSource,
520db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhrcDest,
521db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   UINT fuMask );
522db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
523db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDHGLRC APIENTRY
524db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvCreateLayerContext(
525db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
526db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iLayerPlane );
527db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
528db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDHGLRC APIENTRY
529db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvCreateContext(
530db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc );
531db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
532db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
533db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvDeleteContext(
534db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhglrc );
535db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
536db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
537db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvDescribeLayerPlane(
538db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
539db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iPixelFormat,
540db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iLayerPlane,
541db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   UINT nBytes,
542db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   LPLAYERPLANEDESCRIPTOR plpd );
543db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
544db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaLONG APIENTRY
545db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvDescribePixelFormat(
546db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
547db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iPixelFormat,
548db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   ULONG cjpfd,
549db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   PIXELFORMATDESCRIPTOR *ppfd );
550db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
551db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecaint APIENTRY
552db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvGetLayerPaletteEntries(
553db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
554db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iLayerPlane,
555db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iStart,
556db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT cEntries,
557db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   COLORREF *pcr );
558db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
559db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaPROC APIENTRY
560db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvGetProcAddress(
561db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   LPCSTR lpszProc );
562db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
563db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
5644e5ed05b025b9b6a1a6dabba72fce3d918e77044José FonsecaDrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data);
5654e5ed05b025b9b6a1a6dabba72fce3d918e77044José Fonseca
5664e5ed05b025b9b6a1a6dabba72fce3d918e77044José FonsecaBOOL APIENTRY
567db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvRealizeLayerPalette(
568db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
569db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iLayerPlane,
570db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   BOOL bRealize );
571db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
572db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
573db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvReleaseContext(
574db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhglrc );
575db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
576db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecavoid APIENTRY
577db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSetCallbackProcs(
578db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT nProcs,
579db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   PROC *pProcs );
580db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
581db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaPGLCLTPROCTABLE APIENTRY
582db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSetContext(
583db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
584db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhglrc,
585db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   PFN_SETPROCTABLE pfnSetProcTable );
586db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
587db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonsecaint APIENTRY
588db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSetLayerPaletteEntries(
589db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
590db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iLayerPlane,
591db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT iStart,
592db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   INT cEntries,
593db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   CONST COLORREF *pcr );
594db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
595db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
596db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSetPixelFormat(
597db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
598db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   LONG iPixelFormat );
599db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
600db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
601db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvShareLists(
602db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhglrc1,
603db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   DHGLRC dhglrc2 );
604db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
605db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
606db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSwapBuffers(
607db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc );
608db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
609db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
610db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvSwapLayerBuffers(
611db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   HDC hdc,
612db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   UINT fuPlanes );
613db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
614db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaBOOL APIENTRY
615db19578b52e7f3d6209568e2e0fa7a7107f42cd4José FonsecaDrvValidateVersion(
616db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca   ULONG ulVersion );
617db19578b52e7f3d6209568e2e0fa7a7107f42cd4José Fonseca
6188ef412900363aa6338351001574867866ebcae89José Fonseca#endif /* STW_ICD_H */
619