X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=specs%2Fgltypes.py;h=5f325103cd49b6debe31db84e9db9e9edadadc6e;hb=edea899194c441353943c22577bc22bf0e64d187;hp=23af3279e54f2e51a33e8ebba9ad6166131a7d36;hpb=04f42b803c60b593359322b80af4003361ccd097;p=apitrace diff --git a/specs/gltypes.py b/specs/gltypes.py index 23af327..5f32510 100644 --- a/specs/gltypes.py +++ b/specs/gltypes.py @@ -237,3 +237,60 @@ GLbitfield_barrier = Flags(GLbitfield, [ size_bgra = FakeEnum(GLint, [ "GL_BGRA", ]) + + +def GLindexBuffer(countExpr, typeExpr): + # Indices arguments are polymorphic: + # - offsets when element array buffer is bound + # - or a blob otherwise. + sizeExpr = '%s*_gl_type_size(%s)' % (countExpr, typeExpr) + return Polymorphic('_element_array_buffer_binding()', [ + ('0', Blob(Const(GLvoid), sizeExpr)), + ], + IntPointer("const GLvoid *"), + contextLess=False, + ) + +# Polymorphic object name +def GLname(targetExpr): + return Polymorphic(targetExpr, [ + ('GL_BUFFER', GLbuffer), + ('GL_SHADER', GLshader), + ('GL_PROGRAM', GLprogram), + ('GL_VERTEX_ARRAY', GLarray), + ('GL_QUERY', GLquery), + ('GL_PROGRAM_PIPELINE', GLpipeline), + ('GL_TRANSFORM_FEEDBACK', GLuint), + ('GL_SAMPLER', GLsampler), + ('GL_TEXTURE', GLtexture), + ('GL_TEXTURE_1D', GLtexture), + ('GL_TEXTURE_1D_ARRAY', GLtexture), + ('GL_TEXTURE_2D', GLtexture), + ('GL_TEXTURE_2D_MULTISAMPLE', GLtexture), + ('GL_TEXTURE_2D_ARRAY', GLtexture), + ('GL_TEXTURE_RECTANGLE', GLtexture), + ('GL_TEXTURE_CUBE_MAP', GLtexture), + ('GL_TEXTURE_CUBE_MAP_POSITIVE_X', GLtexture), + ('GL_TEXTURE_CUBE_MAP_NEGATIVE_X', GLtexture), + ('GL_TEXTURE_CUBE_MAP_POSITIVE_Y', GLtexture), + ('GL_TEXTURE_CUBE_MAP_NEGATIVE_Y', GLtexture), + ('GL_TEXTURE_CUBE_MAP_POSITIVE_Z', GLtexture), + ('GL_TEXTURE_CUBE_MAP_NEGATIVE_Z', GLtexture), + ('GL_TEXTURE_CUBE_MAP_ARRAY', GLtexture), + ('GL_TEXTURE_3D', GLtexture), + ('GL_RENDERBUFFER', GLrenderbuffer), + ('GL_FRAMEBUFFER', GLframebuffer), + ('GL_DISPLAY_LIST', GLlist), + ('GL_FENCE_APPLE', GLfence), + ('GL_DRAW_PIXELS_APPLE', GLuint), # GL_APPLE_fence + ], GLuint) + + +# GL_AMD_performance_monitor +GLperfMonitorCounterInfoAMD = Polymorphic('pname', [ + ('GL_COUNTER_TYPE_AMD', Pointer(GLenum)), + ('GL_PERCENTAGE_AMD', Pointer(Float)), + ('GL_COUNTER_RANGE_AMD', Array(Float, 2)), + ], + OpaquePointer(GLvoid), +)