1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**************************************************************************
2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright 2008-2009 Vmware, Inc.
4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * All Rights Reserved.
5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a
7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the
8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including
9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish,
10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sub license, and/or sell copies of the Software, and to
11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to
12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions:
13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the
15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial portions
16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * of the Software.
17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR
22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org **************************************************************************/
27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**
29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * @file
30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * This header defines the interface used by the system's opengl32.dll and the
32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Installable Client Driver (ICD).
33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef STW_ICD_H
36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define STW_ICD_H
37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include <windows.h>
40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "GL/gl.h"
42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef ULONG DHGLRC;
45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define OPENGL_VERSION_110_ENTRIES  336
47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct __GLdispatchTableRec
49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * NewList)(GLuint, GLenum);
51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EndList)(void);
52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CallList)(GLuint);
53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CallLists)(GLsizei, GLenum, const GLvoid *);
54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DeleteLists)(GLuint, GLsizei);
55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLuint (GLAPIENTRY * GenLists)(GLsizei);
56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ListBase)(GLuint);
57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Begin)(GLenum);
58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *);
59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3b)(GLbyte, GLbyte, GLbyte);
60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3bv)(const GLbyte *);
61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3d)(GLdouble, GLdouble, GLdouble);
62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3dv)(const GLdouble *);
63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3f)(GLfloat, GLfloat, GLfloat);
64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3fv)(const GLfloat *);
65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3i)(GLint, GLint, GLint);
66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3iv)(const GLint *);
67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3s)(GLshort, GLshort, GLshort);
68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3sv)(const GLshort *);
69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3ub)(GLubyte, GLubyte, GLubyte);
70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3ubv)(const GLubyte *);
71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3ui)(GLuint, GLuint, GLuint);
72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3uiv)(const GLuint *);
73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3us)(GLushort, GLushort, GLushort);
74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color3usv)(const GLushort *);
75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4b)(GLbyte, GLbyte, GLbyte, GLbyte);
76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4bv)(const GLbyte *);
77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4d)(GLdouble, GLdouble, GLdouble, GLdouble);
78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4dv)(const GLdouble *);
79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4f)(GLfloat, GLfloat, GLfloat, GLfloat);
80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4fv)(const GLfloat *);
81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4i)(GLint, GLint, GLint, GLint);
82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4iv)(const GLint *);
83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4s)(GLshort, GLshort, GLshort, GLshort);
84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4sv)(const GLshort *);
85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4ubv)(const GLubyte *);
87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4ui)(GLuint, GLuint, GLuint, GLuint);
88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4uiv)(const GLuint *);
89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4us)(GLushort, GLushort, GLushort, GLushort);
90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Color4usv)(const GLushort *);
91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EdgeFlag)(GLboolean);
92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EdgeFlagv)(const GLboolean *);
93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * End)(void);
94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexd)(GLdouble);
95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexdv)(const GLdouble *);
96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexf)(GLfloat);
97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexfv)(const GLfloat *);
98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexi)(GLint);
99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexiv)(const GLint *);
100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexs)(GLshort);
101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexsv)(const GLshort *);
102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3b)(GLbyte, GLbyte, GLbyte);
103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3bv)(const GLbyte *);
104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3d)(GLdouble, GLdouble, GLdouble);
105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3dv)(const GLdouble *);
106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3f)(GLfloat, GLfloat, GLfloat);
107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3fv)(const GLfloat *);
108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3i)(GLint, GLint, GLint);
109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3iv)(const GLint *);
110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3s)(GLshort, GLshort, GLshort);
111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Normal3sv)(const GLshort *);
112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2d)(GLdouble, GLdouble);
113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2dv)(const GLdouble *);
114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2f)(GLfloat, GLfloat);
115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2fv)(const GLfloat *);
116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2i)(GLint, GLint);
117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2iv)(const GLint *);
118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2s)(GLshort, GLshort);
119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos2sv)(const GLshort *);
120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3d)(GLdouble, GLdouble, GLdouble);
121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3dv)(const GLdouble *);
122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3f)(GLfloat, GLfloat, GLfloat);
123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3fv)(const GLfloat *);
124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3i)(GLint, GLint, GLint);
125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3iv)(const GLint *);
126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3s)(GLshort, GLshort, GLshort);
127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos3sv)(const GLshort *);
128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4dv)(const GLdouble *);
130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat);
131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4fv)(const GLfloat *);
132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4i)(GLint, GLint, GLint, GLint);
133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4iv)(const GLint *);
134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4s)(GLshort, GLshort, GLshort, GLshort);
135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * RasterPos4sv)(const GLshort *);
136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectd)(GLdouble, GLdouble, GLdouble, GLdouble);
137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectdv)(const GLdouble *, const GLdouble *);
138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectf)(GLfloat, GLfloat, GLfloat, GLfloat);
139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectfv)(const GLfloat *, const GLfloat *);
140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Recti)(GLint, GLint, GLint, GLint);
141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectiv)(const GLint *, const GLint *);
142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rects)(GLshort, GLshort, GLshort, GLshort);
143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rectsv)(const GLshort *, const GLshort *);
144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1d)(GLdouble);
145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1dv)(const GLdouble *);
146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1f)(GLfloat);
147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1fv)(const GLfloat *);
148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1i)(GLint);
149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1iv)(const GLint *);
150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1s)(GLshort);
151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord1sv)(const GLshort *);
152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2d)(GLdouble, GLdouble);
153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2dv)(const GLdouble *);
154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2f)(GLfloat, GLfloat);
155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2fv)(const GLfloat *);
156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2i)(GLint, GLint);
157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2iv)(const GLint *);
158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2s)(GLshort, GLshort);
159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord2sv)(const GLshort *);
160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3d)(GLdouble, GLdouble, GLdouble);
161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3dv)(const GLdouble *);
162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3f)(GLfloat, GLfloat, GLfloat);
163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3fv)(const GLfloat *);
164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3i)(GLint, GLint, GLint);
165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3iv)(const GLint *);
166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3s)(GLshort, GLshort, GLshort);
167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord3sv)(const GLshort *);
168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble);
169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4dv)(const GLdouble *);
170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat);
171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4fv)(const GLfloat *);
172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4i)(GLint, GLint, GLint, GLint);
173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4iv)(const GLint *);
174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4s)(GLshort, GLshort, GLshort, GLshort);
175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoord4sv)(const GLshort *);
176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2d)(GLdouble, GLdouble);
177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2dv)(const GLdouble *);
178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2f)(GLfloat, GLfloat);
179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2fv)(const GLfloat *);
180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2i)(GLint, GLint);
181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2iv)(const GLint *);
182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2s)(GLshort, GLshort);
183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex2sv)(const GLshort *);
184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3d)(GLdouble, GLdouble, GLdouble);
185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3dv)(const GLdouble *);
186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3f)(GLfloat, GLfloat, GLfloat);
187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3fv)(const GLfloat *);
188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3i)(GLint, GLint, GLint);
189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3iv)(const GLint *);
190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3s)(GLshort, GLshort, GLshort);
191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex3sv)(const GLshort *);
192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble);
193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4dv)(const GLdouble *);
194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat);
195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4fv)(const GLfloat *);
196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4i)(GLint, GLint, GLint, GLint);
197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4iv)(const GLint *);
198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4s)(GLshort, GLshort, GLshort, GLshort);
199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Vertex4sv)(const GLshort *);
200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClipPlane)(GLenum, const GLdouble *);
201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ColorMaterial)(GLenum, GLenum);
202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CullFace)(GLenum);
203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Fogf)(GLenum, GLfloat);
204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Fogfv)(GLenum, const GLfloat *);
205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Fogi)(GLenum, GLint);
206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Fogiv)(GLenum, const GLint *);
207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * FrontFace)(GLenum);
208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Hint)(GLenum, GLenum);
209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Lightf)(GLenum, GLenum, GLfloat);
210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Lightfv)(GLenum, GLenum, const GLfloat *);
211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Lighti)(GLenum, GLenum, GLint);
212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Lightiv)(GLenum, GLenum, const GLint *);
213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LightModelf)(GLenum, GLfloat);
214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LightModelfv)(GLenum, const GLfloat *);
215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LightModeli)(GLenum, GLint);
216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LightModeliv)(GLenum, const GLint *);
217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LineStipple)(GLint, GLushort);
218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LineWidth)(GLfloat);
219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Materialf)(GLenum, GLenum, GLfloat);
220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Materialfv)(GLenum, GLenum, const GLfloat *);
221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Materiali)(GLenum, GLenum, GLint);
222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Materialiv)(GLenum, GLenum, const GLint *);
223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PointSize)(GLfloat);
224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PolygonMode)(GLenum, GLenum);
225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PolygonStipple)(const GLubyte *);
226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Scissor)(GLint, GLint, GLsizei, GLsizei);
227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ShadeModel)(GLenum);
228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexParameterf)(GLenum, GLenum, GLfloat);
229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexParameterfv)(GLenum, GLenum, const GLfloat *);
230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexParameteri)(GLenum, GLenum, GLint);
231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexParameteriv)(GLenum, GLenum, const GLint *);
232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexEnvf)(GLenum, GLenum, GLfloat);
235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexEnvfv)(GLenum, GLenum, const GLfloat *);
236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexEnvi)(GLenum, GLenum, GLint);
237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexEnviv)(GLenum, GLenum, const GLint *);
238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGend)(GLenum, GLenum, GLdouble);
239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGendv)(GLenum, GLenum, const GLdouble *);
240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGenf)(GLenum, GLenum, GLfloat);
241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGenfv)(GLenum, GLenum, const GLfloat *);
242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGeni)(GLenum, GLenum, GLint);
243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexGeniv)(GLenum, GLenum, const GLint *);
244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * FeedbackBuffer)(GLsizei, GLenum, GLfloat *);
245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * SelectBuffer)(GLsizei, GLuint *);
246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLint (GLAPIENTRY * RenderMode)(GLenum);
247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * InitNames)(void);
248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LoadName)(GLuint);
249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PassThrough)(GLfloat);
250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PopName)(void);
251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PushName)(GLuint);
252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DrawBuffer)(GLenum);
253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Clear)(GLbitfield);
254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat);
255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClearIndex)(GLfloat);
256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClearStencil)(GLint);
258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ClearDepth)(GLclampd);
259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * StencilMask)(GLuint);
260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DepthMask)(GLboolean);
262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * IndexMask)(GLuint);
263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Accum)(GLenum, GLfloat);
264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Disable)(GLenum);
265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Enable)(GLenum);
266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Finish)(void);
267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Flush)(void);
268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PopAttrib)(void);
269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PushAttrib)(GLbitfield);
270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MapGrid1d)(GLint, GLdouble, GLdouble);
275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MapGrid1f)(GLint, GLfloat, GLfloat);
276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord1d)(GLdouble);
279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord1dv)(const GLdouble *);
280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord1f)(GLfloat);
281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord1fv)(const GLfloat *);
282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord2d)(GLdouble, GLdouble);
283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord2dv)(const GLdouble *);
284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord2f)(GLfloat, GLfloat);
285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalCoord2fv)(const GLfloat *);
286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalMesh1)(GLenum, GLint, GLint);
287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalPoint1)(GLint);
288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalMesh2)(GLenum, GLint, GLint, GLint, GLint);
289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EvalPoint2)(GLint, GLint);
290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * AlphaFunc)(GLenum, GLclampf);
291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * BlendFunc)(GLenum, GLenum);
292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LogicOp)(GLenum);
293f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * StencilFunc)(GLenum, GLint, GLuint);
294f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * StencilOp)(GLenum, GLenum, GLenum);
295f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DepthFunc)(GLenum);
296f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelZoom)(GLfloat, GLfloat);
297f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelTransferf)(GLenum, GLfloat);
298f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelTransferi)(GLenum, GLint);
299f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelStoref)(GLenum, GLfloat);
300f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelStorei)(GLenum, GLint);
301f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelMapfv)(GLenum, GLint, const GLfloat *);
302f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelMapuiv)(GLenum, GLint, const GLuint *);
303f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PixelMapusv)(GLenum, GLint, const GLushort *);
304f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ReadBuffer)(GLenum);
305f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum);
306f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
307f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
308f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetBooleanv)(GLenum, GLboolean *);
309f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetClipPlane)(GLenum, GLdouble *);
310f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetDoublev)(GLenum, GLdouble *);
311f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLenum (GLAPIENTRY * GetError)(void);
312f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetFloatv)(GLenum, GLfloat *);
313f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetIntegerv)(GLenum, GLint *);
314f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetLightfv)(GLenum, GLenum, GLfloat *);
315f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetLightiv)(GLenum, GLenum, GLint *);
316f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetMapdv)(GLenum, GLenum, GLdouble *);
317f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetMapfv)(GLenum, GLenum, GLfloat *);
318f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetMapiv)(GLenum, GLenum, GLint *);
319f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetMaterialfv)(GLenum, GLenum, GLfloat *);
320f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetMaterialiv)(GLenum, GLenum, GLint *);
321f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetPixelMapfv)(GLenum, GLfloat *);
322f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetPixelMapuiv)(GLenum, GLuint *);
323f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetPixelMapusv)(GLenum, GLushort *);
324f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetPolygonStipple)(GLubyte *);
325f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   const GLubyte * (GLAPIENTRY * GetString)(GLenum);
326f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexEnvfv)(GLenum, GLenum, GLfloat *);
327f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexEnviv)(GLenum, GLenum, GLint *);
328f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexGendv)(GLenum, GLenum, GLdouble *);
329f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexGenfv)(GLenum, GLenum, GLfloat *);
330f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexGeniv)(GLenum, GLenum, GLint *);
331f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *);
332f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexParameterfv)(GLenum, GLenum, GLfloat *);
333f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexParameteriv)(GLenum, GLenum, GLint *);
334f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
335f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
336f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLboolean (GLAPIENTRY * IsEnabled)(GLenum);
337f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLboolean (GLAPIENTRY * IsList)(GLuint);
338f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DepthRange)(GLclampd, GLclampd);
339f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
340f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LoadIdentity)(void);
341f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LoadMatrixf)(const GLfloat *);
342f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * LoadMatrixd)(const GLdouble *);
343f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MatrixMode)(GLenum);
344f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MultMatrixf)(const GLfloat *);
345f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * MultMatrixd)(const GLdouble *);
346f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
347f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PopMatrix)(void);
348f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PushMatrix)(void);
349f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rotated)(GLdouble, GLdouble, GLdouble, GLdouble);
350f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat);
351f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Scaled)(GLdouble, GLdouble, GLdouble);
352f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Scalef)(GLfloat, GLfloat, GLfloat);
353f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Translated)(GLdouble, GLdouble, GLdouble);
354f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Translatef)(GLfloat, GLfloat, GLfloat);
355f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Viewport)(GLint, GLint, GLsizei, GLsizei);
356f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ArrayElement)(GLint);
357f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * BindTexture)(GLenum, GLuint);
358f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
359f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DisableClientState)(GLenum);
360f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DrawArrays)(GLenum, GLint, GLsizei);
361f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
362f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EdgeFlagPointer)(GLsizei, const GLvoid *);
363f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * EnableClientState)(GLenum);
364f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * IndexPointer)(GLenum, GLsizei, const GLvoid *);
365f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexub)(GLubyte);
366f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * Indexubv)(const GLubyte *);
367f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * InterleavedArrays)(GLenum, GLsizei, const GLvoid *);
368f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * NormalPointer)(GLenum, GLsizei, const GLvoid *);
369f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PolygonOffset)(GLfloat, GLfloat);
370f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *);
371f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *);
372f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLboolean (GLAPIENTRY * AreTexturesResident)(GLsizei, const GLuint *, GLboolean *);
373f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
374f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
375f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
376f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
377f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * DeleteTextures)(GLsizei, const GLuint *);
378f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GenTextures)(GLsizei, GLuint *);
379f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * GetPointerv)(GLenum, GLvoid **);
380f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLboolean (GLAPIENTRY * IsTexture)(GLuint);
381f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *);
382f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
383f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
384f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PopClientAttrib)(void);
385f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (GLAPIENTRY * PushClientAttrib)(GLbitfield);
386f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org};
387f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
388f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct __GLdispatchTableRec GLDISPATCHTABLE;
389f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
390f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _GLCLTPROCTABLE
391f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
392f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   int cEntries;
393f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   GLDISPATCHTABLE glDispatchTable;
394f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} GLCLTPROCTABLE, * PGLCLTPROCTABLE;
395f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
396f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef VOID (APIENTRY * PFN_SETPROCTABLE)(PGLCLTPROCTABLE);
397f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
398f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**
399f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Presentation data passed to opengl32!wglCbPresentBuffers.
400f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
401f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Pure software drivers don't need to worry about this -- if they stick to the
402f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * GDI API then will integrate with the Desktop Window Manager (DWM) without
403f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * problems. Hardware drivers, however, cannot present directly to the primary
404f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * surface while the DWM is active, as DWM gets exclusive access to the primary
405f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * surface.
406f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
407f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Proper DWM integration requires:
408f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * - advertise the PFD_SUPPORT_COMPOSITION flag
409f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * - redirect glFlush/glfinish/wglSwapBuffers into a surface shared with the
410f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * DWM process.
411f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
412f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * @sa http://www.opengl.org/pipeline/article/vol003_7/
413f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * @sa http://blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx
414f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
415f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _GLCBPRESENTBUFFERSDATA
416f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
417f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
418f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * wglCbPresentBuffers enforces this to be 2.
419f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
420f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DWORD magic1;
421f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
422f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
423f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * wglCbPresentBuffers enforces to be 0 or 1, but it is most commonly
424f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * set to 0.
425f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
426f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DWORD magic2;
427f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
428f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
429f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Locally unique identifier (LUID) of the graphics adapter.
430f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
431f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * This should contain the value returned by D3DKMTOpenAdapterFromHdc. It
432f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * is passed to dwmapi!DwmpDxGetWindowSharedSurface in order to obtain
433f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * the shared surface handle for the bound drawable (window).
434f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
435f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * @sa http://msdn.microsoft.com/en-us/library/ms799177.aspx
436f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
437f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LUID AdapterLuid;
438f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
439f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
440f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * This is passed unmodified to DrvPresentBuffers
441f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
442f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LPVOID pPrivateData;
443f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
444f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
445f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Client area rectangle to update, relative to the window upper-left corner.
446f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
447f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   RECT rect;
448f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} GLCBPRESENTBUFFERSDATA, *PGLCBPRESENTBUFFERSDATA;
449f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
450f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/**
451f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Callbacks supplied to DrvSetCallbackProcs by the OpenGL runtime.
452f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org *
453f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Pointers to several callback functions in opengl32.dll.
454f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */
455f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _GLCALLBACKTABLE
456f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
457f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
458f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Set per-thread driver private data.
459f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
460f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Unused.
461f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    **/
462f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void (APIENTRY *wglCbSetCurrentValue)(void *pvData);
463f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
464f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
465f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Get per-thread private data.
466f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
467f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Unused.
468f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
469f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   void * (APIENTRY *wglCbGetCurrentValue)(void);
470f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
471f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
472f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Get the ICD GHGLRC handle corresponding to the specified hglrc handle.
473f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
474f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Currently unused.
475f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
476f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC (APIENTRY *wglCbGetDhglrc)(HGLRC hglrc);
477f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
478f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /** Unused */
479f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   PROC wglCbGetDdHandle;
480f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
481f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
482f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Queue a present composition.
483f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
484f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Makes the runtime call DrvPresentBuffers with the composition information.
485f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
486f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   BOOL (APIENTRY *wglCbPresentBuffers)(HDC hdc, PGLCBPRESENTBUFFERSDATA data);
487f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
488f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} GLCALLBACKTABLE;
489f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
490f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgtypedef struct _GLPRESENTBUFFERSDATA
491f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{
492f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
493f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * The shared surface handle.
494f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
495f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Return by dwmapi!DwmpDxGetWindowSharedSurface.
496f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
497f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * @sa http://channel9.msdn.com/forums/TechOff/251261-Help-Getting-the-shared-window-texture-out-of-DWM-/
498f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
499f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HANDLE hSharedSurface;
500f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
501f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LUID AdapterLuid;
502f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
503f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /**
504f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * Present history token.
505f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
506f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * This is returned by dwmapi!DwmpDxGetWindowSharedSurface and
507f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * should be passed to D3DKMTRender in D3DKMT_RENDER::PresentHistoryToken.
508f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    *
509f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    * @sa http://msdn.microsoft.com/en-us/library/ms799176.aspx
510f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org    */
511f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   ULONGLONG PresentHistoryToken;
512f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
513f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   /** Same as GLCBPRESENTBUFFERSDATA::pPrivateData */
514f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LPVOID pPrivateData;
515f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} GLPRESENTBUFFERSDATA, *PGLPRESENTBUFFERSDATA;
516f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
517f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
518f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvCopyContext(
519f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhrcSource,
520f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhrcDest,
521f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   UINT fuMask );
522f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
523f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDHGLRC APIENTRY
524f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvCreateLayerContext(
525f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
526f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iLayerPlane );
527f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
528f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDHGLRC APIENTRY
529f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvCreateContext(
530f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc );
531f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
532f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
533f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvDeleteContext(
534f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhglrc );
535f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
536f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
537f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvDescribeLayerPlane(
538f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
539f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iPixelFormat,
540f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iLayerPlane,
541f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   UINT nBytes,
542f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LPLAYERPLANEDESCRIPTOR plpd );
543f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
544f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgLONG APIENTRY
545f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvDescribePixelFormat(
546f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
547f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iPixelFormat,
548f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   ULONG cjpfd,
549f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   PIXELFORMATDESCRIPTOR *ppfd );
550f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
551f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint APIENTRY
552f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvGetLayerPaletteEntries(
553f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
554f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iLayerPlane,
555f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iStart,
556f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT cEntries,
557f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   COLORREF *pcr );
558f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
559f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgPROC APIENTRY
560f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvGetProcAddress(
561f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LPCSTR lpszProc );
562f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
563f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
564f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data);
565f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
566f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
567f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvRealizeLayerPalette(
568f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
569f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iLayerPlane,
570f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   BOOL bRealize );
571f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
572f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
573f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvReleaseContext(
574f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhglrc );
575f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
576f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgvoid APIENTRY
577f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSetCallbackProcs(
578f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT nProcs,
579f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   PROC *pProcs );
580f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
581f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgPGLCLTPROCTABLE APIENTRY
582f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSetContext(
583f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
584f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhglrc,
585f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   PFN_SETPROCTABLE pfnSetProcTable );
586f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
587f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgint APIENTRY
588f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSetLayerPaletteEntries(
589f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
590f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iLayerPlane,
591f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT iStart,
592f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   INT cEntries,
593f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   CONST COLORREF *pcr );
594f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
595f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
596f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSetPixelFormat(
597f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
598f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   LONG iPixelFormat );
599f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
600f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
601f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvShareLists(
602f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhglrc1,
603f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   DHGLRC dhglrc2 );
604f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
605f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
606f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSwapBuffers(
607f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc );
608f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
609f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
610f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvSwapLayerBuffers(
611f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   HDC hdc,
612f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   UINT fuPlanes );
613f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
614f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgBOOL APIENTRY
615f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgDrvValidateVersion(
616f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org   ULONG ulVersion );
617f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org
618f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif /* STW_ICD_H */
619