| /************************************************************************** |
| * |
| * Copyright 2008-2009 Vmware, Inc. |
| * All Rights Reserved. |
| * |
| * Permission is hereby granted, free of charge, to any person obtaining a |
| * copy of this software and associated documentation files (the |
| * "Software"), to deal in the Software without restriction, including |
| * without limitation the rights to use, copy, modify, merge, publish, |
| * distribute, sub license, and/or sell copies of the Software, and to |
| * permit persons to whom the Software is furnished to do so, subject to |
| * the following conditions: |
| * |
| * The above copyright notice and this permission notice (including the |
| * next paragraph) shall be included in all copies or substantial portions |
| * of the Software. |
| * |
| * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS |
| * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
| * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. |
| * IN NO EVENT SHALL VMWARE AND/OR ITS SUPPLIERS BE LIABLE FOR |
| * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
| * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
| * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
| * |
| **************************************************************************/ |
| |
| /** |
| * @file |
| * |
| * This header defines the interface used by the system's opengl32.dll and the |
| * Installable Client Driver (ICD). |
| */ |
| |
| #ifndef STW_ICD_H |
| #define STW_ICD_H |
| |
| |
| #include <windows.h> |
| |
| #include "GL/gl.h" |
| |
| |
| typedef ULONG DHGLRC; |
| |
| #define OPENGL_VERSION_110_ENTRIES 336 |
| |
| struct __GLdispatchTableRec |
| { |
| void (GLAPIENTRY * NewList)(GLuint, GLenum); |
| void (GLAPIENTRY * EndList)(void); |
| void (GLAPIENTRY * CallList)(GLuint); |
| void (GLAPIENTRY * CallLists)(GLsizei, GLenum, const GLvoid *); |
| void (GLAPIENTRY * DeleteLists)(GLuint, GLsizei); |
| GLuint (GLAPIENTRY * GenLists)(GLsizei); |
| void (GLAPIENTRY * ListBase)(GLuint); |
| void (GLAPIENTRY * Begin)(GLenum); |
| void (GLAPIENTRY * Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *); |
| void (GLAPIENTRY * Color3b)(GLbyte, GLbyte, GLbyte); |
| void (GLAPIENTRY * Color3bv)(const GLbyte *); |
| void (GLAPIENTRY * Color3d)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Color3dv)(const GLdouble *); |
| void (GLAPIENTRY * Color3f)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Color3fv)(const GLfloat *); |
| void (GLAPIENTRY * Color3i)(GLint, GLint, GLint); |
| void (GLAPIENTRY * Color3iv)(const GLint *); |
| void (GLAPIENTRY * Color3s)(GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Color3sv)(const GLshort *); |
| void (GLAPIENTRY * Color3ub)(GLubyte, GLubyte, GLubyte); |
| void (GLAPIENTRY * Color3ubv)(const GLubyte *); |
| void (GLAPIENTRY * Color3ui)(GLuint, GLuint, GLuint); |
| void (GLAPIENTRY * Color3uiv)(const GLuint *); |
| void (GLAPIENTRY * Color3us)(GLushort, GLushort, GLushort); |
| void (GLAPIENTRY * Color3usv)(const GLushort *); |
| void (GLAPIENTRY * Color4b)(GLbyte, GLbyte, GLbyte, GLbyte); |
| void (GLAPIENTRY * Color4bv)(const GLbyte *); |
| void (GLAPIENTRY * Color4d)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Color4dv)(const GLdouble *); |
| void (GLAPIENTRY * Color4f)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Color4fv)(const GLfloat *); |
| void (GLAPIENTRY * Color4i)(GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * Color4iv)(const GLint *); |
| void (GLAPIENTRY * Color4s)(GLshort, GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Color4sv)(const GLshort *); |
| void (GLAPIENTRY * Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte); |
| void (GLAPIENTRY * Color4ubv)(const GLubyte *); |
| void (GLAPIENTRY * Color4ui)(GLuint, GLuint, GLuint, GLuint); |
| void (GLAPIENTRY * Color4uiv)(const GLuint *); |
| void (GLAPIENTRY * Color4us)(GLushort, GLushort, GLushort, GLushort); |
| void (GLAPIENTRY * Color4usv)(const GLushort *); |
| void (GLAPIENTRY * EdgeFlag)(GLboolean); |
| void (GLAPIENTRY * EdgeFlagv)(const GLboolean *); |
| void (GLAPIENTRY * End)(void); |
| void (GLAPIENTRY * Indexd)(GLdouble); |
| void (GLAPIENTRY * Indexdv)(const GLdouble *); |
| void (GLAPIENTRY * Indexf)(GLfloat); |
| void (GLAPIENTRY * Indexfv)(const GLfloat *); |
| void (GLAPIENTRY * Indexi)(GLint); |
| void (GLAPIENTRY * Indexiv)(const GLint *); |
| void (GLAPIENTRY * Indexs)(GLshort); |
| void (GLAPIENTRY * Indexsv)(const GLshort *); |
| void (GLAPIENTRY * Normal3b)(GLbyte, GLbyte, GLbyte); |
| void (GLAPIENTRY * Normal3bv)(const GLbyte *); |
| void (GLAPIENTRY * Normal3d)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Normal3dv)(const GLdouble *); |
| void (GLAPIENTRY * Normal3f)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Normal3fv)(const GLfloat *); |
| void (GLAPIENTRY * Normal3i)(GLint, GLint, GLint); |
| void (GLAPIENTRY * Normal3iv)(const GLint *); |
| void (GLAPIENTRY * Normal3s)(GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Normal3sv)(const GLshort *); |
| void (GLAPIENTRY * RasterPos2d)(GLdouble, GLdouble); |
| void (GLAPIENTRY * RasterPos2dv)(const GLdouble *); |
| void (GLAPIENTRY * RasterPos2f)(GLfloat, GLfloat); |
| void (GLAPIENTRY * RasterPos2fv)(const GLfloat *); |
| void (GLAPIENTRY * RasterPos2i)(GLint, GLint); |
| void (GLAPIENTRY * RasterPos2iv)(const GLint *); |
| void (GLAPIENTRY * RasterPos2s)(GLshort, GLshort); |
| void (GLAPIENTRY * RasterPos2sv)(const GLshort *); |
| void (GLAPIENTRY * RasterPos3d)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * RasterPos3dv)(const GLdouble *); |
| void (GLAPIENTRY * RasterPos3f)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * RasterPos3fv)(const GLfloat *); |
| void (GLAPIENTRY * RasterPos3i)(GLint, GLint, GLint); |
| void (GLAPIENTRY * RasterPos3iv)(const GLint *); |
| void (GLAPIENTRY * RasterPos3s)(GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * RasterPos3sv)(const GLshort *); |
| void (GLAPIENTRY * RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * RasterPos4dv)(const GLdouble *); |
| void (GLAPIENTRY * RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * RasterPos4fv)(const GLfloat *); |
| void (GLAPIENTRY * RasterPos4i)(GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * RasterPos4iv)(const GLint *); |
| void (GLAPIENTRY * RasterPos4s)(GLshort, GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * RasterPos4sv)(const GLshort *); |
| void (GLAPIENTRY * Rectd)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Rectdv)(const GLdouble *, const GLdouble *); |
| void (GLAPIENTRY * Rectf)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Rectfv)(const GLfloat *, const GLfloat *); |
| void (GLAPIENTRY * Recti)(GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * Rectiv)(const GLint *, const GLint *); |
| void (GLAPIENTRY * Rects)(GLshort, GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Rectsv)(const GLshort *, const GLshort *); |
| void (GLAPIENTRY * TexCoord1d)(GLdouble); |
| void (GLAPIENTRY * TexCoord1dv)(const GLdouble *); |
| void (GLAPIENTRY * TexCoord1f)(GLfloat); |
| void (GLAPIENTRY * TexCoord1fv)(const GLfloat *); |
| void (GLAPIENTRY * TexCoord1i)(GLint); |
| void (GLAPIENTRY * TexCoord1iv)(const GLint *); |
| void (GLAPIENTRY * TexCoord1s)(GLshort); |
| void (GLAPIENTRY * TexCoord1sv)(const GLshort *); |
| void (GLAPIENTRY * TexCoord2d)(GLdouble, GLdouble); |
| void (GLAPIENTRY * TexCoord2dv)(const GLdouble *); |
| void (GLAPIENTRY * TexCoord2f)(GLfloat, GLfloat); |
| void (GLAPIENTRY * TexCoord2fv)(const GLfloat *); |
| void (GLAPIENTRY * TexCoord2i)(GLint, GLint); |
| void (GLAPIENTRY * TexCoord2iv)(const GLint *); |
| void (GLAPIENTRY * TexCoord2s)(GLshort, GLshort); |
| void (GLAPIENTRY * TexCoord2sv)(const GLshort *); |
| void (GLAPIENTRY * TexCoord3d)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * TexCoord3dv)(const GLdouble *); |
| void (GLAPIENTRY * TexCoord3f)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * TexCoord3fv)(const GLfloat *); |
| void (GLAPIENTRY * TexCoord3i)(GLint, GLint, GLint); |
| void (GLAPIENTRY * TexCoord3iv)(const GLint *); |
| void (GLAPIENTRY * TexCoord3s)(GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * TexCoord3sv)(const GLshort *); |
| void (GLAPIENTRY * TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * TexCoord4dv)(const GLdouble *); |
| void (GLAPIENTRY * TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * TexCoord4fv)(const GLfloat *); |
| void (GLAPIENTRY * TexCoord4i)(GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * TexCoord4iv)(const GLint *); |
| void (GLAPIENTRY * TexCoord4s)(GLshort, GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * TexCoord4sv)(const GLshort *); |
| void (GLAPIENTRY * Vertex2d)(GLdouble, GLdouble); |
| void (GLAPIENTRY * Vertex2dv)(const GLdouble *); |
| void (GLAPIENTRY * Vertex2f)(GLfloat, GLfloat); |
| void (GLAPIENTRY * Vertex2fv)(const GLfloat *); |
| void (GLAPIENTRY * Vertex2i)(GLint, GLint); |
| void (GLAPIENTRY * Vertex2iv)(const GLint *); |
| void (GLAPIENTRY * Vertex2s)(GLshort, GLshort); |
| void (GLAPIENTRY * Vertex2sv)(const GLshort *); |
| void (GLAPIENTRY * Vertex3d)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Vertex3dv)(const GLdouble *); |
| void (GLAPIENTRY * Vertex3f)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Vertex3fv)(const GLfloat *); |
| void (GLAPIENTRY * Vertex3i)(GLint, GLint, GLint); |
| void (GLAPIENTRY * Vertex3iv)(const GLint *); |
| void (GLAPIENTRY * Vertex3s)(GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Vertex3sv)(const GLshort *); |
| void (GLAPIENTRY * Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Vertex4dv)(const GLdouble *); |
| void (GLAPIENTRY * Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Vertex4fv)(const GLfloat *); |
| void (GLAPIENTRY * Vertex4i)(GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * Vertex4iv)(const GLint *); |
| void (GLAPIENTRY * Vertex4s)(GLshort, GLshort, GLshort, GLshort); |
| void (GLAPIENTRY * Vertex4sv)(const GLshort *); |
| void (GLAPIENTRY * ClipPlane)(GLenum, const GLdouble *); |
| void (GLAPIENTRY * ColorMaterial)(GLenum, GLenum); |
| void (GLAPIENTRY * CullFace)(GLenum); |
| void (GLAPIENTRY * Fogf)(GLenum, GLfloat); |
| void (GLAPIENTRY * Fogfv)(GLenum, const GLfloat *); |
| void (GLAPIENTRY * Fogi)(GLenum, GLint); |
| void (GLAPIENTRY * Fogiv)(GLenum, const GLint *); |
| void (GLAPIENTRY * FrontFace)(GLenum); |
| void (GLAPIENTRY * Hint)(GLenum, GLenum); |
| void (GLAPIENTRY * Lightf)(GLenum, GLenum, GLfloat); |
| void (GLAPIENTRY * Lightfv)(GLenum, GLenum, const GLfloat *); |
| void (GLAPIENTRY * Lighti)(GLenum, GLenum, GLint); |
| void (GLAPIENTRY * Lightiv)(GLenum, GLenum, const GLint *); |
| void (GLAPIENTRY * LightModelf)(GLenum, GLfloat); |
| void (GLAPIENTRY * LightModelfv)(GLenum, const GLfloat *); |
| void (GLAPIENTRY * LightModeli)(GLenum, GLint); |
| void (GLAPIENTRY * LightModeliv)(GLenum, const GLint *); |
| void (GLAPIENTRY * LineStipple)(GLint, GLushort); |
| void (GLAPIENTRY * LineWidth)(GLfloat); |
| void (GLAPIENTRY * Materialf)(GLenum, GLenum, GLfloat); |
| void (GLAPIENTRY * Materialfv)(GLenum, GLenum, const GLfloat *); |
| void (GLAPIENTRY * Materiali)(GLenum, GLenum, GLint); |
| void (GLAPIENTRY * Materialiv)(GLenum, GLenum, const GLint *); |
| void (GLAPIENTRY * PointSize)(GLfloat); |
| void (GLAPIENTRY * PolygonMode)(GLenum, GLenum); |
| void (GLAPIENTRY * PolygonStipple)(const GLubyte *); |
| void (GLAPIENTRY * Scissor)(GLint, GLint, GLsizei, GLsizei); |
| void (GLAPIENTRY * ShadeModel)(GLenum); |
| void (GLAPIENTRY * TexParameterf)(GLenum, GLenum, GLfloat); |
| void (GLAPIENTRY * TexParameterfv)(GLenum, GLenum, const GLfloat *); |
| void (GLAPIENTRY * TexParameteri)(GLenum, GLenum, GLint); |
| void (GLAPIENTRY * TexParameteriv)(GLenum, GLenum, const GLint *); |
| void (GLAPIENTRY * TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *); |
| void (GLAPIENTRY * TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); |
| void (GLAPIENTRY * TexEnvf)(GLenum, GLenum, GLfloat); |
| void (GLAPIENTRY * TexEnvfv)(GLenum, GLenum, const GLfloat *); |
| void (GLAPIENTRY * TexEnvi)(GLenum, GLenum, GLint); |
| void (GLAPIENTRY * TexEnviv)(GLenum, GLenum, const GLint *); |
| void (GLAPIENTRY * TexGend)(GLenum, GLenum, GLdouble); |
| void (GLAPIENTRY * TexGendv)(GLenum, GLenum, const GLdouble *); |
| void (GLAPIENTRY * TexGenf)(GLenum, GLenum, GLfloat); |
| void (GLAPIENTRY * TexGenfv)(GLenum, GLenum, const GLfloat *); |
| void (GLAPIENTRY * TexGeni)(GLenum, GLenum, GLint); |
| void (GLAPIENTRY * TexGeniv)(GLenum, GLenum, const GLint *); |
| void (GLAPIENTRY * FeedbackBuffer)(GLsizei, GLenum, GLfloat *); |
| void (GLAPIENTRY * SelectBuffer)(GLsizei, GLuint *); |
| GLint (GLAPIENTRY * RenderMode)(GLenum); |
| void (GLAPIENTRY * InitNames)(void); |
| void (GLAPIENTRY * LoadName)(GLuint); |
| void (GLAPIENTRY * PassThrough)(GLfloat); |
| void (GLAPIENTRY * PopName)(void); |
| void (GLAPIENTRY * PushName)(GLuint); |
| void (GLAPIENTRY * DrawBuffer)(GLenum); |
| void (GLAPIENTRY * Clear)(GLbitfield); |
| void (GLAPIENTRY * ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * ClearIndex)(GLfloat); |
| void (GLAPIENTRY * ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf); |
| void (GLAPIENTRY * ClearStencil)(GLint); |
| void (GLAPIENTRY * ClearDepth)(GLclampd); |
| void (GLAPIENTRY * StencilMask)(GLuint); |
| void (GLAPIENTRY * ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean); |
| void (GLAPIENTRY * DepthMask)(GLboolean); |
| void (GLAPIENTRY * IndexMask)(GLuint); |
| void (GLAPIENTRY * Accum)(GLenum, GLfloat); |
| void (GLAPIENTRY * Disable)(GLenum); |
| void (GLAPIENTRY * Enable)(GLenum); |
| void (GLAPIENTRY * Finish)(void); |
| void (GLAPIENTRY * Flush)(void); |
| void (GLAPIENTRY * PopAttrib)(void); |
| void (GLAPIENTRY * PushAttrib)(GLbitfield); |
| void (GLAPIENTRY * Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *); |
| void (GLAPIENTRY * Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *); |
| void (GLAPIENTRY * Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *); |
| void (GLAPIENTRY * Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *); |
| void (GLAPIENTRY * MapGrid1d)(GLint, GLdouble, GLdouble); |
| void (GLAPIENTRY * MapGrid1f)(GLint, GLfloat, GLfloat); |
| void (GLAPIENTRY * MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble); |
| void (GLAPIENTRY * MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat); |
| void (GLAPIENTRY * EvalCoord1d)(GLdouble); |
| void (GLAPIENTRY * EvalCoord1dv)(const GLdouble *); |
| void (GLAPIENTRY * EvalCoord1f)(GLfloat); |
| void (GLAPIENTRY * EvalCoord1fv)(const GLfloat *); |
| void (GLAPIENTRY * EvalCoord2d)(GLdouble, GLdouble); |
| void (GLAPIENTRY * EvalCoord2dv)(const GLdouble *); |
| void (GLAPIENTRY * EvalCoord2f)(GLfloat, GLfloat); |
| void (GLAPIENTRY * EvalCoord2fv)(const GLfloat *); |
| void (GLAPIENTRY * EvalMesh1)(GLenum, GLint, GLint); |
| void (GLAPIENTRY * EvalPoint1)(GLint); |
| void (GLAPIENTRY * EvalMesh2)(GLenum, GLint, GLint, GLint, GLint); |
| void (GLAPIENTRY * EvalPoint2)(GLint, GLint); |
| void (GLAPIENTRY * AlphaFunc)(GLenum, GLclampf); |
| void (GLAPIENTRY * BlendFunc)(GLenum, GLenum); |
| void (GLAPIENTRY * LogicOp)(GLenum); |
| void (GLAPIENTRY * StencilFunc)(GLenum, GLint, GLuint); |
| void (GLAPIENTRY * StencilOp)(GLenum, GLenum, GLenum); |
| void (GLAPIENTRY * DepthFunc)(GLenum); |
| void (GLAPIENTRY * PixelZoom)(GLfloat, GLfloat); |
| void (GLAPIENTRY * PixelTransferf)(GLenum, GLfloat); |
| void (GLAPIENTRY * PixelTransferi)(GLenum, GLint); |
| void (GLAPIENTRY * PixelStoref)(GLenum, GLfloat); |
| void (GLAPIENTRY * PixelStorei)(GLenum, GLint); |
| void (GLAPIENTRY * PixelMapfv)(GLenum, GLint, const GLfloat *); |
| void (GLAPIENTRY * PixelMapuiv)(GLenum, GLint, const GLuint *); |
| void (GLAPIENTRY * PixelMapusv)(GLenum, GLint, const GLushort *); |
| void (GLAPIENTRY * ReadBuffer)(GLenum); |
| void (GLAPIENTRY * CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum); |
| void (GLAPIENTRY * ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *); |
| void (GLAPIENTRY * DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); |
| void (GLAPIENTRY * GetBooleanv)(GLenum, GLboolean *); |
| void (GLAPIENTRY * GetClipPlane)(GLenum, GLdouble *); |
| void (GLAPIENTRY * GetDoublev)(GLenum, GLdouble *); |
| GLenum (GLAPIENTRY * GetError)(void); |
| void (GLAPIENTRY * GetFloatv)(GLenum, GLfloat *); |
| void (GLAPIENTRY * GetIntegerv)(GLenum, GLint *); |
| void (GLAPIENTRY * GetLightfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetLightiv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetMapdv)(GLenum, GLenum, GLdouble *); |
| void (GLAPIENTRY * GetMapfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetMapiv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetMaterialfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetMaterialiv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetPixelMapfv)(GLenum, GLfloat *); |
| void (GLAPIENTRY * GetPixelMapuiv)(GLenum, GLuint *); |
| void (GLAPIENTRY * GetPixelMapusv)(GLenum, GLushort *); |
| void (GLAPIENTRY * GetPolygonStipple)(GLubyte *); |
| const GLubyte * (GLAPIENTRY * GetString)(GLenum); |
| void (GLAPIENTRY * GetTexEnvfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetTexEnviv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetTexGendv)(GLenum, GLenum, GLdouble *); |
| void (GLAPIENTRY * GetTexGenfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetTexGeniv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetTexImage)(GLenum, GLint, GLenum, GLenum, GLvoid *); |
| void (GLAPIENTRY * GetTexParameterfv)(GLenum, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetTexParameteriv)(GLenum, GLenum, GLint *); |
| void (GLAPIENTRY * GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *); |
| void (GLAPIENTRY * GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *); |
| GLboolean (GLAPIENTRY * IsEnabled)(GLenum); |
| GLboolean (GLAPIENTRY * IsList)(GLuint); |
| void (GLAPIENTRY * DepthRange)(GLclampd, GLclampd); |
| void (GLAPIENTRY * Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * LoadIdentity)(void); |
| void (GLAPIENTRY * LoadMatrixf)(const GLfloat *); |
| void (GLAPIENTRY * LoadMatrixd)(const GLdouble *); |
| void (GLAPIENTRY * MatrixMode)(GLenum); |
| void (GLAPIENTRY * MultMatrixf)(const GLfloat *); |
| void (GLAPIENTRY * MultMatrixd)(const GLdouble *); |
| void (GLAPIENTRY * Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * PopMatrix)(void); |
| void (GLAPIENTRY * PushMatrix)(void); |
| void (GLAPIENTRY * Rotated)(GLdouble, GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Scaled)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Scalef)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Translated)(GLdouble, GLdouble, GLdouble); |
| void (GLAPIENTRY * Translatef)(GLfloat, GLfloat, GLfloat); |
| void (GLAPIENTRY * Viewport)(GLint, GLint, GLsizei, GLsizei); |
| void (GLAPIENTRY * ArrayElement)(GLint); |
| void (GLAPIENTRY * BindTexture)(GLenum, GLuint); |
| void (GLAPIENTRY * ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *); |
| void (GLAPIENTRY * DisableClientState)(GLenum); |
| void (GLAPIENTRY * DrawArrays)(GLenum, GLint, GLsizei); |
| void (GLAPIENTRY * DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *); |
| void (GLAPIENTRY * EdgeFlagPointer)(GLsizei, const GLvoid *); |
| void (GLAPIENTRY * EnableClientState)(GLenum); |
| void (GLAPIENTRY * IndexPointer)(GLenum, GLsizei, const GLvoid *); |
| void (GLAPIENTRY * Indexub)(GLubyte); |
| void (GLAPIENTRY * Indexubv)(const GLubyte *); |
| void (GLAPIENTRY * InterleavedArrays)(GLenum, GLsizei, const GLvoid *); |
| void (GLAPIENTRY * NormalPointer)(GLenum, GLsizei, const GLvoid *); |
| void (GLAPIENTRY * PolygonOffset)(GLfloat, GLfloat); |
| void (GLAPIENTRY * TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *); |
| void (GLAPIENTRY * VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *); |
| GLboolean (GLAPIENTRY * AreTexturesResident)(GLsizei, const GLuint *, GLboolean *); |
| void (GLAPIENTRY * CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); |
| void (GLAPIENTRY * CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); |
| void (GLAPIENTRY * CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei); |
| void (GLAPIENTRY * CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); |
| void (GLAPIENTRY * DeleteTextures)(GLsizei, const GLuint *); |
| void (GLAPIENTRY * GenTextures)(GLsizei, GLuint *); |
| void (GLAPIENTRY * GetPointerv)(GLenum, GLvoid **); |
| GLboolean (GLAPIENTRY * IsTexture)(GLuint); |
| void (GLAPIENTRY * PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *); |
| void (GLAPIENTRY * TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); |
| void (GLAPIENTRY * TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); |
| void (GLAPIENTRY * PopClientAttrib)(void); |
| void (GLAPIENTRY * PushClientAttrib)(GLbitfield); |
| }; |
| |
| typedef struct __GLdispatchTableRec GLDISPATCHTABLE; |
| |
| typedef struct _GLCLTPROCTABLE |
| { |
| int cEntries; |
| GLDISPATCHTABLE glDispatchTable; |
| } GLCLTPROCTABLE, * PGLCLTPROCTABLE; |
| |
| typedef VOID (APIENTRY * PFN_SETPROCTABLE)(PGLCLTPROCTABLE); |
| |
| /** |
| * Presentation data passed to opengl32!wglCbPresentBuffers. |
| * |
| * Pure software drivers don't need to worry about this -- if they stick to the |
| * GDI API then will integrate with the Desktop Window Manager (DWM) without |
| * problems. Hardware drivers, however, cannot present directly to the primary |
| * surface while the DWM is active, as DWM gets exclusive access to the primary |
| * surface. |
| * |
| * Proper DWM integration requires: |
| * - advertise the PFD_SUPPORT_COMPOSITION flag |
| * - redirect glFlush/glfinish/wglSwapBuffers into a surface shared with the |
| * DWM process. |
| * |
| * @sa http://www.opengl.org/pipeline/article/vol003_7/ |
| * @sa http://blogs.msdn.com/greg_schechter/archive/2006/05/02/588934.aspx |
| */ |
| typedef struct _GLCBPRESENTBUFFERSDATA |
| { |
| /** |
| * wglCbPresentBuffers enforces this to be 2. |
| */ |
| DWORD magic1; |
| |
| /** |
| * wglCbPresentBuffers enforces to be 0 or 1, but it is most commonly |
| * set to 0. |
| */ |
| DWORD magic2; |
| |
| /** |
| * Locally unique identifier (LUID) of the graphics adapter. |
| * |
| * This should contain the value returned by D3DKMTOpenAdapterFromHdc. It |
| * is passed to dwmapi!DwmpDxGetWindowSharedSurface in order to obtain |
| * the shared surface handle for the bound drawable (window). |
| * |
| * @sa http://msdn.microsoft.com/en-us/library/ms799177.aspx |
| */ |
| LUID AdapterLuid; |
| |
| /** |
| * This is passed unmodified to DrvPresentBuffers |
| */ |
| LPVOID pPrivateData; |
| |
| /** |
| * Client area rectangle to update, relative to the window upper-left corner. |
| */ |
| RECT rect; |
| } GLCBPRESENTBUFFERSDATA, *PGLCBPRESENTBUFFERSDATA; |
| |
| /** |
| * Callbacks supplied to DrvSetCallbackProcs by the OpenGL runtime. |
| * |
| * Pointers to several callback functions in opengl32.dll. |
| */ |
| typedef struct _GLCALLBACKTABLE |
| { |
| /** |
| * Set per-thread driver private data. |
| * |
| * Unused. |
| **/ |
| void (APIENTRY *wglCbSetCurrentValue)(void *pvData); |
| |
| /** |
| * Get per-thread private data. |
| * |
| * Unused. |
| */ |
| void * (APIENTRY *wglCbGetCurrentValue)(void); |
| |
| /** |
| * Get the ICD GHGLRC handle corresponding to the specified hglrc handle. |
| * |
| * Currently unused. |
| */ |
| DHGLRC (APIENTRY *wglCbGetDhglrc)(HGLRC hglrc); |
| |
| /** Unused */ |
| PROC wglCbGetDdHandle; |
| |
| /** |
| * Queue a present composition. |
| * |
| * Makes the runtime call DrvPresentBuffers with the composition information. |
| */ |
| BOOL (APIENTRY *wglCbPresentBuffers)(HDC hdc, PGLCBPRESENTBUFFERSDATA data); |
| |
| } GLCALLBACKTABLE; |
| |
| typedef struct _GLPRESENTBUFFERSDATA |
| { |
| /** |
| * The shared surface handle. |
| * |
| * Return by dwmapi!DwmpDxGetWindowSharedSurface. |
| * |
| * @sa http://channel9.msdn.com/forums/TechOff/251261-Help-Getting-the-shared-window-texture-out-of-DWM-/ |
| */ |
| HANDLE hSharedSurface; |
| |
| LUID AdapterLuid; |
| |
| /** |
| * Present history token. |
| * |
| * This is returned by dwmapi!DwmpDxGetWindowSharedSurface and |
| * should be passed to D3DKMTRender in D3DKMT_RENDER::PresentHistoryToken. |
| * |
| * @sa http://msdn.microsoft.com/en-us/library/ms799176.aspx |
| */ |
| ULONGLONG PresentHistoryToken; |
| |
| /** Same as GLCBPRESENTBUFFERSDATA::pPrivateData */ |
| LPVOID pPrivateData; |
| } GLPRESENTBUFFERSDATA, *PGLPRESENTBUFFERSDATA; |
| |
| BOOL APIENTRY |
| DrvCopyContext( |
| DHGLRC dhrcSource, |
| DHGLRC dhrcDest, |
| UINT fuMask ); |
| |
| DHGLRC APIENTRY |
| DrvCreateLayerContext( |
| HDC hdc, |
| INT iLayerPlane ); |
| |
| DHGLRC APIENTRY |
| DrvCreateContext( |
| HDC hdc ); |
| |
| BOOL APIENTRY |
| DrvDeleteContext( |
| DHGLRC dhglrc ); |
| |
| BOOL APIENTRY |
| DrvDescribeLayerPlane( |
| HDC hdc, |
| INT iPixelFormat, |
| INT iLayerPlane, |
| UINT nBytes, |
| LPLAYERPLANEDESCRIPTOR plpd ); |
| |
| LONG APIENTRY |
| DrvDescribePixelFormat( |
| HDC hdc, |
| INT iPixelFormat, |
| ULONG cjpfd, |
| PIXELFORMATDESCRIPTOR *ppfd ); |
| |
| int APIENTRY |
| DrvGetLayerPaletteEntries( |
| HDC hdc, |
| INT iLayerPlane, |
| INT iStart, |
| INT cEntries, |
| COLORREF *pcr ); |
| |
| PROC APIENTRY |
| DrvGetProcAddress( |
| LPCSTR lpszProc ); |
| |
| BOOL APIENTRY |
| DrvPresentBuffers(HDC hdc, PGLPRESENTBUFFERSDATA data); |
| |
| BOOL APIENTRY |
| DrvRealizeLayerPalette( |
| HDC hdc, |
| INT iLayerPlane, |
| BOOL bRealize ); |
| |
| BOOL APIENTRY |
| DrvReleaseContext( |
| DHGLRC dhglrc ); |
| |
| void APIENTRY |
| DrvSetCallbackProcs( |
| INT nProcs, |
| PROC *pProcs ); |
| |
| PGLCLTPROCTABLE APIENTRY |
| DrvSetContext( |
| HDC hdc, |
| DHGLRC dhglrc, |
| PFN_SETPROCTABLE pfnSetProcTable ); |
| |
| int APIENTRY |
| DrvSetLayerPaletteEntries( |
| HDC hdc, |
| INT iLayerPlane, |
| INT iStart, |
| INT cEntries, |
| CONST COLORREF *pcr ); |
| |
| BOOL APIENTRY |
| DrvSetPixelFormat( |
| HDC hdc, |
| LONG iPixelFormat ); |
| |
| BOOL APIENTRY |
| DrvShareLists( |
| DHGLRC dhglrc1, |
| DHGLRC dhglrc2 ); |
| |
| BOOL APIENTRY |
| DrvSwapBuffers( |
| HDC hdc ); |
| |
| BOOL APIENTRY |
| DrvSwapLayerBuffers( |
| HDC hdc, |
| UINT fuPlanes ); |
| |
| BOOL APIENTRY |
| DrvValidateVersion( |
| ULONG ulVersion ); |
| |
| #endif /* STW_ICD_H */ |