]> git.cworth.org Git - apitrace/commitdiff
Trace opengl32.dll.
authorJosé Fonseca <jfonseca@vmware.com>
Mon, 13 Apr 2009 13:08:08 +0000 (14:08 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Mon, 13 Apr 2009 13:08:08 +0000 (14:08 +0100)
.gitignore
SConstruct
gl.py [new file with mode: 0644]
opengl32.def [new file with mode: 0644]
opengl32.py [new file with mode: 0644]
windows.py

index 539519d4f025d491eb73982b2183bdffaf678c51..d39647f6ce1df9e09d506eb026f9af72a57f9e93 100644 (file)
@@ -13,3 +13,4 @@
 *.zip
 d3d8.cpp
 d3d9.cpp
+opengl32.cpp
index 1c308bdad64b1840fabcd2e685c315984562cb47..f98a91d978680668f25f3d1a2145e0d0fb396829 100644 (file)
@@ -123,6 +123,23 @@ if has_d3d9:
 
     env.Default(d3d9)
 
+env.Command(
+    target = 'opengl32.cpp', 
+    source = ['opengl32.py', 'gl.py', 'windows.py', 'base.py'],
+    action = 'python $SOURCE > $TARGET',
+)
+    
+opengl32 = env.SharedLibrary(
+    target = 'opengl32',
+    source = [
+        'opengl32.def',
+        'opengl32.cpp',
+        'log.cpp',
+    ]
+)
+
+env.Default(opengl32)
+
 env.Tool('packaging')
 
 zip = env.Package(
diff --git a/gl.py b/gl.py
new file mode 100644 (file)
index 0000000..5f2f8d8
--- /dev/null
+++ b/gl.py
@@ -0,0 +1,850 @@
+#############################################################################
+#
+# Copyright 2009 VMware, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+from base import *
+
+GLboolean = Enum("GLboolean", ["GL_FALSE", "GL_TRUE"])
+GLvoid = Alias("GLvoid", Void)
+GLbyte = Alias("GLbyte", SChar)
+GLshort = Alias("GLshort", Short)
+GLint = Alias("GLint", Int)
+GLubyte = Alias("GLubyte", UChar)
+GLushort = Alias("GLushort", UShort)
+GLuint = Alias("GLuint", UInt)
+GLsizei = Alias("GLsizei", Int)
+GLfloat = Alias("GLfloat", Float)
+GLclampf = Alias("GLclampf", Float)
+GLdouble = Alias("GLdouble", Double)
+GLclampd = Alias("GLclampd", Double)
+GLbitfield = Alias("GLbitfield", UInt)
+
+GLenum = Enum("GLenum", [
+
+    "GL_BYTE", # 0x1400
+    "GL_UNSIGNED_BYTE", # 0x1401
+    "GL_SHORT", # 0x1402
+    "GL_UNSIGNED_SHORT", # 0x1403
+    "GL_INT", # 0x1404
+    "GL_UNSIGNED_INT", # 0x1405
+    "GL_FLOAT", # 0x1406
+    "GL_2_BYTES", # 0x1407
+    "GL_3_BYTES", # 0x1408
+    "GL_4_BYTES", # 0x1409
+    "GL_DOUBLE", # 0x140A
+
+    "GL_VERTEX_ARRAY", # 0x8074
+    "GL_NORMAL_ARRAY", # 0x8075
+    "GL_COLOR_ARRAY", # 0x8076
+    "GL_INDEX_ARRAY", # 0x8077
+    "GL_TEXTURE_COORD_ARRAY", # 0x8078
+    "GL_EDGE_FLAG_ARRAY", # 0x8079
+    "GL_VERTEX_ARRAY_SIZE", # 0x807A
+    "GL_VERTEX_ARRAY_TYPE", # 0x807B
+    "GL_VERTEX_ARRAY_STRIDE", # 0x807C
+    "GL_NORMAL_ARRAY_TYPE", # 0x807E
+    "GL_NORMAL_ARRAY_STRIDE", # 0x807F
+    "GL_COLOR_ARRAY_SIZE", # 0x8081
+    "GL_COLOR_ARRAY_TYPE", # 0x8082
+    "GL_COLOR_ARRAY_STRIDE", # 0x8083
+    "GL_INDEX_ARRAY_TYPE", # 0x8085
+    "GL_INDEX_ARRAY_STRIDE", # 0x8086
+    "GL_TEXTURE_COORD_ARRAY_SIZE", # 0x8088
+    "GL_TEXTURE_COORD_ARRAY_TYPE", # 0x8089
+    "GL_TEXTURE_COORD_ARRAY_STRIDE", # 0x808A
+    "GL_EDGE_FLAG_ARRAY_STRIDE", # 0x808C
+    "GL_VERTEX_ARRAY_POINTER", # 0x808E
+    "GL_NORMAL_ARRAY_POINTER", # 0x808F
+    "GL_COLOR_ARRAY_POINTER", # 0x8090
+    "GL_INDEX_ARRAY_POINTER", # 0x8091
+    "GL_TEXTURE_COORD_ARRAY_POINTER", # 0x8092
+    "GL_EDGE_FLAG_ARRAY_POINTER", # 0x8093
+    "GL_V2F", # 0x2A20
+    "GL_V3F", # 0x2A21
+    "GL_C4UB_V2F", # 0x2A22
+    "GL_C4UB_V3F", # 0x2A23
+    "GL_C3F_V3F", # 0x2A24
+    "GL_N3F_V3F", # 0x2A25
+    "GL_C4F_N3F_V3F", # 0x2A26
+    "GL_T2F_V3F", # 0x2A27
+    "GL_T4F_V4F", # 0x2A28
+    "GL_T2F_C4UB_V3F", # 0x2A29
+    "GL_T2F_C3F_V3F", # 0x2A2A
+    "GL_T2F_N3F_V3F", # 0x2A2B
+    "GL_T2F_C4F_N3F_V3F", # 0x2A2C
+    "GL_T4F_C4F_N3F_V4F", # 0x2A2D
+
+    "GL_MATRIX_MODE", # 0x0BA0
+    "GL_MODELVIEW", # 0x1700
+    "GL_PROJECTION", # 0x1701
+    "GL_TEXTURE", # 0x1702
+
+    "GL_POINT_SMOOTH", # 0x0B10
+    "GL_POINT_SIZE", # 0x0B11
+    "GL_POINT_SIZE_GRANULARITY", # 0x0B13
+    "GL_POINT_SIZE_RANGE", # 0x0B12
+
+    "GL_LINE_SMOOTH", # 0x0B20
+    "GL_LINE_STIPPLE", # 0x0B24
+    "GL_LINE_STIPPLE_PATTERN", # 0x0B25
+    "GL_LINE_STIPPLE_REPEAT", # 0x0B26
+    "GL_LINE_WIDTH", # 0x0B21
+    "GL_LINE_WIDTH_GRANULARITY", # 0x0B23
+    "GL_LINE_WIDTH_RANGE", # 0x0B22
+
+    "GL_POINT", # 0x1B00
+    "GL_LINE", # 0x1B01
+    "GL_FILL", # 0x1B02
+    "GL_CW", # 0x0900
+    "GL_CCW", # 0x0901
+    "GL_POLYGON_MODE", # 0x0B40
+    "GL_POLYGON_SMOOTH", # 0x0B41
+    "GL_POLYGON_STIPPLE", # 0x0B42
+    "GL_EDGE_FLAG", # 0x0B43
+    "GL_CULL_FACE", # 0x0B44
+    "GL_CULL_FACE_MODE", # 0x0B45
+    "GL_FRONT_FACE", # 0x0B46
+    "GL_POLYGON_OFFSET_FACTOR", # 0x8038
+    "GL_POLYGON_OFFSET_UNITS", # 0x2A00
+    "GL_POLYGON_OFFSET_POINT", # 0x2A01
+    "GL_POLYGON_OFFSET_LINE", # 0x2A02
+    "GL_POLYGON_OFFSET_FILL", # 0x8037
+
+    "GL_COMPILE", # 0x1300
+    "GL_COMPILE_AND_EXECUTE", # 0x1301
+    "GL_LIST_BASE", # 0x0B32
+    "GL_LIST_INDEX", # 0x0B33
+    "GL_LIST_MODE", # 0x0B30
+
+    "GL_NEVER", # 0x0200
+    "GL_LESS", # 0x0201
+    "GL_EQUAL", # 0x0202
+    "GL_LEQUAL", # 0x0203
+    "GL_GREATER", # 0x0204
+    "GL_NOTEQUAL", # 0x0205
+    "GL_GEQUAL", # 0x0206
+    "GL_ALWAYS", # 0x0207
+    "GL_DEPTH_TEST", # 0x0B71
+    "GL_DEPTH_BITS", # 0x0D56
+    "GL_DEPTH_CLEAR_VALUE", # 0x0B73
+    "GL_DEPTH_FUNC", # 0x0B74
+    "GL_DEPTH_RANGE", # 0x0B70
+    "GL_DEPTH_WRITEMASK", # 0x0B72
+    "GL_DEPTH_COMPONENT", # 0x1902
+
+    "GL_LIGHTING", # 0x0B50
+    "GL_LIGHT0", # 0x4000
+    "GL_LIGHT1", # 0x4001
+    "GL_LIGHT2", # 0x4002
+    "GL_LIGHT3", # 0x4003
+    "GL_LIGHT4", # 0x4004
+    "GL_LIGHT5", # 0x4005
+    "GL_LIGHT6", # 0x4006
+    "GL_LIGHT7", # 0x4007
+    "GL_SPOT_EXPONENT", # 0x1205
+    "GL_SPOT_CUTOFF", # 0x1206
+    "GL_CONSTANT_ATTENUATION", # 0x1207
+    "GL_LINEAR_ATTENUATION", # 0x1208
+    "GL_QUADRATIC_ATTENUATION", # 0x1209
+    "GL_AMBIENT", # 0x1200
+    "GL_DIFFUSE", # 0x1201
+    "GL_SPECULAR", # 0x1202
+    "GL_SHININESS", # 0x1601
+    "GL_EMISSION", # 0x1600
+    "GL_POSITION", # 0x1203
+    "GL_SPOT_DIRECTION", # 0x1204
+    "GL_AMBIENT_AND_DIFFUSE", # 0x1602
+    "GL_COLOR_INDEXES", # 0x1603
+    "GL_LIGHT_MODEL_TWO_SIDE", # 0x0B52
+    "GL_LIGHT_MODEL_LOCAL_VIEWER", # 0x0B51
+    "GL_LIGHT_MODEL_AMBIENT", # 0x0B53
+    "GL_SHADE_MODEL", # 0x0B54
+    "GL_FLAT", # 0x1D00
+    "GL_SMOOTH", # 0x1D01
+    "GL_COLOR_MATERIAL", # 0x0B57
+    "GL_COLOR_MATERIAL_FACE", # 0x0B55
+    "GL_COLOR_MATERIAL_PARAMETER", # 0x0B56
+    "GL_NORMALIZE", # 0x0BA1
+
+    "GL_CLIP_PLANE0", # 0x3000
+    "GL_CLIP_PLANE1", # 0x3001
+    "GL_CLIP_PLANE2", # 0x3002
+    "GL_CLIP_PLANE3", # 0x3003
+    "GL_CLIP_PLANE4", # 0x3004
+    "GL_CLIP_PLANE5", # 0x3005
+
+    "GL_ACCUM_RED_BITS", # 0x0D58
+    "GL_ACCUM_GREEN_BITS", # 0x0D59
+    "GL_ACCUM_BLUE_BITS", # 0x0D5A
+    "GL_ACCUM_ALPHA_BITS", # 0x0D5B
+    "GL_ACCUM_CLEAR_VALUE", # 0x0B80
+    "GL_ACCUM", # 0x0100
+    "GL_ADD", # 0x0104
+    "GL_LOAD", # 0x0101
+    "GL_MULT", # 0x0103
+    "GL_RETURN", # 0x0102
+
+    "GL_ALPHA_TEST", # 0x0BC0
+    "GL_ALPHA_TEST_REF", # 0x0BC2
+    "GL_ALPHA_TEST_FUNC", # 0x0BC1
+
+    "GL_BLEND", # 0x0BE2
+    "GL_BLEND_SRC", # 0x0BE1
+    "GL_BLEND_DST", # 0x0BE0
+    "GL_ZERO", # 0x0
+    "GL_ONE", # 0x1
+    "GL_SRC_COLOR", # 0x0300
+    "GL_ONE_MINUS_SRC_COLOR", # 0x0301
+    "GL_SRC_ALPHA", # 0x0302
+    "GL_ONE_MINUS_SRC_ALPHA", # 0x0303
+    "GL_DST_ALPHA", # 0x0304
+    "GL_ONE_MINUS_DST_ALPHA", # 0x0305
+    "GL_DST_COLOR", # 0x0306
+    "GL_ONE_MINUS_DST_COLOR", # 0x0307
+    "GL_SRC_ALPHA_SATURATE", # 0x0308
+
+    "GL_FEEDBACK", # 0x1C01
+    "GL_RENDER", # 0x1C00
+    "GL_SELECT", # 0x1C02
+
+    "GL_2D", # 0x0600
+    "GL_3D", # 0x0601
+    "GL_3D_COLOR", # 0x0602
+    "GL_3D_COLOR_TEXTURE", # 0x0603
+    "GL_4D_COLOR_TEXTURE", # 0x0604
+    "GL_POINT_TOKEN", # 0x0701
+    "GL_LINE_TOKEN", # 0x0702
+    "GL_LINE_RESET_TOKEN", # 0x0707
+    "GL_POLYGON_TOKEN", # 0x0703
+    "GL_BITMAP_TOKEN", # 0x0704
+    "GL_DRAW_PIXEL_TOKEN", # 0x0705
+    "GL_COPY_PIXEL_TOKEN", # 0x0706
+    "GL_PASS_THROUGH_TOKEN", # 0x0700
+    "GL_FEEDBACK_BUFFER_POINTER", # 0x0DF0
+    "GL_FEEDBACK_BUFFER_SIZE", # 0x0DF1
+    "GL_FEEDBACK_BUFFER_TYPE", # 0x0DF2
+
+    "GL_SELECTION_BUFFER_POINTER", # 0x0DF3
+    "GL_SELECTION_BUFFER_SIZE", # 0x0DF4
+
+    "GL_FOG", # 0x0B60
+    "GL_FOG_MODE", # 0x0B65
+    "GL_FOG_DENSITY", # 0x0B62
+    "GL_FOG_COLOR", # 0x0B66
+    "GL_FOG_INDEX", # 0x0B61
+    "GL_FOG_START", # 0x0B63
+    "GL_FOG_END", # 0x0B64
+    "GL_LINEAR", # 0x2601
+    "GL_EXP", # 0x0800
+    "GL_EXP2", # 0x0801
+
+    "GL_INDEX_LOGIC_OP", # 0x0BF1
+    "GL_COLOR_LOGIC_OP", # 0x0BF2
+    "GL_LOGIC_OP_MODE", # 0x0BF0
+    "GL_CLEAR", # 0x1500
+    "GL_SET", # 0x150F
+    "GL_COPY", # 0x1503
+    "GL_COPY_INVERTED", # 0x150C
+    "GL_NOOP", # 0x1505
+    "GL_INVERT", # 0x150A
+    "GL_AND", # 0x1501
+    "GL_NAND", # 0x150E
+    "GL_OR", # 0x1507
+    "GL_NOR", # 0x1508
+    "GL_XOR", # 0x1506
+    "GL_EQUIV", # 0x1509
+    "GL_AND_REVERSE", # 0x1502
+    "GL_AND_INVERTED", # 0x1504
+    "GL_OR_REVERSE", # 0x150B
+    "GL_OR_INVERTED", # 0x150D
+
+    "GL_STENCIL_BITS", # 0x0D57
+    "GL_STENCIL_TEST", # 0x0B90
+    "GL_STENCIL_CLEAR_VALUE", # 0x0B91
+    "GL_STENCIL_FUNC", # 0x0B92
+    "GL_STENCIL_VALUE_MASK", # 0x0B93
+    "GL_STENCIL_FAIL", # 0x0B94
+    "GL_STENCIL_PASS_DEPTH_FAIL", # 0x0B95
+    "GL_STENCIL_PASS_DEPTH_PASS", # 0x0B96
+    "GL_STENCIL_REF", # 0x0B97
+    "GL_STENCIL_WRITEMASK", # 0x0B98
+    "GL_STENCIL_INDEX", # 0x1901
+    "GL_KEEP", # 0x1E00
+    "GL_REPLACE", # 0x1E01
+    "GL_INCR", # 0x1E02
+    "GL_DECR", # 0x1E03
+
+    #"GL_NONE", # 0x0
+    "GL_LEFT", # 0x0406
+    "GL_RIGHT", # 0x0407
+    "GL_FRONT", # 0x0404
+    "GL_BACK", # 0x0405
+    "GL_FRONT_AND_BACK", # 0x0408
+    "GL_FRONT_LEFT", # 0x0400
+    "GL_FRONT_RIGHT", # 0x0401
+    "GL_BACK_LEFT", # 0x0402
+    "GL_BACK_RIGHT", # 0x0403
+    "GL_AUX0", # 0x0409
+    "GL_AUX1", # 0x040A
+    "GL_AUX2", # 0x040B
+    "GL_AUX3", # 0x040C
+    "GL_COLOR_INDEX", # 0x1900
+    "GL_RED", # 0x1903
+    "GL_GREEN", # 0x1904
+    "GL_BLUE", # 0x1905
+    "GL_ALPHA", # 0x1906
+    "GL_LUMINANCE", # 0x1909
+    "GL_LUMINANCE_ALPHA", # 0x190A
+    "GL_ALPHA_BITS", # 0x0D55
+    "GL_RED_BITS", # 0x0D52
+    "GL_GREEN_BITS", # 0x0D53
+    "GL_BLUE_BITS", # 0x0D54
+    "GL_INDEX_BITS", # 0x0D51
+    "GL_SUBPIXEL_BITS", # 0x0D50
+    "GL_AUX_BUFFERS", # 0x0C00
+    "GL_READ_BUFFER", # 0x0C02
+    "GL_DRAW_BUFFER", # 0x0C01
+    "GL_DOUBLEBUFFER", # 0x0C32
+    "GL_STEREO", # 0x0C33
+    "GL_BITMAP", # 0x1A00
+    "GL_COLOR", # 0x1800
+    "GL_DEPTH", # 0x1801
+    "GL_STENCIL", # 0x1802
+    "GL_DITHER", # 0x0BD0
+    "GL_RGB", # 0x1907
+    "GL_RGBA", # 0x1908
+
+    "GL_MAX_LIST_NESTING", # 0x0B31
+    "GL_MAX_EVAL_ORDER", # 0x0D30
+    "GL_MAX_LIGHTS", # 0x0D31
+    "GL_MAX_CLIP_PLANES", # 0x0D32
+    "GL_MAX_TEXTURE_SIZE", # 0x0D33
+    "GL_MAX_PIXEL_MAP_TABLE", # 0x0D34
+    "GL_MAX_ATTRIB_STACK_DEPTH", # 0x0D35
+    "GL_MAX_MODELVIEW_STACK_DEPTH", # 0x0D36
+    "GL_MAX_NAME_STACK_DEPTH", # 0x0D37
+    "GL_MAX_PROJECTION_STACK_DEPTH", # 0x0D38
+    "GL_MAX_TEXTURE_STACK_DEPTH", # 0x0D39
+    "GL_MAX_VIEWPORT_DIMS", # 0x0D3A
+    "GL_MAX_CLIENT_ATTRIB_STACK_DEPTH", # 0x0D3B
+
+    "GL_ATTRIB_STACK_DEPTH", # 0x0BB0
+    "GL_CLIENT_ATTRIB_STACK_DEPTH", # 0x0BB1
+    "GL_COLOR_CLEAR_VALUE", # 0x0C22
+    "GL_COLOR_WRITEMASK", # 0x0C23
+    "GL_CURRENT_INDEX", # 0x0B01
+    "GL_CURRENT_COLOR", # 0x0B00
+    "GL_CURRENT_NORMAL", # 0x0B02
+    "GL_CURRENT_RASTER_COLOR", # 0x0B04
+    "GL_CURRENT_RASTER_DISTANCE", # 0x0B09
+    "GL_CURRENT_RASTER_INDEX", # 0x0B05
+    "GL_CURRENT_RASTER_POSITION", # 0x0B07
+    "GL_CURRENT_RASTER_TEXTURE_COORDS", # 0x0B06
+    "GL_CURRENT_RASTER_POSITION_VALID", # 0x0B08
+    "GL_CURRENT_TEXTURE_COORDS", # 0x0B03
+    "GL_INDEX_CLEAR_VALUE", # 0x0C20
+    "GL_INDEX_MODE", # 0x0C30
+    "GL_INDEX_WRITEMASK", # 0x0C21
+    "GL_MODELVIEW_MATRIX", # 0x0BA6
+    "GL_MODELVIEW_STACK_DEPTH", # 0x0BA3
+    "GL_NAME_STACK_DEPTH", # 0x0D70
+    "GL_PROJECTION_MATRIX", # 0x0BA7
+    "GL_PROJECTION_STACK_DEPTH", # 0x0BA4
+    "GL_RENDER_MODE", # 0x0C40
+    "GL_RGBA_MODE", # 0x0C31
+    "GL_TEXTURE_MATRIX", # 0x0BA8
+    "GL_TEXTURE_STACK_DEPTH", # 0x0BA5
+    "GL_VIEWPORT", # 0x0BA2
+
+    "GL_AUTO_NORMAL", # 0x0D80
+    "GL_MAP1_COLOR_4", # 0x0D90
+    "GL_MAP1_INDEX", # 0x0D91
+    "GL_MAP1_NORMAL", # 0x0D92
+    "GL_MAP1_TEXTURE_COORD_1", # 0x0D93
+    "GL_MAP1_TEXTURE_COORD_2", # 0x0D94
+    "GL_MAP1_TEXTURE_COORD_3", # 0x0D95
+    "GL_MAP1_TEXTURE_COORD_4", # 0x0D96
+    "GL_MAP1_VERTEX_3", # 0x0D97
+    "GL_MAP1_VERTEX_4", # 0x0D98
+    "GL_MAP2_COLOR_4", # 0x0DB0
+    "GL_MAP2_INDEX", # 0x0DB1
+    "GL_MAP2_NORMAL", # 0x0DB2
+    "GL_MAP2_TEXTURE_COORD_1", # 0x0DB3
+    "GL_MAP2_TEXTURE_COORD_2", # 0x0DB4
+    "GL_MAP2_TEXTURE_COORD_3", # 0x0DB5
+    "GL_MAP2_TEXTURE_COORD_4", # 0x0DB6
+    "GL_MAP2_VERTEX_3", # 0x0DB7
+    "GL_MAP2_VERTEX_4", # 0x0DB8
+    "GL_MAP1_GRID_DOMAIN", # 0x0DD0
+    "GL_MAP1_GRID_SEGMENTS", # 0x0DD1
+    "GL_MAP2_GRID_DOMAIN", # 0x0DD2
+    "GL_MAP2_GRID_SEGMENTS", # 0x0DD3
+    "GL_COEFF", # 0x0A00
+    "GL_ORDER", # 0x0A01
+    "GL_DOMAIN", # 0x0A02
+
+    "GL_PERSPECTIVE_CORRECTION_HINT", # 0x0C50
+    "GL_POINT_SMOOTH_HINT", # 0x0C51
+    "GL_LINE_SMOOTH_HINT", # 0x0C52
+    "GL_POLYGON_SMOOTH_HINT", # 0x0C53
+    "GL_FOG_HINT", # 0x0C54
+    "GL_DONT_CARE", # 0x1100
+    "GL_FASTEST", # 0x1101
+    "GL_NICEST", # 0x1102
+
+    "GL_SCISSOR_BOX", # 0x0C10
+    "GL_SCISSOR_TEST", # 0x0C11
+
+    "GL_MAP_COLOR", # 0x0D10
+    "GL_MAP_STENCIL", # 0x0D11
+    "GL_INDEX_SHIFT", # 0x0D12
+    "GL_INDEX_OFFSET", # 0x0D13
+    "GL_RED_SCALE", # 0x0D14
+    "GL_RED_BIAS", # 0x0D15
+    "GL_GREEN_SCALE", # 0x0D18
+    "GL_GREEN_BIAS", # 0x0D19
+    "GL_BLUE_SCALE", # 0x0D1A
+    "GL_BLUE_BIAS", # 0x0D1B
+    "GL_ALPHA_SCALE", # 0x0D1C
+    "GL_ALPHA_BIAS", # 0x0D1D
+    "GL_DEPTH_SCALE", # 0x0D1E
+    "GL_DEPTH_BIAS", # 0x0D1F
+    "GL_PIXEL_MAP_S_TO_S_SIZE", # 0x0CB1
+    "GL_PIXEL_MAP_I_TO_I_SIZE", # 0x0CB0
+    "GL_PIXEL_MAP_I_TO_R_SIZE", # 0x0CB2
+    "GL_PIXEL_MAP_I_TO_G_SIZE", # 0x0CB3
+    "GL_PIXEL_MAP_I_TO_B_SIZE", # 0x0CB4
+    "GL_PIXEL_MAP_I_TO_A_SIZE", # 0x0CB5
+    "GL_PIXEL_MAP_R_TO_R_SIZE", # 0x0CB6
+    "GL_PIXEL_MAP_G_TO_G_SIZE", # 0x0CB7
+    "GL_PIXEL_MAP_B_TO_B_SIZE", # 0x0CB8
+    "GL_PIXEL_MAP_A_TO_A_SIZE", # 0x0CB9
+    "GL_PIXEL_MAP_S_TO_S", # 0x0C71
+    "GL_PIXEL_MAP_I_TO_I", # 0x0C70
+    "GL_PIXEL_MAP_I_TO_R", # 0x0C72
+    "GL_PIXEL_MAP_I_TO_G", # 0x0C73
+    "GL_PIXEL_MAP_I_TO_B", # 0x0C74
+    "GL_PIXEL_MAP_I_TO_A", # 0x0C75
+    "GL_PIXEL_MAP_R_TO_R", # 0x0C76
+    "GL_PIXEL_MAP_G_TO_G", # 0x0C77
+    "GL_PIXEL_MAP_B_TO_B", # 0x0C78
+    "GL_PIXEL_MAP_A_TO_A", # 0x0C79
+    "GL_PACK_ALIGNMENT", # 0x0D05
+    "GL_PACK_LSB_FIRST", # 0x0D01
+    "GL_PACK_ROW_LENGTH", # 0x0D02
+    "GL_PACK_SKIP_PIXELS", # 0x0D04
+    "GL_PACK_SKIP_ROWS", # 0x0D03
+    "GL_PACK_SWAP_BYTES", # 0x0D00
+    "GL_UNPACK_ALIGNMENT", # 0x0CF5
+    "GL_UNPACK_LSB_FIRST", # 0x0CF1
+    "GL_UNPACK_ROW_LENGTH", # 0x0CF2
+    "GL_UNPACK_SKIP_PIXELS", # 0x0CF4
+    "GL_UNPACK_SKIP_ROWS", # 0x0CF3
+    "GL_UNPACK_SWAP_BYTES", # 0x0CF0
+    "GL_ZOOM_X", # 0x0D16
+    "GL_ZOOM_Y", # 0x0D17
+
+    "GL_TEXTURE_ENV", # 0x2300
+    "GL_TEXTURE_ENV_MODE", # 0x2200
+    "GL_TEXTURE_1D", # 0x0DE0
+    "GL_TEXTURE_2D", # 0x0DE1
+    "GL_TEXTURE_WRAP_S", # 0x2802
+    "GL_TEXTURE_WRAP_T", # 0x2803
+    "GL_TEXTURE_MAG_FILTER", # 0x2800
+    "GL_TEXTURE_MIN_FILTER", # 0x2801
+    "GL_TEXTURE_ENV_COLOR", # 0x2201
+    "GL_TEXTURE_GEN_S", # 0x0C60
+    "GL_TEXTURE_GEN_T", # 0x0C61
+    "GL_TEXTURE_GEN_MODE", # 0x2500
+    "GL_TEXTURE_BORDER_COLOR", # 0x1004
+    "GL_TEXTURE_WIDTH", # 0x1000
+    "GL_TEXTURE_HEIGHT", # 0x1001
+    "GL_TEXTURE_BORDER", # 0x1005
+    "GL_TEXTURE_COMPONENTS", # 0x1003
+    "GL_TEXTURE_RED_SIZE", # 0x805C
+    "GL_TEXTURE_GREEN_SIZE", # 0x805D
+    "GL_TEXTURE_BLUE_SIZE", # 0x805E
+    "GL_TEXTURE_ALPHA_SIZE", # 0x805F
+    "GL_TEXTURE_LUMINANCE_SIZE", # 0x8060
+    "GL_TEXTURE_INTENSITY_SIZE", # 0x8061
+    "GL_NEAREST_MIPMAP_NEAREST", # 0x2700
+    "GL_NEAREST_MIPMAP_LINEAR", # 0x2702
+    "GL_LINEAR_MIPMAP_NEAREST", # 0x2701
+    "GL_LINEAR_MIPMAP_LINEAR", # 0x2703
+    "GL_OBJECT_LINEAR", # 0x2401
+    "GL_OBJECT_PLANE", # 0x2501
+    "GL_EYE_LINEAR", # 0x2400
+    "GL_EYE_PLANE", # 0x2502
+    "GL_SPHERE_MAP", # 0x2402
+    "GL_DECAL", # 0x2101
+    "GL_MODULATE", # 0x2100
+    "GL_NEAREST", # 0x2600
+    "GL_REPEAT", # 0x2901
+    "GL_CLAMP", # 0x2900
+    "GL_S", # 0x2000
+    "GL_T", # 0x2001
+    "GL_R", # 0x2002
+    "GL_Q", # 0x2003
+    "GL_TEXTURE_GEN_R", # 0x0C62
+    "GL_TEXTURE_GEN_Q", # 0x0C63
+
+    "GL_VENDOR", # 0x1F00
+    "GL_RENDERER", # 0x1F01
+    "GL_VERSION", # 0x1F02
+    "GL_EXTENSIONS", # 0x1F03
+
+    #"GL_NO_ERROR", # 0x0
+    "GL_INVALID_ENUM", # 0x0500
+    "GL_INVALID_VALUE", # 0x0501
+    "GL_INVALID_OPERATION", # 0x0502
+    "GL_STACK_OVERFLOW", # 0x0503
+    "GL_STACK_UNDERFLOW", # 0x0504
+    "GL_OUT_OF_MEMORY", # 0x0505
+
+    "GL_PROXY_TEXTURE_1D", # 0x8063
+    "GL_PROXY_TEXTURE_2D", # 0x8064
+    "GL_TEXTURE_PRIORITY", # 0x8066
+    "GL_TEXTURE_RESIDENT", # 0x8067
+    "GL_TEXTURE_BINDING_1D", # 0x8068
+    "GL_TEXTURE_BINDING_2D", # 0x8069
+    #"GL_TEXTURE_INTERNAL_FORMAT", # 0x1003
+    "GL_ALPHA4", # 0x803B
+    "GL_ALPHA8", # 0x803C
+    "GL_ALPHA12", # 0x803D
+    "GL_ALPHA16", # 0x803E
+    "GL_LUMINANCE4", # 0x803F
+    "GL_LUMINANCE8", # 0x8040
+    "GL_LUMINANCE12", # 0x8041
+    "GL_LUMINANCE16", # 0x8042
+    "GL_LUMINANCE4_ALPHA4", # 0x8043
+    "GL_LUMINANCE6_ALPHA2", # 0x8044
+    "GL_LUMINANCE8_ALPHA8", # 0x8045
+    "GL_LUMINANCE12_ALPHA4", # 0x8046
+    "GL_LUMINANCE12_ALPHA12", # 0x8047
+    "GL_LUMINANCE16_ALPHA16", # 0x8048
+    "GL_INTENSITY", # 0x8049
+    "GL_INTENSITY4", # 0x804A
+    "GL_INTENSITY8", # 0x804B
+    "GL_INTENSITY12", # 0x804C
+    "GL_INTENSITY16", # 0x804D
+    "GL_R3_G3_B2", # 0x2A10
+    "GL_RGB4", # 0x804F
+    "GL_RGB5", # 0x8050
+    "GL_RGB8", # 0x8051
+    "GL_RGB10", # 0x8052
+    "GL_RGB12", # 0x8053
+    "GL_RGB16", # 0x8054
+    "GL_RGBA2", # 0x8055
+    "GL_RGBA4", # 0x8056
+    "GL_RGB5_A1", # 0x8057
+    "GL_RGBA8", # 0x8058
+    "GL_RGB10_A2", # 0x8059
+    "GL_RGBA12", # 0x805A
+    "GL_RGBA16", # 0x805B
+
+#    "GL_BGR", # 0x80E0
+#    "GL_BGRA", # 0x80E1
+#    "GL_UNSIGNED_BYTE_3_3_2", # 0x8032
+#    "GL_UNSIGNED_BYTE_2_3_3_REV", # 0x8362
+#    "GL_UNSIGNED_SHORT_5_6_5", # 0x8363
+#    "GL_UNSIGNED_SHORT_5_6_5_REV", # 0x8364
+#    "GL_UNSIGNED_SHORT_4_4_4_4", # 0x8033
+#    "GL_UNSIGNED_SHORT_4_4_4_4_REV", # 0x8365
+#    "GL_UNSIGNED_SHORT_5_5_5_1", # 0x8034
+#    "GL_UNSIGNED_SHORT_1_5_5_5_REV", # 0x8366
+#    "GL_UNSIGNED_INT_8_8_8_8", # 0x8035
+#    "GL_UNSIGNED_INT_8_8_8_8_REV", # 0x8367
+#    "GL_UNSIGNED_INT_10_10_10_2", # 0x8036
+#    "GL_UNSIGNED_INT_2_10_10_10_REV", # 0x8368
+#    "GL_LIGHT_MODEL_COLOR_CONTROL", # 0x81F8
+#    "GL_SINGLE_COLOR", # 0x81F9
+#    "GL_SEPARATE_SPECULAR_COLOR", # 0x81FA
+#    "GL_TEXTURE_MIN_LOD", # 0x813A
+#    "GL_TEXTURE_MAX_LOD", # 0x813B
+#    "GL_TEXTURE_BASE_LEVEL", # 0x813C
+#    "GL_TEXTURE_MAX_LEVEL", # 0x813D
+#    "GL_SMOOTH_POINT_SIZE_RANGE", # 0x0B12
+#    "GL_SMOOTH_POINT_SIZE_GRANULARITY", # 0x0B13
+#    "GL_SMOOTH_LINE_WIDTH_RANGE", # 0x0B22
+#    "GL_SMOOTH_LINE_WIDTH_GRANULARITY", # 0x0B23
+#    "GL_ALIASED_POINT_SIZE_RANGE", # 0x846D
+#    "GL_ALIASED_LINE_WIDTH_RANGE", # 0x846E
+#    "GL_PACK_SKIP_IMAGES", # 0x806B
+#    "GL_PACK_IMAGE_HEIGHT", # 0x806C
+#    "GL_UNPACK_SKIP_IMAGES", # 0x806D
+#    "GL_UNPACK_IMAGE_HEIGHT", # 0x806E
+#    "GL_TEXTURE_3D", # 0x806F
+#    "GL_PROXY_TEXTURE_3D", # 0x8070
+#    "GL_TEXTURE_DEPTH", # 0x8071
+#    "GL_TEXTURE_WRAP_R", # 0x8072
+#    "GL_MAX_3D_TEXTURE_SIZE", # 0x8073
+#    "GL_TEXTURE_BINDING_3D", # 0x806A
+#
+#    "GL_CONSTANT_COLOR", # 0x8001
+#    "GL_ONE_MINUS_CONSTANT_COLOR", # 0x8002
+#    "GL_CONSTANT_ALPHA", # 0x8003
+#    "GL_ONE_MINUS_CONSTANT_ALPHA", # 0x8004
+#    "GL_COLOR_TABLE", # 0x80D0
+#    "GL_POST_CONVOLUTION_COLOR_TABLE", # 0x80D1
+#    "GL_POST_COLOR_MATRIX_COLOR_TABLE", # 0x80D2
+#    "GL_PROXY_COLOR_TABLE", # 0x80D3
+#    "GL_PROXY_POST_CONVOLUTION_COLOR_TABLE", # 0x80D4
+#    "GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE", # 0x80D5
+#    "GL_COLOR_TABLE_SCALE", # 0x80D6
+#    "GL_COLOR_TABLE_BIAS", # 0x80D7
+#    "GL_COLOR_TABLE_FORMAT", # 0x80D8
+#    "GL_COLOR_TABLE_WIDTH", # 0x80D9
+#    "GL_COLOR_TABLE_RED_SIZE", # 0x80DA
+#    "GL_COLOR_TABLE_GREEN_SIZE", # 0x80DB
+#    "GL_COLOR_TABLE_BLUE_SIZE", # 0x80DC
+#    "GL_COLOR_TABLE_ALPHA_SIZE", # 0x80DD
+#    "GL_COLOR_TABLE_LUMINANCE_SIZE", # 0x80DE
+#    "GL_COLOR_TABLE_INTENSITY_SIZE", # 0x80DF
+#    "GL_CONVOLUTION_1D", # 0x8010
+#    "GL_CONVOLUTION_2D", # 0x8011
+#    "GL_SEPARABLE_2D", # 0x8012
+#    "GL_CONVOLUTION_BORDER_MODE", # 0x8013
+#    "GL_CONVOLUTION_FILTER_SCALE", # 0x8014
+#    "GL_CONVOLUTION_FILTER_BIAS", # 0x8015
+#    "GL_REDUCE", # 0x8016
+#    "GL_CONVOLUTION_FORMAT", # 0x8017
+#    "GL_CONVOLUTION_WIDTH", # 0x8018
+#    "GL_CONVOLUTION_HEIGHT", # 0x8019
+#    "GL_MAX_CONVOLUTION_WIDTH", # 0x801A
+#    "GL_MAX_CONVOLUTION_HEIGHT", # 0x801B
+#    "GL_POST_CONVOLUTION_RED_SCALE", # 0x801C
+#    "GL_POST_CONVOLUTION_GREEN_SCALE", # 0x801D
+#    "GL_POST_CONVOLUTION_BLUE_SCALE", # 0x801E
+#    "GL_POST_CONVOLUTION_ALPHA_SCALE", # 0x801F
+#    "GL_POST_CONVOLUTION_RED_BIAS", # 0x8020
+#    "GL_POST_CONVOLUTION_GREEN_BIAS", # 0x8021
+#    "GL_POST_CONVOLUTION_BLUE_BIAS", # 0x8022
+#    "GL_POST_CONVOLUTION_ALPHA_BIAS", # 0x8023
+#    "GL_CONSTANT_BORDER", # 0x8151
+#    "GL_REPLICATE_BORDER", # 0x8153
+#    "GL_CONVOLUTION_BORDER_COLOR", # 0x8154
+#    "GL_COLOR_MATRIX", # 0x80B1
+#    "GL_COLOR_MATRIX_STACK_DEPTH", # 0x80B2
+#    "GL_MAX_COLOR_MATRIX_STACK_DEPTH", # 0x80B3
+#    "GL_POST_COLOR_MATRIX_RED_SCALE", # 0x80B4
+#    "GL_POST_COLOR_MATRIX_GREEN_SCALE", # 0x80B5
+#    "GL_POST_COLOR_MATRIX_BLUE_SCALE", # 0x80B6
+#    "GL_POST_COLOR_MATRIX_ALPHA_SCALE", # 0x80B7
+#    "GL_POST_COLOR_MATRIX_RED_BIAS", # 0x80B8
+#    "GL_POST_COLOR_MATRIX_GREEN_BIAS", # 0x80B9
+#    "GL_POST_COLOR_MATRIX_BLUE_BIAS", # 0x80BA
+#    "GL_POST_COLOR_MATRIX_ALPHA_BIAS", # 0x80BB
+#    "GL_HISTOGRAM", # 0x8024
+#    "GL_PROXY_HISTOGRAM", # 0x8025
+#    "GL_HISTOGRAM_WIDTH", # 0x8026
+#    "GL_HISTOGRAM_FORMAT", # 0x8027
+#    "GL_HISTOGRAM_RED_SIZE", # 0x8028
+#    "GL_HISTOGRAM_GREEN_SIZE", # 0x8029
+#    "GL_HISTOGRAM_BLUE_SIZE", # 0x802A
+#    "GL_HISTOGRAM_ALPHA_SIZE", # 0x802B
+#    "GL_HISTOGRAM_LUMINANCE_SIZE", # 0x802C
+#    "GL_HISTOGRAM_SINK", # 0x802D
+#    "GL_MINMAX", # 0x802E
+#    "GL_MINMAX_FORMAT", # 0x802F
+#    "GL_MINMAX_SINK", # 0x8030
+#    "GL_TABLE_TOO_LARGE", # 0x8031
+#    "GL_BLEND_EQUATION", # 0x8009
+#    "GL_MIN", # 0x8007
+#    "GL_MAX", # 0x8008
+#    "GL_FUNC_ADD", # 0x8006
+#    "GL_FUNC_SUBTRACT", # 0x800A
+#    "GL_FUNC_REVERSE_SUBTRACT", # 0x800B
+#    "GL_BLEND_COLOR", # 0x8005
+
+#    "GL_TEXTURE0", # 0x84C0
+#    "GL_TEXTURE1", # 0x84C1
+#    "GL_TEXTURE2", # 0x84C2
+#    "GL_TEXTURE3", # 0x84C3
+#    "GL_TEXTURE4", # 0x84C4
+#    "GL_TEXTURE5", # 0x84C5
+#    "GL_TEXTURE6", # 0x84C6
+#    "GL_TEXTURE7", # 0x84C7
+#    "GL_TEXTURE8", # 0x84C8
+#    "GL_TEXTURE9", # 0x84C9
+#    "GL_TEXTURE10", # 0x84CA
+#    "GL_TEXTURE11", # 0x84CB
+#    "GL_TEXTURE12", # 0x84CC
+#    "GL_TEXTURE13", # 0x84CD
+#    "GL_TEXTURE14", # 0x84CE
+#    "GL_TEXTURE15", # 0x84CF
+#    "GL_TEXTURE16", # 0x84D0
+#    "GL_TEXTURE17", # 0x84D1
+#    "GL_TEXTURE18", # 0x84D2
+#    "GL_TEXTURE19", # 0x84D3
+#    "GL_TEXTURE20", # 0x84D4
+#    "GL_TEXTURE21", # 0x84D5
+#    "GL_TEXTURE22", # 0x84D6
+#    "GL_TEXTURE23", # 0x84D7
+#    "GL_TEXTURE24", # 0x84D8
+#    "GL_TEXTURE25", # 0x84D9
+#    "GL_TEXTURE26", # 0x84DA
+#    "GL_TEXTURE27", # 0x84DB
+#    "GL_TEXTURE28", # 0x84DC
+#    "GL_TEXTURE29", # 0x84DD
+#    "GL_TEXTURE30", # 0x84DE
+#    "GL_TEXTURE31", # 0x84DF
+#    "GL_ACTIVE_TEXTURE", # 0x84E0
+#    "GL_CLIENT_ACTIVE_TEXTURE", # 0x84E1
+#    "GL_MAX_TEXTURE_UNITS", # 0x84E2
+#    "GL_NORMAL_MAP", # 0x8511
+#    "GL_REFLECTION_MAP", # 0x8512
+#    "GL_TEXTURE_CUBE_MAP", # 0x8513
+#    "GL_TEXTURE_BINDING_CUBE_MAP", # 0x8514
+#    "GL_TEXTURE_CUBE_MAP_POSITIVE_X", # 0x8515
+#    "GL_TEXTURE_CUBE_MAP_NEGATIVE_X", # 0x8516
+#    "GL_TEXTURE_CUBE_MAP_POSITIVE_Y", # 0x8517
+#    "GL_TEXTURE_CUBE_MAP_NEGATIVE_Y", # 0x8518
+#    "GL_TEXTURE_CUBE_MAP_POSITIVE_Z", # 0x8519
+#    "GL_TEXTURE_CUBE_MAP_NEGATIVE_Z", # 0x851A
+#    "GL_PROXY_TEXTURE_CUBE_MAP", # 0x851B
+#    "GL_MAX_CUBE_MAP_TEXTURE_SIZE", # 0x851C
+#    "GL_COMPRESSED_ALPHA", # 0x84E9
+#    "GL_COMPRESSED_LUMINANCE", # 0x84EA
+#    "GL_COMPRESSED_LUMINANCE_ALPHA", # 0x84EB
+#    "GL_COMPRESSED_INTENSITY", # 0x84EC
+#    "GL_COMPRESSED_RGB", # 0x84ED
+#    "GL_COMPRESSED_RGBA", # 0x84EE
+#    "GL_TEXTURE_COMPRESSION_HINT", # 0x84EF
+#    "GL_TEXTURE_COMPRESSED_IMAGE_SIZE", # 0x86A0
+#    "GL_TEXTURE_COMPRESSED", # 0x86A1
+#    "GL_NUM_COMPRESSED_TEXTURE_FORMATS", # 0x86A2
+#    "GL_COMPRESSED_TEXTURE_FORMATS", # 0x86A3
+#    "GL_MULTISAMPLE", # 0x809D
+#    "GL_SAMPLE_ALPHA_TO_COVERAGE", # 0x809E
+#    "GL_SAMPLE_ALPHA_TO_ONE", # 0x809F
+#    "GL_SAMPLE_COVERAGE", # 0x80A0
+#    "GL_SAMPLE_BUFFERS", # 0x80A8
+#    "GL_SAMPLES", # 0x80A9
+#    "GL_SAMPLE_COVERAGE_VALUE", # 0x80AA
+#    "GL_SAMPLE_COVERAGE_INVERT", # 0x80AB
+#    "GL_TRANSPOSE_MODELVIEW_MATRIX", # 0x84E3
+#    "GL_TRANSPOSE_PROJECTION_MATRIX", # 0x84E4
+#    "GL_TRANSPOSE_TEXTURE_MATRIX", # 0x84E5
+#    "GL_TRANSPOSE_COLOR_MATRIX", # 0x84E6
+#    "GL_COMBINE", # 0x8570
+#    "GL_COMBINE_RGB", # 0x8571
+#    "GL_COMBINE_ALPHA", # 0x8572
+#    "GL_SOURCE0_RGB", # 0x8580
+#    "GL_SOURCE1_RGB", # 0x8581
+#    "GL_SOURCE2_RGB", # 0x8582
+#    "GL_SOURCE0_ALPHA", # 0x8588
+#    "GL_SOURCE1_ALPHA", # 0x8589
+#    "GL_SOURCE2_ALPHA", # 0x858A
+#    "GL_OPERAND0_RGB", # 0x8590
+#    "GL_OPERAND1_RGB", # 0x8591
+#    "GL_OPERAND2_RGB", # 0x8592
+#    "GL_OPERAND0_ALPHA", # 0x8598
+#    "GL_OPERAND1_ALPHA", # 0x8599
+#    "GL_OPERAND2_ALPHA", # 0x859A
+#    "GL_RGB_SCALE", # 0x8573
+#    "GL_ADD_SIGNED", # 0x8574
+#    "GL_INTERPOLATE", # 0x8575
+#    "GL_SUBTRACT", # 0x84E7
+#    "GL_CONSTANT", # 0x8576
+#    "GL_PRIMARY_COLOR", # 0x8577
+#    "GL_PREVIOUS", # 0x8578
+#    "GL_DOT3_RGB", # 0x86AE
+#    "GL_DOT3_RGBA", # 0x86AF
+#    "GL_CLAMP_TO_BORDER", # 0x812D
+
+#    "GL_TEXTURE0_ARB", # 0x84C0
+#    "GL_TEXTURE1_ARB", # 0x84C1
+#    "GL_TEXTURE2_ARB", # 0x84C2
+#    "GL_TEXTURE3_ARB", # 0x84C3
+#    "GL_TEXTURE4_ARB", # 0x84C4
+#    "GL_TEXTURE5_ARB", # 0x84C5
+#    "GL_TEXTURE6_ARB", # 0x84C6
+#    "GL_TEXTURE7_ARB", # 0x84C7
+#    "GL_TEXTURE8_ARB", # 0x84C8
+#    "GL_TEXTURE9_ARB", # 0x84C9
+#    "GL_TEXTURE10_ARB", # 0x84CA
+#    "GL_TEXTURE11_ARB", # 0x84CB
+#    "GL_TEXTURE12_ARB", # 0x84CC
+#    "GL_TEXTURE13_ARB", # 0x84CD
+#    "GL_TEXTURE14_ARB", # 0x84CE
+#    "GL_TEXTURE15_ARB", # 0x84CF
+#    "GL_TEXTURE16_ARB", # 0x84D0
+#    "GL_TEXTURE17_ARB", # 0x84D1
+#    "GL_TEXTURE18_ARB", # 0x84D2
+#    "GL_TEXTURE19_ARB", # 0x84D3
+#    "GL_TEXTURE20_ARB", # 0x84D4
+#    "GL_TEXTURE21_ARB", # 0x84D5
+#    "GL_TEXTURE22_ARB", # 0x84D6
+#    "GL_TEXTURE23_ARB", # 0x84D7
+#    "GL_TEXTURE24_ARB", # 0x84D8
+#    "GL_TEXTURE25_ARB", # 0x84D9
+#    "GL_TEXTURE26_ARB", # 0x84DA
+#    "GL_TEXTURE27_ARB", # 0x84DB
+#    "GL_TEXTURE28_ARB", # 0x84DC
+#    "GL_TEXTURE29_ARB", # 0x84DD
+#    "GL_TEXTURE30_ARB", # 0x84DE
+#    "GL_TEXTURE31_ARB", # 0x84DF
+#    "GL_ACTIVE_TEXTURE_ARB", # 0x84E0
+#    "GL_CLIENT_ACTIVE_TEXTURE_ARB", # 0x84E1
+#    "GL_MAX_TEXTURE_UNITS_ARB", # 0x84E2
+])
+
+[
+    "GL_POINTS", # 0x0000
+    "GL_LINES", # 0x0001
+    "GL_LINE_LOOP", # 0x0002
+    "GL_LINE_STRIP", # 0x0003
+    "GL_TRIANGLES", # 0x0004
+    "GL_TRIANGLE_STRIP", # 0x0005
+    "GL_TRIANGLE_FAN", # 0x0006
+    "GL_QUADS", # 0x0007
+    "GL_QUAD_STRIP", # 0x0008
+    "GL_POLYGON", # 0x0009
+]
+
+[
+    "GL_ALL_ATTRIB_BITS", # 0x000FFFFF
+    "GL_CURRENT_BIT", # 0x00000001
+    "GL_POINT_BIT", # 0x00000002
+    "GL_LINE_BIT", # 0x00000004
+    "GL_POLYGON_BIT", # 0x00000008
+    "GL_POLYGON_STIPPLE_BIT", # 0x00000010
+    "GL_PIXEL_MODE_BIT", # 0x00000020
+    "GL_LIGHTING_BIT", # 0x00000040
+    "GL_FOG_BIT", # 0x00000080
+    "GL_DEPTH_BUFFER_BIT", # 0x00000100
+    "GL_ACCUM_BUFFER_BIT", # 0x00000200
+    "GL_STENCIL_BUFFER_BIT", # 0x00000400
+    "GL_VIEWPORT_BIT", # 0x00000800
+    "GL_TRANSFORM_BIT", # 0x00001000
+    "GL_ENABLE_BIT", # 0x00002000
+    "GL_COLOR_BUFFER_BIT", # 0x00004000
+    "GL_HINT_BIT", # 0x00008000
+    "GL_EVAL_BIT", # 0x00010000
+    "GL_LIST_BIT", # 0x00020000
+    "GL_TEXTURE_BIT", # 0x00040000
+    "GL_SCISSOR_BIT", # 0x00080000
+    "GL_MULTISAMPLE_BIT", # 0x20000000
+]
+
+[
+    "GL_CLIENT_PIXEL_STORE_BIT", # 0x00000001
+    "GL_CLIENT_VERTEX_ARRAY_BIT", # 0x00000002
+    "GL_ALL_CLIENT_ATTRIB_BITS", # 0xFFFFFFFF
+    "GL_CLIENT_ALL_ATTRIB_BITS", # 0xFFFFFFFF
+]
diff --git a/opengl32.def b/opengl32.def
new file mode 100644 (file)
index 0000000..9e717a7
--- /dev/null
@@ -0,0 +1,371 @@
+LIBRARY opengl32
+
+EXPORTS
+;      GlmfBeginGlsBlock
+;      GlmfCloseMetaFile
+;      GlmfEndGlsBlock
+;      GlmfEndPlayback
+;      GlmfInitPlayback
+;      GlmfPlayGlsRecord
+       glAccum
+       glAlphaFunc
+       glAreTexturesResident
+       glArrayElement
+       glBegin
+       glBindTexture
+       glBitmap
+       glBlendFunc
+       glCallList
+       glCallLists
+       glClear
+       glClearAccum
+       glClearColor
+       glClearDepth
+       glClearIndex
+       glClearStencil
+       glClipPlane
+       glColor3b
+       glColor3bv
+       glColor3d
+       glColor3dv
+       glColor3f
+       glColor3fv
+       glColor3i
+       glColor3iv
+       glColor3s
+       glColor3sv
+       glColor3ub
+       glColor3ubv
+       glColor3ui
+       glColor3uiv
+       glColor3us
+       glColor3usv
+       glColor4b
+       glColor4bv
+       glColor4d
+       glColor4dv
+       glColor4f
+       glColor4fv
+       glColor4i
+       glColor4iv
+       glColor4s
+       glColor4sv
+       glColor4ub
+       glColor4ubv
+       glColor4ui
+       glColor4uiv
+       glColor4us
+       glColor4usv
+       glColorMask
+       glColorMaterial
+       glColorPointer
+       glCopyPixels
+       glCopyTexImage1D
+       glCopyTexImage2D
+       glCopyTexSubImage1D
+       glCopyTexSubImage2D
+       glCullFace
+;      glDebugEntry
+       glDeleteLists
+       glDeleteTextures
+       glDepthFunc
+       glDepthMask
+       glDepthRange
+       glDisable
+       glDisableClientState
+       glDrawArrays
+       glDrawBuffer
+       glDrawElements
+       glDrawPixels
+       glEdgeFlag
+       glEdgeFlagPointer
+       glEdgeFlagv
+       glEnable
+       glEnableClientState
+       glEnd
+       glEndList
+       glEvalCoord1d
+       glEvalCoord1dv
+       glEvalCoord1f
+       glEvalCoord1fv
+       glEvalCoord2d
+       glEvalCoord2dv
+       glEvalCoord2f
+       glEvalCoord2fv
+       glEvalMesh1
+       glEvalMesh2
+       glEvalPoint1
+       glEvalPoint2
+       glFeedbackBuffer
+       glFinish
+       glFlush
+       glFogf
+       glFogfv
+       glFogi
+       glFogiv
+       glFrontFace
+       glFrustum
+       glGenLists
+       glGenTextures
+       glGetBooleanv
+       glGetClipPlane
+       glGetDoublev
+       glGetError
+       glGetFloatv
+       glGetIntegerv
+       glGetLightfv
+       glGetLightiv
+       glGetMapdv
+       glGetMapfv
+       glGetMapiv
+       glGetMaterialfv
+       glGetMaterialiv
+       glGetPixelMapfv
+       glGetPixelMapuiv
+       glGetPixelMapusv
+       glGetPointerv
+       glGetPolygonStipple
+       glGetString
+       glGetTexEnvfv
+       glGetTexEnviv
+       glGetTexGendv
+       glGetTexGenfv
+       glGetTexGeniv
+       glGetTexImage
+       glGetTexLevelParameterfv
+       glGetTexLevelParameteriv
+       glGetTexParameterfv
+       glGetTexParameteriv
+       glHint
+       glIndexMask
+       glIndexPointer
+       glIndexd
+       glIndexdv
+       glIndexf
+       glIndexfv
+       glIndexi
+       glIndexiv
+       glIndexs
+       glIndexsv
+       glIndexub
+       glIndexubv
+       glInitNames
+       glInterleavedArrays
+       glIsEnabled
+       glIsList
+       glIsTexture
+       glLightModelf
+       glLightModelfv
+       glLightModeli
+       glLightModeliv
+       glLightf
+       glLightfv
+       glLighti
+       glLightiv
+       glLineStipple
+       glLineWidth
+       glListBase
+       glLoadIdentity
+       glLoadMatrixd
+       glLoadMatrixf
+       glLoadName
+       glLogicOp
+       glMap1d
+       glMap1f
+       glMap2d
+       glMap2f
+       glMapGrid1d
+       glMapGrid1f
+       glMapGrid2d
+       glMapGrid2f
+       glMaterialf
+       glMaterialfv
+       glMateriali
+       glMaterialiv
+       glMatrixMode
+       glMultMatrixd
+       glMultMatrixf
+       glNewList
+       glNormal3b
+       glNormal3bv
+       glNormal3d
+       glNormal3dv
+       glNormal3f
+       glNormal3fv
+       glNormal3i
+       glNormal3iv
+       glNormal3s
+       glNormal3sv
+       glNormalPointer
+       glOrtho
+       glPassThrough
+       glPixelMapfv
+       glPixelMapuiv
+       glPixelMapusv
+       glPixelStoref
+       glPixelStorei
+       glPixelTransferf
+       glPixelTransferi
+       glPixelZoom
+       glPointSize
+       glPolygonMode
+       glPolygonOffset
+       glPolygonStipple
+       glPopAttrib
+       glPopClientAttrib
+       glPopMatrix
+       glPopName
+       glPrioritizeTextures
+       glPushAttrib
+       glPushClientAttrib
+       glPushMatrix
+       glPushName
+       glRasterPos2d
+       glRasterPos2dv
+       glRasterPos2f
+       glRasterPos2fv
+       glRasterPos2i
+       glRasterPos2iv
+       glRasterPos2s
+       glRasterPos2sv
+       glRasterPos3d
+       glRasterPos3dv
+       glRasterPos3f
+       glRasterPos3fv
+       glRasterPos3i
+       glRasterPos3iv
+       glRasterPos3s
+       glRasterPos3sv
+       glRasterPos4d
+       glRasterPos4dv
+       glRasterPos4f
+       glRasterPos4fv
+       glRasterPos4i
+       glRasterPos4iv
+       glRasterPos4s
+       glRasterPos4sv
+       glReadBuffer
+       glReadPixels
+       glRectd
+       glRectdv
+       glRectf
+       glRectfv
+       glRecti
+       glRectiv
+       glRects
+       glRectsv
+       glRenderMode
+       glRotated
+       glRotatef
+       glScaled
+       glScalef
+       glScissor
+       glSelectBuffer
+       glShadeModel
+       glStencilFunc
+       glStencilMask
+       glStencilOp
+       glTexCoord1d
+       glTexCoord1dv
+       glTexCoord1f
+       glTexCoord1fv
+       glTexCoord1i
+       glTexCoord1iv
+       glTexCoord1s
+       glTexCoord1sv
+       glTexCoord2d
+       glTexCoord2dv
+       glTexCoord2f
+       glTexCoord2fv
+       glTexCoord2i
+       glTexCoord2iv
+       glTexCoord2s
+       glTexCoord2sv
+       glTexCoord3d
+       glTexCoord3dv
+       glTexCoord3f
+       glTexCoord3fv
+       glTexCoord3i
+       glTexCoord3iv
+       glTexCoord3s
+       glTexCoord3sv
+       glTexCoord4d
+       glTexCoord4dv
+       glTexCoord4f
+       glTexCoord4fv
+       glTexCoord4i
+       glTexCoord4iv
+       glTexCoord4s
+       glTexCoord4sv
+       glTexCoordPointer
+       glTexEnvf
+       glTexEnvfv
+       glTexEnvi
+       glTexEnviv
+       glTexGend
+       glTexGendv
+       glTexGenf
+       glTexGenfv
+       glTexGeni
+       glTexGeniv
+       glTexImage1D
+       glTexImage2D
+       glTexParameterf
+       glTexParameterfv
+       glTexParameteri
+       glTexParameteriv
+       glTexSubImage1D
+       glTexSubImage2D
+       glTranslated
+       glTranslatef
+       glVertex2d
+       glVertex2dv
+       glVertex2f
+       glVertex2fv
+       glVertex2i
+       glVertex2iv
+       glVertex2s
+       glVertex2sv
+       glVertex3d
+       glVertex3dv
+       glVertex3f
+       glVertex3fv
+       glVertex3i
+       glVertex3iv
+       glVertex3s
+       glVertex3sv
+       glVertex4d
+       glVertex4dv
+       glVertex4f
+       glVertex4fv
+       glVertex4i
+       glVertex4iv
+       glVertex4s
+       glVertex4sv
+       glVertexPointer
+       glViewport
+       wglChoosePixelFormat
+       wglCopyContext
+       wglCreateContext
+       wglCreateLayerContext
+       wglDeleteContext
+       wglDescribeLayerPlane
+       wglDescribePixelFormat
+       wglGetCurrentContext
+       wglGetCurrentDC
+       wglGetDefaultProcAddress
+       wglGetLayerPaletteEntries
+       wglGetPixelFormat
+       wglGetProcAddress
+       wglMakeCurrent
+       wglRealizeLayerPalette
+       wglSetLayerPaletteEntries
+       wglSetPixelFormat
+       wglShareLists
+       wglSwapBuffers
+       wglSwapLayerBuffers
+       wglSwapMultipleBuffers
+       wglUseFontBitmapsA
+       wglUseFontBitmapsW
+       wglUseFontOutlinesA
+       wglUseFontOutlinesW
diff --git a/opengl32.py b/opengl32.py
new file mode 100644 (file)
index 0000000..0dea762
--- /dev/null
@@ -0,0 +1,553 @@
+#############################################################################
+#
+# Copyright 2009 VMware, Inc.
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published
+# by the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+#
+#############################################################################
+
+from gl import *
+from windows import *
+
+opengl32 = Dll("opengl32")
+opengl32.functions += [
+    Function(Void, "glNewList", [(GLuint, "list"), (GLenum, "mode")]),
+    Function(Void, "glEndList", []),
+    Function(Void, "glCallList", [(GLuint, "list")]),
+    Function(Void, "glCallLists", [(GLsizei, "n"), (GLenum, "type"), (Pointer(Const(GLvoid)), "lists")]),
+    Function(Void, "glDeleteLists", [(GLuint, "list"), (GLsizei, "range")]),
+    Function(GLuint, "glGenLists", [(GLsizei, "range")]),
+    Function(Void, "glListBase", [(GLuint, "base")]),
+    Function(Void, "glBegin", [(GLenum, "mode")]),
+    Function(Void, "glBitmap", [(GLsizei, "width"), (GLsizei, "height"), (GLfloat, "xorig"), (GLfloat, "yorig"), (GLfloat, "xmove"), (GLfloat, "ymove"), (Pointer(Const(GLubyte)), "bitmap")]),
+    Function(Void, "glColor3b", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue")]),
+    Function(Void, "glColor3bv", [(Pointer(Const(GLbyte)), "v")]),
+    Function(Void, "glColor3d", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue")]),
+    Function(Void, "glColor3dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glColor3f", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue")]),
+    Function(Void, "glColor3fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glColor3i", [(GLint, "red"), (GLint, "green"), (GLint, "blue")]),
+    Function(Void, "glColor3iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glColor3s", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue")]),
+    Function(Void, "glColor3sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glColor3ub", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue")]),
+    Function(Void, "glColor3ubv", [(Pointer(Const(GLubyte)), "v")]),
+    Function(Void, "glColor3ui", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue")]),
+    Function(Void, "glColor3uiv", [(Pointer(Const(GLuint)), "v")]),
+    Function(Void, "glColor3us", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue")]),
+    Function(Void, "glColor3usv", [(Pointer(Const(GLushort)), "v")]),
+    Function(Void, "glColor4b", [(GLbyte, "red"), (GLbyte, "green"), (GLbyte, "blue"), (GLbyte, "alpha")]),
+    Function(Void, "glColor4bv", [(Pointer(Const(GLbyte)), "v")]),
+    Function(Void, "glColor4d", [(GLdouble, "red"), (GLdouble, "green"), (GLdouble, "blue"), (GLdouble, "alpha")]),
+    Function(Void, "glColor4dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glColor4f", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue"), (GLfloat, "alpha")]),
+    Function(Void, "glColor4fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glColor4i", [(GLint, "red"), (GLint, "green"), (GLint, "blue"), (GLint, "alpha")]),
+    Function(Void, "glColor4iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glColor4s", [(GLshort, "red"), (GLshort, "green"), (GLshort, "blue"), (GLshort, "alpha")]),
+    Function(Void, "glColor4sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glColor4ub", [(GLubyte, "red"), (GLubyte, "green"), (GLubyte, "blue"), (GLubyte, "alpha")]),
+    Function(Void, "glColor4ubv", [(Pointer(Const(GLubyte)), "v")]),
+    Function(Void, "glColor4ui", [(GLuint, "red"), (GLuint, "green"), (GLuint, "blue"), (GLuint, "alpha")]),
+    Function(Void, "glColor4uiv", [(Pointer(Const(GLuint)), "v")]),
+    Function(Void, "glColor4us", [(GLushort, "red"), (GLushort, "green"), (GLushort, "blue"), (GLushort, "alpha")]),
+    Function(Void, "glColor4usv", [(Pointer(Const(GLushort)), "v")]),
+    Function(Void, "glEdgeFlag", [(GLboolean, "flag")]),
+    Function(Void, "glEdgeFlagv", [(Pointer(Const(GLboolean)), "flag")]),
+    Function(Void, "glEnd", []),
+    Function(Void, "glIndexd", [(GLdouble, "c")]),
+    Function(Void, "glIndexdv", [(Pointer(Const(GLdouble)), "c")]),
+    Function(Void, "glIndexf", [(GLfloat, "c")]),
+    Function(Void, "glIndexfv", [(Pointer(Const(GLfloat)), "c")]),
+    Function(Void, "glIndexi", [(GLint, "c")]),
+    Function(Void, "glIndexiv", [(Pointer(Const(GLint)), "c")]),
+    Function(Void, "glIndexs", [(GLshort, "c")]),
+    Function(Void, "glIndexsv", [(Pointer(Const(GLshort)), "c")]),
+    Function(Void, "glNormal3b", [(GLbyte, "nx"), (GLbyte, "ny"), (GLbyte, "nz")]),
+    Function(Void, "glNormal3bv", [(Pointer(Const(GLbyte)), "v")]),
+    Function(Void, "glNormal3d", [(GLdouble, "nx"), (GLdouble, "ny"), (GLdouble, "nz")]),
+    Function(Void, "glNormal3dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glNormal3f", [(GLfloat, "nx"), (GLfloat, "ny"), (GLfloat, "nz")]),
+    Function(Void, "glNormal3fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glNormal3i", [(GLint, "nx"), (GLint, "ny"), (GLint, "nz")]),
+    Function(Void, "glNormal3iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glNormal3s", [(GLshort, "nx"), (GLshort, "ny"), (GLshort, "nz")]),
+    Function(Void, "glNormal3sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glRasterPos2d", [(GLdouble, "x"), (GLdouble, "y")]),
+    Function(Void, "glRasterPos2dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glRasterPos2f", [(GLfloat, "x"), (GLfloat, "y")]),
+    Function(Void, "glRasterPos2fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glRasterPos2i", [(GLint, "x"), (GLint, "y")]),
+    Function(Void, "glRasterPos2iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glRasterPos2s", [(GLshort, "x"), (GLshort, "y")]),
+    Function(Void, "glRasterPos2sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glRasterPos3d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
+    Function(Void, "glRasterPos3dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glRasterPos3f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
+    Function(Void, "glRasterPos3fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glRasterPos3i", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
+    Function(Void, "glRasterPos3iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glRasterPos3s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
+    Function(Void, "glRasterPos3sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glRasterPos4d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
+    Function(Void, "glRasterPos4dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glRasterPos4f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
+    Function(Void, "glRasterPos4fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glRasterPos4i", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "w")]),
+    Function(Void, "glRasterPos4iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glRasterPos4s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
+    Function(Void, "glRasterPos4sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glRectd", [(GLdouble, "x1"), (GLdouble, "y1"), (GLdouble, "x2"), (GLdouble, "y2")]),
+    Function(Void, "glRectdv", [(Pointer(Const(GLdouble)), "v1"), (Pointer(Const(GLdouble)), "v2")]),
+    Function(Void, "glRectf", [(GLfloat, "x1"), (GLfloat, "y1"), (GLfloat, "x2"), (GLfloat, "y2")]),
+    Function(Void, "glRectfv", [(Pointer(Const(GLfloat)), "v1"), (Pointer(Const(GLfloat)), "v2")]),
+    Function(Void, "glRecti", [(GLint, "x1"), (GLint, "y1"), (GLint, "x2"), (GLint, "y2")]),
+    Function(Void, "glRectiv", [(Pointer(Const(GLint)), "v1"), (Pointer(Const(GLint)), "v2")]),
+    Function(Void, "glRects", [(GLshort, "x1"), (GLshort, "y1"), (GLshort, "x2"), (GLshort, "y2")]),
+    Function(Void, "glRectsv", [(Pointer(Const(GLshort)), "v1"), (Pointer(Const(GLshort)), "v2")]),
+    Function(Void, "glTexCoord1d", [(GLdouble, "s")]),
+    Function(Void, "glTexCoord1dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glTexCoord1f", [(GLfloat, "s")]),
+    Function(Void, "glTexCoord1fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glTexCoord1i", [(GLint, "s")]),
+    Function(Void, "glTexCoord1iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glTexCoord1s", [(GLshort, "s")]),
+    Function(Void, "glTexCoord1sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glTexCoord2d", [(GLdouble, "s"), (GLdouble, "t")]),
+    Function(Void, "glTexCoord2dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glTexCoord2f", [(GLfloat, "s"), (GLfloat, "t")]),
+    Function(Void, "glTexCoord2fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glTexCoord2i", [(GLint, "s"), (GLint, "t")]),
+    Function(Void, "glTexCoord2iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glTexCoord2s", [(GLshort, "s"), (GLshort, "t")]),
+    Function(Void, "glTexCoord2sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glTexCoord3d", [(GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r")]),
+    Function(Void, "glTexCoord3dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glTexCoord3f", [(GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r")]),
+    Function(Void, "glTexCoord3fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glTexCoord3i", [(GLint, "s"), (GLint, "t"), (GLint, "r")]),
+    Function(Void, "glTexCoord3iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glTexCoord3s", [(GLshort, "s"), (GLshort, "t"), (GLshort, "r")]),
+    Function(Void, "glTexCoord3sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glTexCoord4d", [(GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r"), (GLdouble, "q")]),
+    Function(Void, "glTexCoord4dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glTexCoord4f", [(GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r"), (GLfloat, "q")]),
+    Function(Void, "glTexCoord4fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glTexCoord4i", [(GLint, "s"), (GLint, "t"), (GLint, "r"), (GLint, "q")]),
+    Function(Void, "glTexCoord4iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glTexCoord4s", [(GLshort, "s"), (GLshort, "t"), (GLshort, "r"), (GLshort, "q")]),
+    Function(Void, "glTexCoord4sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glVertex2d", [(GLdouble, "x"), (GLdouble, "y")]),
+    Function(Void, "glVertex2dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glVertex2f", [(GLfloat, "x"), (GLfloat, "y")]),
+    Function(Void, "glVertex2fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glVertex2i", [(GLint, "x"), (GLint, "y")]),
+    Function(Void, "glVertex2iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glVertex2s", [(GLshort, "x"), (GLshort, "y")]),
+    Function(Void, "glVertex2sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glVertex3d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
+    Function(Void, "glVertex3dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glVertex3f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
+    Function(Void, "glVertex3fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glVertex3i", [(GLint, "x"), (GLint, "y"), (GLint, "z")]),
+    Function(Void, "glVertex3iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glVertex3s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z")]),
+    Function(Void, "glVertex3sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glVertex4d", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z"), (GLdouble, "w")]),
+    Function(Void, "glVertex4dv", [(Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glVertex4f", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z"), (GLfloat, "w")]),
+    Function(Void, "glVertex4fv", [(Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glVertex4i", [(GLint, "x"), (GLint, "y"), (GLint, "z"), (GLint, "w")]),
+    Function(Void, "glVertex4iv", [(Pointer(Const(GLint)), "v")]),
+    Function(Void, "glVertex4s", [(GLshort, "x"), (GLshort, "y"), (GLshort, "z"), (GLshort, "w")]),
+    Function(Void, "glVertex4sv", [(Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glClipPlane", [(GLenum, "plane"), (Pointer(Const(GLdouble)), "equation")]),
+    Function(Void, "glColorMaterial", [(GLenum, "face"), (GLenum, "mode")]),
+    Function(Void, "glCullFace", [(GLenum, "mode")]),
+    Function(Void, "glFogf", [(GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glFogfv", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glFogi", [(GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glFogiv", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glFrontFace", [(GLenum, "mode")]),
+    Function(Void, "glHint", [(GLenum, "target"), (GLenum, "mode")]),
+    Function(Void, "glLightf", [(GLenum, "light"), (GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glLightfv", [(GLenum, "light"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glLighti", [(GLenum, "light"), (GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glLightiv", [(GLenum, "light"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glLightModelf", [(GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glLightModelfv", [(GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glLightModeli", [(GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glLightModeliv", [(GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glLineStipple", [(GLint, "factor"), (GLushort, "pattern")]),
+    Function(Void, "glLineWidth", [(GLfloat, "width")]),
+    Function(Void, "glMaterialf", [(GLenum, "face"), (GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glMaterialfv", [(GLenum, "face"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glMateriali", [(GLenum, "face"), (GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glMaterialiv", [(GLenum, "face"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glPointSize", [(GLfloat, "size")]),
+    Function(Void, "glPolygonMode", [(GLenum, "face"), (GLenum, "mode")]),
+    Function(Void, "glPolygonStipple", [(Pointer(Const(GLubyte)), "mask")]),
+    Function(Void, "glScissor", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
+    Function(Void, "glShadeModel", [(GLenum, "mode")]),
+    Function(Void, "glTexParameterf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glTexParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glTexParameteri", [(GLenum, "target"), (GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glTexParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glTexImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glTexImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glTexEnvf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glTexEnvfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glTexEnvi", [(GLenum, "target"), (GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glTexEnviv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glTexGend", [(GLenum, "coord"), (GLenum, "pname"), (GLdouble, "param")]),
+    Function(Void, "glTexGendv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLdouble)), "params")]),
+    Function(Void, "glTexGenf", [(GLenum, "coord"), (GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glTexGenfv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glTexGeni", [(GLenum, "coord"), (GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glTexGeniv", [(GLenum, "coord"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glFeedbackBuffer", [(GLsizei, "size"), (GLenum, "type"), (OutPointer(GLfloat), "buffer")]),
+    Function(Void, "glSelectBuffer", [(GLsizei, "size"), (OutPointer(GLuint), "buffer")]),
+    Function(GLint, "glRenderMode", [(GLenum, "mode")]),
+    Function(Void, "glInitNames", []),
+    Function(Void, "glLoadName", [(GLuint, "name")]),
+    Function(Void, "glPassThrough", [(GLfloat, "token")]),
+    Function(Void, "glPopName", []),
+    Function(Void, "glPushName", [(GLuint, "name")]),
+    Function(Void, "glDrawBuffer", [(GLenum, "mode")]),
+    Function(Void, "glClear", [(GLbitfield, "mask")]),
+    Function(Void, "glClearAccum", [(GLfloat, "red"), (GLfloat, "green"), (GLfloat, "blue"), (GLfloat, "alpha")]),
+    Function(Void, "glClearIndex", [(GLfloat, "c")]),
+    Function(Void, "glClearColor", [(GLclampf, "red"), (GLclampf, "green"), (GLclampf, "blue"), (GLclampf, "alpha")]),
+    Function(Void, "glClearStencil", [(GLint, "s")]),
+    Function(Void, "glClearDepth", [(GLclampd, "depth")]),
+    Function(Void, "glStencilMask", [(GLuint, "mask")]),
+    Function(Void, "glColorMask", [(GLboolean, "red"), (GLboolean, "green"), (GLboolean, "blue"), (GLboolean, "alpha")]),
+    Function(Void, "glDepthMask", [(GLboolean, "flag")]),
+    Function(Void, "glIndexMask", [(GLuint, "mask")]),
+    Function(Void, "glAccum", [(GLenum, "op"), (GLfloat, "value")]),
+    Function(Void, "glDisable", [(GLenum, "cap")]),
+    Function(Void, "glEnable", [(GLenum, "cap")]),
+    Function(Void, "glFinish", []),
+    Function(Void, "glFlush", []),
+    Function(Void, "glPopAttrib", []),
+    Function(Void, "glPushAttrib", [(GLbitfield, "mask")]),
+    Function(Void, "glMap1d", [(GLenum, "target"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "stride"), (GLint, "order"), (Pointer(Const(GLdouble)), "points")]),
+    Function(Void, "glMap1f", [(GLenum, "target"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "stride"), (GLint, "order"), (Pointer(Const(GLfloat)), "points")]),
+    Function(Void, "glMap2d", [(GLenum, "target"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "ustride"), (GLint, "uorder"), (GLdouble, "v1"), (GLdouble, "v2"), (GLint, "vstride"), (GLint, "vorder"), (Pointer(Const(GLdouble)), "points")]),
+    Function(Void, "glMap2f", [(GLenum, "target"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "ustride"), (GLint, "uorder"), (GLfloat, "v1"), (GLfloat, "v2"), (GLint, "vstride"), (GLint, "vorder"), (Pointer(Const(GLfloat)), "points")]),
+    Function(Void, "glMapGrid1d", [(GLint, "un"), (GLdouble, "u1"), (GLdouble, "u2")]),
+    Function(Void, "glMapGrid1f", [(GLint, "un"), (GLfloat, "u1"), (GLfloat, "u2")]),
+    Function(Void, "glMapGrid2d", [(GLint, "un"), (GLdouble, "u1"), (GLdouble, "u2"), (GLint, "vn"), (GLdouble, "v1"), (GLdouble, "v2")]),
+    Function(Void, "glMapGrid2f", [(GLint, "un"), (GLfloat, "u1"), (GLfloat, "u2"), (GLint, "vn"), (GLfloat, "v1"), (GLfloat, "v2")]),
+    Function(Void, "glEvalCoord1d", [(GLdouble, "u")]),
+    Function(Void, "glEvalCoord1dv", [(Pointer(Const(GLdouble)), "u")]),
+    Function(Void, "glEvalCoord1f", [(GLfloat, "u")]),
+    Function(Void, "glEvalCoord1fv", [(Pointer(Const(GLfloat)), "u")]),
+    Function(Void, "glEvalCoord2d", [(GLdouble, "u"), (GLdouble, "v")]),
+    Function(Void, "glEvalCoord2dv", [(Pointer(Const(GLdouble)), "u")]),
+    Function(Void, "glEvalCoord2f", [(GLfloat, "u"), (GLfloat, "v")]),
+    Function(Void, "glEvalCoord2fv", [(Pointer(Const(GLfloat)), "u")]),
+    Function(Void, "glEvalMesh1", [(GLenum, "mode"), (GLint, "i1"), (GLint, "i2")]),
+    Function(Void, "glEvalPoint1", [(GLint, "i")]),
+    Function(Void, "glEvalMesh2", [(GLenum, "mode"), (GLint, "i1"), (GLint, "i2"), (GLint, "j1"), (GLint, "j2")]),
+    Function(Void, "glEvalPoint2", [(GLint, "i"), (GLint, "j")]),
+    Function(Void, "glAlphaFunc", [(GLenum, "func"), (GLclampf, "ref")]),
+    Function(Void, "glBlendFunc", [(GLenum, "sfactor"), (GLenum, "dfactor")]),
+    Function(Void, "glLogicOp", [(GLenum, "opcode")]),
+    Function(Void, "glStencilFunc", [(GLenum, "func"), (GLint, "ref"), (GLuint, "mask")]),
+    Function(Void, "glStencilOp", [(GLenum, "fail"), (GLenum, "zfail"), (GLenum, "zpass")]),
+    Function(Void, "glDepthFunc", [(GLenum, "func")]),
+    Function(Void, "glPixelZoom", [(GLfloat, "xfactor"), (GLfloat, "yfactor")]),
+    Function(Void, "glPixelTransferf", [(GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glPixelTransferi", [(GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glPixelStoref", [(GLenum, "pname"), (GLfloat, "param")]),
+    Function(Void, "glPixelStorei", [(GLenum, "pname"), (GLint, "param")]),
+    Function(Void, "glPixelMapfv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLfloat)), "values")]),
+    Function(Void, "glPixelMapuiv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLuint)), "values")]),
+    Function(Void, "glPixelMapusv", [(GLenum, "map"), (GLsizei, "mapsize"), (Pointer(Const(GLushort)), "values")]),
+    Function(Void, "glReadBuffer", [(GLenum, "mode")]),
+    Function(Void, "glCopyPixels", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "type")]),
+    Function(Void, "glReadPixels", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (OutPointer(GLvoid), "pixels")]),
+    Function(Void, "glDrawPixels", [(GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glGetBooleanv", [(GLenum, "pname"), (OutPointer(GLboolean), "params")]),
+    Function(Void, "glGetClipPlane", [(GLenum, "plane"), (OutPointer(GLdouble), "equation")]),
+    Function(Void, "glGetDoublev", [(GLenum, "pname"), (OutPointer(GLdouble), "params")]),
+    Function(GLenum, "glGetError", []),
+    Function(Void, "glGetFloatv", [(GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetIntegerv", [(GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetLightfv", [(GLenum, "light"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetLightiv", [(GLenum, "light"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetMapdv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLdouble), "v")]),
+    Function(Void, "glGetMapfv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLfloat), "v")]),
+    Function(Void, "glGetMapiv", [(GLenum, "target"), (GLenum, "query"), (OutPointer(GLint), "v")]),
+    Function(Void, "glGetMaterialfv", [(GLenum, "face"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetMaterialiv", [(GLenum, "face"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetPixelMapfv", [(GLenum, "map"), (OutPointer(GLfloat), "values")]),
+    Function(Void, "glGetPixelMapuiv", [(GLenum, "map"), (OutPointer(GLuint), "values")]),
+    Function(Void, "glGetPixelMapusv", [(GLenum, "map"), (OutPointer(GLushort), "values")]),
+    Function(Void, "glGetPolygonStipple", [(OutPointer(GLubyte), "mask")]),
+    Function(Alias("const GLubyte *", String), "glGetString", [(GLenum, "name")]),
+    Function(Void, "glGetTexEnvfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetTexEnviv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetTexGendv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLdouble), "params")]),
+    Function(Void, "glGetTexGenfv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetTexGeniv", [(GLenum, "coord"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetTexImage", [(GLenum, "target"), (GLint, "level"), (GLenum, "format"), (GLenum, "type"), (OutPointer(GLvoid), "pixels")]),
+    Function(Void, "glGetTexParameterfv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetTexParameteriv", [(GLenum, "target"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(Void, "glGetTexLevelParameterfv", [(GLenum, "target"), (GLint, "level"), (GLenum, "pname"), (OutPointer(GLfloat), "params")]),
+    Function(Void, "glGetTexLevelParameteriv", [(GLenum, "target"), (GLint, "level"), (GLenum, "pname"), (OutPointer(GLint), "params")]),
+    Function(GLboolean, "glIsEnabled", [(GLenum, "cap")]),
+    Function(GLboolean, "glIsList", [(GLuint, "list")]),
+    Function(Void, "glDepthRange", [(GLclampd, "zNear"), (GLclampd, "zFar")]),
+    Function(Void, "glFrustum", [(GLdouble, "left"), (GLdouble, "right"), (GLdouble, "bottom"), (GLdouble, "top"), (GLdouble, "zNear"), (GLdouble, "zFar")]),
+    Function(Void, "glLoadIdentity", []),
+    Function(Void, "glLoadMatrixf", [(Pointer(Const(GLfloat)), "m")]),
+    Function(Void, "glLoadMatrixd", [(Pointer(Const(GLdouble)), "m")]),
+    Function(Void, "glMatrixMode", [(GLenum, "mode")]),
+    Function(Void, "glMultMatrixf", [(Pointer(Const(GLfloat)), "m")]),
+    Function(Void, "glMultMatrixd", [(Pointer(Const(GLdouble)), "m")]),
+    Function(Void, "glOrtho", [(GLdouble, "left"), (GLdouble, "right"), (GLdouble, "bottom"), (GLdouble, "top"), (GLdouble, "zNear"), (GLdouble, "zFar")]),
+    Function(Void, "glPopMatrix", []),
+    Function(Void, "glPushMatrix", []),
+    Function(Void, "glRotated", [(GLdouble, "angle"), (GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
+    Function(Void, "glRotatef", [(GLfloat, "angle"), (GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
+    Function(Void, "glScaled", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
+    Function(Void, "glScalef", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
+    Function(Void, "glTranslated", [(GLdouble, "x"), (GLdouble, "y"), (GLdouble, "z")]),
+    Function(Void, "glTranslatef", [(GLfloat, "x"), (GLfloat, "y"), (GLfloat, "z")]),
+    Function(Void, "glViewport", [(GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
+    Function(Void, "glArrayElement", [(GLint, "i")]),
+    Function(Void, "glBindTexture", [(GLenum, "target"), (GLuint, "texture")]),
+    Function(Void, "glColorPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glDisableClientState", [(GLenum, "array")]),
+    Function(Void, "glDrawArrays", [(GLenum, "mode"), (GLint, "first"), (GLsizei, "count")]),
+    Function(Void, "glDrawElements", [(GLenum, "mode"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices")]),
+    Function(Void, "glEdgeFlagPointer", [(GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glEnableClientState", [(GLenum, "array")]),
+    Function(Void, "glIndexPointer", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glIndexub", [(GLubyte, "c")]),
+    Function(Void, "glIndexubv", [(Pointer(Const(GLubyte)), "c")]),
+    Function(Void, "glInterleavedArrays", [(GLenum, "format"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glNormalPointer", [(GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glPolygonOffset", [(GLfloat, "factor"), (GLfloat, "units")]),
+    Function(Void, "glTexCoordPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(Void, "glVertexPointer", [(GLint, "size"), (GLenum, "type"), (GLsizei, "stride"), (Pointer(Const(GLvoid)), "pointer")]),
+    Function(GLboolean, "glAreTexturesResident", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures"), (Pointer(GLboolean), "residences")]),
+    Function(Void, "glCopyTexImage1D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLint, "border")]),
+    Function(Void, "glCopyTexImage2D", [(GLenum, "target"), (GLint, "level"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height"), (GLint, "border")]),
+    Function(Void, "glCopyTexSubImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
+    Function(Void, "glCopyTexSubImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
+    Function(Void, "glDeleteTextures", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures")]),
+    Function(Void, "glGenTextures", [(GLsizei, "n"), (Pointer(GLuint), "textures")]),
+    Function(Void, "glGetPointerv", [(GLenum, "pname"), (Pointer(Pointer(GLvoid)), "params")]),
+    Function(GLboolean, "glIsTexture", [(GLuint, "texture")]),
+    Function(Void, "glPrioritizeTextures", [(GLsizei, "n"), (Pointer(Const(GLuint)), "textures"), (Pointer(Const(GLclampf)), "priorities")]),
+    Function(Void, "glTexSubImage1D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glTexSubImage2D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glPopClientAttrib", []),
+    Function(Void, "glPushClientAttrib", [(GLbitfield, "mask")]),
+    Function(Void, "glBlendColor", [(GLclampf, "red"), (GLclampf, "green"), (GLclampf, "blue"), (GLclampf, "alpha")]),
+    Function(Void, "glBlendEquation", [(GLenum, "mode")]),
+    Function(Void, "glDrawRangeElements", [(GLenum, "mode"), (GLuint, "start"), (GLuint, "end"), (GLsizei, "count"), (GLenum, "type"), (Pointer(Const(GLvoid)), "indices")]),
+    Function(Void, "glColorTable", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "table")]),
+    Function(Void, "glColorTableParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glColorTableParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glCopyColorTable", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
+    Function(Void, "glGetColorTable", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "table")]),
+    Function(Void, "glGetColorTableParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
+    Function(Void, "glGetColorTableParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+    Function(Void, "glColorSubTable", [(GLenum, "target"), (GLsizei, "start"), (GLsizei, "count"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "data")]),
+    Function(Void, "glCopyColorSubTable", [(GLenum, "target"), (GLsizei, "start"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
+    Function(Void, "glConvolutionFilter1D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "image")]),
+    Function(Void, "glConvolutionFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "image")]),
+    Function(Void, "glConvolutionParameterf", [(GLenum, "target"), (GLenum, "pname"), (GLfloat, "params")]),
+    Function(Void, "glConvolutionParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLfloat)), "params")]),
+    Function(Void, "glConvolutionParameteri", [(GLenum, "target"), (GLenum, "pname"), (GLint, "params")]),
+    Function(Void, "glConvolutionParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(Const(GLint)), "params")]),
+    Function(Void, "glCopyConvolutionFilter1D", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width")]),
+    Function(Void, "glCopyConvolutionFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
+    Function(Void, "glGetConvolutionFilter", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "image")]),
+    Function(Void, "glGetConvolutionParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
+    Function(Void, "glGetConvolutionParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+    Function(Void, "glGetSeparableFilter", [(GLenum, "target"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "row"), (Pointer(GLvoid), "column"), (Pointer(GLvoid), "span")]),
+    Function(Void, "glSeparableFilter2D", [(GLenum, "target"), (GLenum, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "row"), (Pointer(Const(GLvoid)), "column")]),
+    Function(Void, "glGetHistogram", [(GLenum, "target"), (GLboolean, "reset"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "values")]),
+    Function(Void, "glGetHistogramParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
+    Function(Void, "glGetHistogramParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+    Function(Void, "glGetMinmax", [(GLenum, "target"), (GLboolean, "reset"), (GLenum, "format"), (GLenum, "type"), (Pointer(GLvoid), "values")]),
+    Function(Void, "glGetMinmaxParameterfv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLfloat), "params")]),
+    Function(Void, "glGetMinmaxParameteriv", [(GLenum, "target"), (GLenum, "pname"), (Pointer(GLint), "params")]),
+    Function(Void, "glHistogram", [(GLenum, "target"), (GLsizei, "width"), (GLenum, "internalformat"), (GLboolean, "sink")]),
+    Function(Void, "glMinmax", [(GLenum, "target"), (GLenum, "internalformat"), (GLboolean, "sink")]),
+    Function(Void, "glResetHistogram", [(GLenum, "target")]),
+    Function(Void, "glResetMinmax", [(GLenum, "target")]),
+    Function(Void, "glTexImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "internalformat"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLint, "border"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glTexSubImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLsizei, "width"), (GLsizei, "height"), (GLsizei, "depth"), (GLenum, "format"), (GLenum, "type"), (Pointer(Const(GLvoid)), "pixels")]),
+    Function(Void, "glCopyTexSubImage3D", [(GLenum, "target"), (GLint, "level"), (GLint, "xoffset"), (GLint, "yoffset"), (GLint, "zoffset"), (GLint, "x"), (GLint, "y"), (GLsizei, "width"), (GLsizei, "height")]),
+    Function(Void, "glActiveTextureARB", [(GLenum, "texture")]),
+    Function(Void, "glClientActiveTextureARB", [(GLenum, "texture")]),
+    Function(Void, "glMultiTexCoord1dARB", [(GLenum, "target"), (GLdouble, "s")]),
+    Function(Void, "glMultiTexCoord1dvARB", [(GLenum, "target"), (Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glMultiTexCoord1fARB", [(GLenum, "target"), (GLfloat, "s")]),
+    Function(Void, "glMultiTexCoord1fvARB", [(GLenum, "target"), (Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glMultiTexCoord1iARB", [(GLenum, "target"), (GLint, "s")]),
+    Function(Void, "glMultiTexCoord1ivARB", [(GLenum, "target"), (Pointer(Const(GLint)), "v")]),
+    Function(Void, "glMultiTexCoord1sARB", [(GLenum, "target"), (GLshort, "s")]),
+    Function(Void, "glMultiTexCoord1svARB", [(GLenum, "target"), (Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glMultiTexCoord2dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t")]),
+    Function(Void, "glMultiTexCoord2dvARB", [(GLenum, "target"), (Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glMultiTexCoord2fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t")]),
+    Function(Void, "glMultiTexCoord2fvARB", [(GLenum, "target"), (Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glMultiTexCoord2iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t")]),
+    Function(Void, "glMultiTexCoord2ivARB", [(GLenum, "target"), (Pointer(Const(GLint)), "v")]),
+    Function(Void, "glMultiTexCoord2sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t")]),
+    Function(Void, "glMultiTexCoord2svARB", [(GLenum, "target"), (Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glMultiTexCoord3dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r")]),
+    Function(Void, "glMultiTexCoord3dvARB", [(GLenum, "target"), (Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glMultiTexCoord3fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r")]),
+    Function(Void, "glMultiTexCoord3fvARB", [(GLenum, "target"), (Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glMultiTexCoord3iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t"), (GLint, "r")]),
+    Function(Void, "glMultiTexCoord3ivARB", [(GLenum, "target"), (Pointer(Const(GLint)), "v")]),
+    Function(Void, "glMultiTexCoord3sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t"), (GLshort, "r")]),
+    Function(Void, "glMultiTexCoord3svARB", [(GLenum, "target"), (Pointer(Const(GLshort)), "v")]),
+    Function(Void, "glMultiTexCoord4dARB", [(GLenum, "target"), (GLdouble, "s"), (GLdouble, "t"), (GLdouble, "r"), (GLdouble, "q")]),
+    Function(Void, "glMultiTexCoord4dvARB", [(GLenum, "target"), (Pointer(Const(GLdouble)), "v")]),
+    Function(Void, "glMultiTexCoord4fARB", [(GLenum, "target"), (GLfloat, "s"), (GLfloat, "t"), (GLfloat, "r"), (GLfloat, "q")]),
+    Function(Void, "glMultiTexCoord4fvARB", [(GLenum, "target"), (Pointer(Const(GLfloat)), "v")]),
+    Function(Void, "glMultiTexCoord4iARB", [(GLenum, "target"), (GLint, "s"), (GLint, "t"), (GLint, "r"), (GLint, "q")]),
+    Function(Void, "glMultiTexCoord4ivARB", [(GLenum, "target"), (Pointer(Const(GLint)), "v")]),
+    Function(Void, "glMultiTexCoord4sARB", [(GLenum, "target"), (GLshort, "s"), (GLshort, "t"), (GLshort, "r"), (GLshort, "q")]),
+    Function(Void, "glMultiTexCoord4svARB", [(GLenum, "target"), (Pointer(Const(GLshort)), "v")]),
+]
+
+HGLRC = Alias("HGLRC", HANDLE)
+PROC = Alias("PROC", LPVOID)
+
+PIXELFORMATDESCRIPTOR = Struct("PIXELFORMATDESCRIPTOR", [
+    (WORD, "nSize"),
+    (WORD, "nVersion"),
+    (DWORD, "dwFlags"),
+    (BYTE, "iPixelType"),
+    (BYTE, "cColorBits"),
+    (BYTE, "cRedBits"),
+    (BYTE, "cRedShift"),
+    (BYTE, "cGreenBits"),
+    (BYTE, "cGreenShift"),
+    (BYTE, "cBlueBits"),
+    (BYTE, "cBlueShift"),
+    (BYTE, "cAlphaBits"),
+    (BYTE, "cAlphaShift"),
+    (BYTE, "cAccumBits"),
+    (BYTE, "cAccumRedBits"),
+    (BYTE, "cAccumGreenBits"),
+    (BYTE, "cAccumBlueBits"),
+    (BYTE, "cAccumAlphaBits"),
+    (BYTE, "cDepthBits"),
+    (BYTE, "cStencilBits"),
+    (BYTE, "cAuxBuffers"),
+    (BYTE, "iLayerType"),
+    (BYTE, "bReserved"),
+    (DWORD, "dwLayerMask"),
+    (DWORD, "dwVisibleMask"),
+    (DWORD, "dwDamageMask"),
+])
+
+POINTFLOAT = Struct("POINTFLOAT", [
+    (FLOAT, "x"),
+    (FLOAT, "y"),
+])
+
+GLYPHMETRICSFLOAT = Struct("GLYPHMETRICSFLOAT", [
+    (FLOAT, "gmfBlackBoxX"),
+    (FLOAT, "gmfBlackBoxY"),
+    (POINTFLOAT, "gmfptGlyphOrigin"),
+    (FLOAT, "gmfCellIncX"),
+    (FLOAT, "gmfCellIncY"),
+])
+LPGLYPHMETRICSFLOAT = Pointer(GLYPHMETRICSFLOAT)
+
+COLORREF = Alias("COLORREF", DWORD)
+LAYERPLANEDESCRIPTOR = Struct("LAYERPLANEDESCRIPTOR", [
+    (WORD, "nSize"),
+    (WORD, "nVersion"),
+    (DWORD, "dwFlags"),
+    (BYTE, "iPixelType"),
+    (BYTE, "cColorBits"),
+    (BYTE, "cRedBits"),
+    (BYTE, "cRedShift"),
+    (BYTE, "cGreenBits"),
+    (BYTE, "cGreenShift"),
+    (BYTE, "cBlueBits"),
+    (BYTE, "cBlueShift"),
+    (BYTE, "cAlphaBits"),
+    (BYTE, "cAlphaShift"),
+    (BYTE, "cAccumBits"),
+    (BYTE, "cAccumRedBits"),
+    (BYTE, "cAccumGreenBits"),
+    (BYTE, "cAccumBlueBits"),
+    (BYTE, "cAccumAlphaBits"),
+    (BYTE, "cDepthBits"),
+    (BYTE, "cStencilBits"),
+    (BYTE, "cAuxBuffers"),
+    (BYTE, "iLayerPlane"),
+    (BYTE, "bReserved"),
+    (COLORREF, "crTransparent"),
+])
+LPLAYERPLANEDESCRIPTOR = Pointer(LAYERPLANEDESCRIPTOR)
+
+WGLSWAP = Struct("WGLSWAP", [
+    (HDC, "hdc"),
+    (UINT, "uiFlags"),
+])
+
+opengl32.functions += [
+    Function(BOOL, "wglCopyContext", [(HGLRC, "hglrcSrc"), (HGLRC, "hglrcDst"), (UINT, "mask")]),
+    Function(HGLRC, "wglCreateContext", [(HDC, "hdc")]),
+    Function(HGLRC, "wglCreateLayerContext", [(HDC, "hdc"), (Int, "iLayerPlane")]),
+    Function(BOOL, "wglDeleteContext", [(HGLRC, "hglrc")]),
+    Function(HGLRC, "wglGetCurrentContext", []),
+    Function(HDC, "wglGetCurrentDC", []),
+    Function(PROC, "wglGetProcAddress", [(LPCSTR, "lpszProc")]),
+    Function(PROC, "wglGetDefaultProcAddress", [(LPCSTR, "lpszProc")]),
+    Function(Int, "wglChoosePixelFormat", [(HDC, "hdc"), (Pointer(Const(PIXELFORMATDESCRIPTOR)), "ppfd")]), 
+    Function(Int, "wglDescribePixelFormat", [(HDC, "hdc"), (Int, "iPixelFormat"), (UINT, "nBytes"), (Pointer(PIXELFORMATDESCRIPTOR), "ppfd")]),
+    Function(Int, "wglGetPixelFormat", [(HDC, "hdc")]),
+    Function(BOOL, "wglSetPixelFormat", [(HDC, "hdc"), (Int, "iPixelFormat"), (Pointer(Const(PIXELFORMATDESCRIPTOR)), "ppfd")]),
+    Function(BOOL, "wglMakeCurrent", [(HDC, "hdc"), (HGLRC, "hglrc")]),
+    Function(BOOL, "wglShareLists", [(HGLRC, "hglrc1"), (HGLRC, "hglrc2")]),
+    Function(BOOL, "wglUseFontBitmapsA", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase")]),
+    Function(BOOL, "wglUseFontBitmapsW", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase")]),
+    Function(BOOL, "wglSwapBuffers", [(HDC, "hdc")]),
+    Function(BOOL, "wglUseFontOutlinesA", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase"), (FLOAT, "deviation"), (FLOAT, "extrusion"), (Int, "format"), (LPGLYPHMETRICSFLOAT, "lpgmf")]),
+    Function(BOOL, "wglUseFontOutlinesW", [(HDC, "hdc"), (DWORD, "first"), (DWORD, "count"), (DWORD, "listBase"), (FLOAT, "deviation"), (FLOAT, "extrusion"), (Int, "format"), (LPGLYPHMETRICSFLOAT, "lpgmf")]),
+    Function(BOOL , "wglDescribeLayerPlane", [(HDC, "hdc"), (Int, "iPixelFormat"), (Int, "iLayerPlane"), (UINT, "nBytes"), (OutPointer(LAYERPLANEDESCRIPTOR), "plpd")]),
+    Function(Int  , "wglSetLayerPaletteEntries", [(HDC, "hdc"), (Int, "iLayerPlane"), (Int, "iStart"), (Int, "cEntries"), (Pointer(Const(COLORREF)), "pcr")]),
+    Function(Int  , "wglGetLayerPaletteEntries", [(HDC, "hdc"), (Int, "iLayerPlane"), (Int, "iStart"), (Int, "cEntries"), (OutPointer(COLORREF), "pcr")]),
+    Function(BOOL , "wglRealizeLayerPalette", [(HDC, "hdc"), (Int, "iLayerPlane"), (BOOL, "bRealize")]),
+    Function(BOOL , "wglSwapLayerBuffers", [(HDC, "hdc"), (UINT, "fuPlanes")]),
+    Function(DWORD, "wglSwapMultipleBuffers", [(UINT, "n"), (Pointer(Const(WGLSWAP)), "ps")]),
+]
+
+if __name__ == '__main__':
+    print
+    print '#define _GDI32_'
+    print
+    print '#include <windows.h>'
+    print '#include <tchar.h>'
+    print '#include <GL/gl.h>'
+    print
+    print '#include "log.hpp"'
+    print
+    wrap()
index b6721fa4a2867784572696927746348487d5e339..ba6ca5a8c572218149b7fe7e880ac3e0f957b2dd 100644 (file)
@@ -45,6 +45,7 @@ LPBOOL = Pointer(BOOL)
 LPSIZE = LPDWORD
 
 LPSTR = String
+LPCSTR = Const(String)
 LPWSTR = String
 
 LARGE_INTEGER = Intrinsic("LARGE_INTEGER", "0x%llx")