]> git.cworth.org Git - apitrace/blob - gltypes.py
Add missing file to glxtrace.so
[apitrace] / gltypes.py
1 ##########################################################################
2 #
3 # Copyright 2011 Jose Fonseca
4 # All Rights Reserved.
5 #
6 # Permission is hereby granted, free of charge, to any person obtaining a copy
7 # of this software and associated documentation files (the "Software"), to deal
8 # in the Software without restriction, including without limitation the rights
9 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 # copies of the Software, and to permit persons to whom the Software is
11 # furnished to do so, subject to the following conditions:
12 #
13 # The above copyright notice and this permission notice shall be included in
14 # all copies or substantial portions of the Software.
15 #
16 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 # THE SOFTWARE.
23 #
24 ##########################################################################/
25
26
27 '''Describe GL types.'''
28
29
30 import platform
31
32 from stdapi import *
33
34
35 GLboolean = Alias("GLboolean", Bool)
36 GLvoid = Alias("GLvoid", Void)
37 GLbyte = Alias("GLbyte", SChar)
38 GLshort = Alias("GLshort", Short)
39 GLint = Alias("GLint", Int)
40 GLint64 = Alias("GLint64", Int64)
41 GLubyte = Alias("GLubyte", UChar)
42 GLushort = Alias("GLushort", UShort)
43 GLuint = Alias("GLuint", UInt)
44 GLuint64 = Alias("GLuint64", UInt64)
45 GLsizei = Alias("GLsizei", Int)
46 GLintptr = Alias("GLintptr", Int)
47 GLsizeiptr = Alias("GLsizeiptr", Int)
48 GLfloat = Alias("GLfloat", Float)
49 GLclampf = Alias("GLclampf", Float)
50 GLdouble = Alias("GLdouble", Double)
51 GLclampd = Alias("GLclampd", Double)
52 GLchar = Alias("GLchar", SChar)
53 GLstring = String("GLchar *")
54
55 GLcharARB = Alias("GLcharARB", SChar)
56 GLstringARB = String("GLcharARB *")
57 GLintptrARB = Alias("GLintptrARB", Int)
58 GLsizeiptrARB = Alias("GLsizeiptrARB", Int)
59 GLhandleARB = Handle("handleARB", Alias("GLhandleARB", UInt))
60 GLhalfARB = Alias("GLhalfARB", UShort)
61 GLhalfNV = Alias("GLhalfNV", UShort)
62 GLint64EXT = Alias("GLint64EXT", Int64)
63 GLuint64EXT = Alias("GLuint64EXT", UInt64)
64 GLDEBUGPROCARB = Opaque("GLDEBUGPROCARB")
65 GLDEBUGPROCAMD = Opaque("GLDEBUGPROCAMD")
66
67 GLlist = Handle("list", GLuint)
68 GLtexture = Handle("texture", GLuint)
69 GLbuffer = Handle("buffer", GLuint)
70 GLquery = Handle("query", GLuint)
71 GLfenceNV = Handle("fenceNV", GLuint)
72 GLprogram = Handle("program", GLuint)
73 GLshader = Handle("shader", GLuint)
74 GLlocation = Handle("location", GLint, key=('program', GLuint))
75 GLlocationARB = Handle("locationARB", GLint, key=('programObj', GLhandleARB))
76 GLprogramARB = Handle("programARB", GLuint)
77 GLframebuffer = Handle("framebuffer", GLuint)
78 GLrenderbuffer = Handle("renderbuffer", GLuint)
79 GLfragmentShaderATI = Handle("fragmentShaderATI", GLuint)
80 GLarray = Handle("array", GLuint)
81 GLregion = Handle("region", GLuint)
82 GLmap = Handle("map", OpaquePointer(GLvoid))
83 GLpipeline = Handle("pipeline", GLuint)
84 GLsampler = Handle("sampler", GLuint)
85
86 GLsync_ = Opaque("GLsync")
87 GLsync = Handle("sync", GLsync_)
88
89 GLenum = Enum("GLenum", [
90     # Parameters are added later from glparams.py's parameter table
91 ])
92
93 # Some functions take GLenum disguised as GLint.  Apple noticed and fixed it in
94 # the gl.h header.  Regardless, C++ typechecking rules force the wrappers to
95 # match the prototype precisely.
96 if platform.system() == 'Darwin':
97     GLenum_int = GLenum
98 else:
99     GLenum_int = Alias("GLint", GLenum)
100
101 GLenum_mode = FakeEnum(GLenum, [
102     "GL_POINTS",                         # 0x0000
103     "GL_LINES",                          # 0x0001
104     "GL_LINE_LOOP",                      # 0x0002
105     "GL_LINE_STRIP",                     # 0x0003
106     "GL_TRIANGLES",                      # 0x0004
107     "GL_TRIANGLE_STRIP",                 # 0x0005
108     "GL_TRIANGLE_FAN",                   # 0x0006
109     "GL_QUADS",                          # 0x0007
110     "GL_QUAD_STRIP",                     # 0x0008
111     "GL_POLYGON",                        # 0x0009
112     "GL_LINES_ADJACENCY",                # 0x000A
113     "GL_LINE_STRIP_ADJACENCY",           # 0x000B
114     "GL_TRIANGLES_ADJACENCY",            # 0x000C
115     "GL_TRIANGLE_STRIP_ADJACENCY",       # 0x000D
116     "GL_PATCHES",                        # 0x000E
117 ])
118
119 GLenum_error = FakeEnum(GLenum, [
120     "GL_NO_ERROR",                       # 0x0
121     "GL_INVALID_ENUM",                   # 0x0500
122     "GL_INVALID_VALUE",                  # 0x0501
123     "GL_INVALID_OPERATION",              # 0x0502
124     "GL_STACK_OVERFLOW",                 # 0x0503
125     "GL_STACK_UNDERFLOW",                # 0x0504
126     "GL_OUT_OF_MEMORY",                  # 0x0505
127     "GL_INVALID_FRAMEBUFFER_OPERATION",  # 0x0506
128     "GL_TABLE_TOO_LARGE",                # 0x8031
129 ])
130
131 GLbitfield = Alias("GLbitfield", UInt)
132
133 GLbitfield_attrib = Flags(GLbitfield, [
134     "GL_ALL_ATTRIB_BITS",     # 0x000FFFFF
135     "GL_CURRENT_BIT",         # 0x00000001
136     "GL_POINT_BIT",           # 0x00000002
137     "GL_LINE_BIT",            # 0x00000004
138     "GL_POLYGON_BIT",         # 0x00000008
139     "GL_POLYGON_STIPPLE_BIT", # 0x00000010
140     "GL_PIXEL_MODE_BIT",      # 0x00000020
141     "GL_LIGHTING_BIT",        # 0x00000040
142     "GL_FOG_BIT",             # 0x00000080
143     "GL_DEPTH_BUFFER_BIT",    # 0x00000100
144     "GL_ACCUM_BUFFER_BIT",    # 0x00000200
145     "GL_STENCIL_BUFFER_BIT",  # 0x00000400
146     "GL_VIEWPORT_BIT",        # 0x00000800
147     "GL_TRANSFORM_BIT",       # 0x00001000
148     "GL_ENABLE_BIT",          # 0x00002000
149     "GL_COLOR_BUFFER_BIT",    # 0x00004000
150     "GL_HINT_BIT",            # 0x00008000
151     "GL_EVAL_BIT",            # 0x00010000
152     "GL_LIST_BIT",            # 0x00020000
153     "GL_TEXTURE_BIT",         # 0x00040000
154     "GL_SCISSOR_BIT",         # 0x00080000
155     "GL_MULTISAMPLE_BIT",     # 0x20000000
156 ])
157
158 GLbitfield_client_attrib = Flags(GLbitfield, [
159     "GL_CLIENT_ALL_ATTRIB_BITS",  # 0xFFFFFFFF
160     "GL_CLIENT_PIXEL_STORE_BIT",  # 0x00000001
161     "GL_CLIENT_VERTEX_ARRAY_BIT", # 0x00000002
162 ])
163
164 GLbitfield_shader = Flags(GLbitfield, [
165     "GL_ALL_SHADER_BITS",                        # 0xFFFFFFFF
166     "GL_VERTEX_SHADER_BIT",                      # 0x00000001
167     "GL_FRAGMENT_SHADER_BIT",                    # 0x00000002
168     "GL_GEOMETRY_SHADER_BIT",                    # 0x00000004
169     "GL_TESS_CONTROL_SHADER_BIT",                # 0x00000008
170     "GL_TESS_EVALUATION_SHADER_BIT",             # 0x00000010
171 ])
172
173 GLbitfield_access = Flags(GLbitfield, [
174     "GL_MAP_READ_BIT",                # 0x0001
175     "GL_MAP_WRITE_BIT",               # 0x0002
176     "GL_MAP_INVALIDATE_RANGE_BIT",    # 0x0004
177     "GL_MAP_INVALIDATE_BUFFER_BIT",   # 0x0008
178     "GL_MAP_FLUSH_EXPLICIT_BIT",      # 0x0010
179     "GL_MAP_UNSYNCHRONIZED_BIT",      # 0x0020
180 ])
181
182 GLbitfield_sync_flush = Flags(GLbitfield, [
183     "GL_SYNC_FLUSH_COMMANDS_BIT",                               # 0x00000001
184 ])