Added support for glArrayElement(EXT|) to the immediate mode layer.
Support NUM_EXTENSIONS in glGet(Integer|Float|Double|Boolean|Integer64)v(EXT|)
Added interception for glGetStringi and glGetIntergerv
Improve loading of GLES and EGL libraries on Android
Various bug fixes...
Merged pull requests:
#131 NaCL Pepper now uses GLES2 prefix for ES2.0 functions, rather than gl
#130 Copyright bump to 2014
#129 NaCL-related build tweaks for regaltest, nacl example and pnacl.
#128 GLEW refresh
#126 boost::print fix for mapping 'long' and 'long long' to 32-bit or 64-bit for length purposes
#125 Resolve clang compilation error: lookup of 'Depth' in member access expression is ambiguous
#124 Add Makefile support for gcc-4.4, gcc-4.6 and clang toolchains on Linux.
#116 Make it compile with Visual Studio 2013 (VC12)
505 lines
19 KiB
Python
505 lines
19 KiB
Python
#!/usr/bin/python -B
|
|
|
|
dsaFormulae = {
|
|
'SelectorGetCommands' : {
|
|
'entries' : [ 'glGet(Boolean|Integer|Float|Double)v' ],
|
|
'prefix' : [ '_context->dsa->RestoreGet( _context, ${arg0} );' ],
|
|
},
|
|
'DsaGetCommands1' : {
|
|
'entries' : [ 'glGet(Float|Double)(Indexed|i_)v(EXT|)' ],
|
|
'impl' : [
|
|
'if ( ! _context->dsa->GetIndexedv( _context, ${arg0}, ${arg1}, ${arg2} ) ) {',
|
|
' _dispatch.call(&_dispatch.glGet${m1}${m2}v${m3})(${arg0}, ${arg1}, ${arg2});',
|
|
'}',
|
|
],
|
|
},
|
|
'DsaGetCommands2' : {
|
|
'entries' : [ 'glGetPointerIndexedvEXT' ],
|
|
'impl' : [
|
|
'// if ( ! _context->dsa->GetIndexedv( _context, ${arg0}, ${arg1}, ${arg2} ) ) {',
|
|
'// _dispatch.call(&_dispatch.glGetPointerIndexedvEXT)(${arg0}, ${arg1}, ${arg2});',
|
|
'// }',
|
|
],
|
|
},
|
|
'DsaGetCommands3' : {
|
|
'entries' : [ 'glGetFramebufferParameterivEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaFramebuffer( _context, GL_FRAMEBUFFER, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.glGetIntegerv)(${arg1plus});',
|
|
],
|
|
},
|
|
'SelectorIsEnabled' : {
|
|
'entries' : [ 'glIsEnabled' ],
|
|
'prefix' : [ '_context->dsa->RestoreIsEnabled( _context, ${arg0} );']
|
|
},
|
|
'DsaIsEnabled' : {
|
|
'entries' : [ 'glIsEnabled(Indexed|i)EXT' ],
|
|
'impl' : [
|
|
'GLboolean ret;',
|
|
'ret = _context->dsa->IsEnabledIndexed( _context, ${arg0}, ${arg1} );',
|
|
'return ret;',
|
|
],
|
|
},
|
|
'SelectorMatrixCommands' : {
|
|
'entries' : [
|
|
'gl(Load|Mult)(Transpose|)Matrix(f|d)',
|
|
'glLoadIdentity',
|
|
'gl(Rotate|Scale|Translate)(f|d)',
|
|
'gl(Push|Pop)Matrix',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreMatrixMode( _context );' ],
|
|
},
|
|
'MatrixMode' : {
|
|
'entries' : [ 'glMatrixMode' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowMatrixMode(${arg0})) {',
|
|
' _dispatch.call(&_dispatch.glMatrixMode)(${arg0});',
|
|
'}',
|
|
],
|
|
},
|
|
'MatrixLoadMultStack' : {
|
|
'entries' : [
|
|
'glMatrix(Load|Mult)(Transpose|)(f|d)EXT',
|
|
'glMatrix(Push|Pop)()()EXT',
|
|
],
|
|
'impl' : [
|
|
'_context->dsa->DsaMatrixMode( _context, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}${m2}Matrix${m3})(${arg1plus});',
|
|
],
|
|
},
|
|
'MatrixTransform' : {
|
|
'entries' : [
|
|
'glMatrix(LoadIdentity|Ortho|Frustum)()EXT',
|
|
'glMatrix(Rotate|Scale|Translate)(f|d)EXT',
|
|
],
|
|
'impl' : [
|
|
'_context->dsa->DsaMatrixMode( _context, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}${m2})(${arg1plus});',
|
|
],
|
|
},
|
|
|
|
'ClientActiveTexture' : {
|
|
'entries' : [ 'glClientActiveTexture(ARB|)' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowClientActiveTexture( ${arg0} )) {',
|
|
' _dispatch.call(&_dispatch.glClientActiveTexture)( ${arg0} );',
|
|
'}',
|
|
],
|
|
},
|
|
'ClientActiveCommands' : {
|
|
'entries' : [
|
|
'gl(Enable|Disable)ClientState',
|
|
'glTexCoordPointer',
|
|
],
|
|
'prefix' : [
|
|
'_context->dsa->RestoreClientActiveTexture( _context );',
|
|
'_context->dsa->RestoreBuffer( _context );',
|
|
],
|
|
},
|
|
'ClientIndexed' : {
|
|
'entries' : [ 'gl(Enable|Disable)ClientState(Indexed|i)EXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaClientActiveTexture( _context, ${arg1} + GL_TEXTURE0 );',
|
|
'_dispatch.call(&_dispatch.gl${m1}ClientState)( ${arg0} );',
|
|
],
|
|
},
|
|
'ClientTexCoords' : {
|
|
'entries' : [ 'glMultiTexCoordPointerEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaClientActiveTexture( _context, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.glTexCoordPointer)( ${arg1plus} );',
|
|
],
|
|
},
|
|
'EnableIndexed' : {
|
|
'entries' : [ 'gl(Enable|Disable)IndexedEXT'],
|
|
'impl' : [
|
|
'_context->dsa->DsaActiveTexture( _context, ${arg1} + GL_TEXTURE0 );',
|
|
'_dispatch.call(&_dispatch.gl${m1})( ${arg0} );',
|
|
],
|
|
},
|
|
'ActiveTexture' : {
|
|
'entries' : [ 'glActiveTexture(ARB|)' ],
|
|
'impl' : [
|
|
'if( false == _context->dsa->ShadowActiveTexture( ${arg0} ) ) {',
|
|
' _dispatch.call(&_dispatch.glActiveTexture)( ${arg0} );',
|
|
'}',
|
|
],
|
|
},
|
|
'TexCommands' : {
|
|
'entries' : [
|
|
'gl(Get|)Tex(Env|Parameter)(i|iv|f|fv)',
|
|
'gl(Get|)TexParameter(Iiv|Iuiv)'
|
|
'gl(Copy|Compressed|Get|)Tex(Sub|)Image(1|2|3)D',
|
|
'glTex(Buffer|Renderbuffer)(NV|)',
|
|
'glGenerateMipmap(ARB|EXT|)',
|
|
],
|
|
'prefix' : [
|
|
'_context->dsa->RestoreTexture( _context );',
|
|
'_context->dsa->RestoreActiveTexture( _context );',
|
|
],
|
|
},
|
|
'TexCommands2' : {
|
|
'entries' : [ 'glTexGen(i|iv|f|fv)', ],
|
|
'prefix' : [ '_context->dsa->RestoreActiveTexture( _context );', ],
|
|
},
|
|
'TexCommands3' : {
|
|
'entries' : [ 'gl(Enable|Disable)', ], # check that it's a texture target!
|
|
'prefix' : [ '_context->dsa->RestoreActiveTexture( _context );', ],
|
|
},
|
|
'MultiActiveTexCommands' : {
|
|
'entries' : [
|
|
'gl(Get|)MultiTex(Env|Gen|Parameter|LevelParameter)(i|iv|f|fv|d|dv)EXT',
|
|
'gl(Get|)MultiTex(Parameter|LevelParameter)(Iiv|Iuiv)EXT',
|
|
'gl(Copy|Compressed|)MultiTex(Image|SubImage)(1D|2D|3D)EXT',
|
|
'gl(Get|GetCompressed)MultiTex(Image|SubImage)()EXT',
|
|
'gl()MultiTex(Buffer|Renderbuffer)()EXT',
|
|
'gl(Generate)MultiTex(Mipmap)()EXT',
|
|
],
|
|
'subst' : {
|
|
'nondsa' : {
|
|
'.*Renderbuffer.*' : 'glTexRenderbufferNV',
|
|
'glGenerate.*' : 'glGenerateMipmap',
|
|
'default' : 'gl${m1}Tex${m2}${m3}',
|
|
},
|
|
},
|
|
'impl' : [
|
|
'_context->dsa->DsaActiveTexture( _context, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.${nondsa})( ${arg1plus} );',
|
|
],
|
|
},
|
|
'BindTexture' : {
|
|
'entries' : [ 'glBindTexture(EXT|)' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowTexture( ${arg0}, ${arg1} )) {',
|
|
' _dispatch.call(&_dispatch.glBindTexture)( ${arg0}, ${arg1} );',
|
|
'}',
|
|
],
|
|
},
|
|
'BindMultiTexture' : {
|
|
'entries' : [ 'glBindMultiTextureEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaActiveTexture( _context, ${arg0} );',
|
|
'_context->dsa->ShadowDsaTexture( ${arg1plus} );',
|
|
'_dispatch.call(&_dispatch.glBindTexture)( ${arg1plus} );',
|
|
],
|
|
},
|
|
'BoundTextureCommands' : {
|
|
'entries' : [
|
|
'gl()Texture(Parameter)(i|iv|f|fv|Iiv|Iuiv)EXT',
|
|
'gl(Get)Texture(Parameter|LevelParameter)(i|iv|f|fv|Iiv|Iuiv)EXT',
|
|
'gl(Get|GetCompressed)Texture(Image)()EXT',
|
|
'gl(Copy|Compressed|)Texture(Image|SubImage)(1D|2D|3D)EXT',
|
|
'gl()Texture(Buffer|Renderbuffer)()EXT',
|
|
'gl(Generate)Texture(Mipmap)()EXT',
|
|
'gl()Texture(Storage)(1D|2D|3D)EXT',
|
|
],
|
|
'subst' : {
|
|
'nondsa' : {
|
|
'.*Renderbuffer.*' : 'glTexRenderbufferNV',
|
|
'glGenerate.*' : 'glGenerateMipmap',
|
|
'default' : 'gl${m1}Tex${m2}${m3}',
|
|
},
|
|
},
|
|
'impl' : [
|
|
'_context->dsa->DsaTexture( _context, ${arg1}, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.${nondsa})( ${arg1plus} );',
|
|
],
|
|
},
|
|
|
|
'UseProgram' : {
|
|
'entries' : [ 'glUseProgram' ],
|
|
'impl' : [
|
|
'if( false == _context->dsa->ShadowGlslProgram( ${arg0} ) ) {',
|
|
' _dispatch.call(&_dispatch.glUseProgram)(${arg0});',
|
|
'}',
|
|
],
|
|
},
|
|
'SelectorProgramCommands' : {
|
|
'entries' : [
|
|
'glUniform(1|2|3|4)(i|f|ui|d)(v|)',
|
|
'glUniformMatrix(2|3|4)(x2|x3|x4|)(fv|dv)',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreGlslProgram( _context );' ],
|
|
},
|
|
'DsaProgramCommands' : {
|
|
'entries' : [
|
|
'glProgramUniform()(1|2|3|4)()(i|iv|f|fv|d|dv|ui|uiv)EXT',
|
|
'glProgramUniform(Matrix)(2|3|4)(x2|x3|x4|)(fv|dv)EXT',
|
|
],
|
|
'impl' : [
|
|
'_context->dsa->DsaGlslProgram( _context, ${arg0});',
|
|
'_dispatch.call(&_dispatch.glUniform${m1}${m2}${m3}${m4})( ${arg1plus} );',
|
|
],
|
|
},
|
|
|
|
'BindAsmProgram' : {
|
|
'entries' : [ 'glBindProgramARB' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowAsmProgram( ${arg0}, ${arg1} ) ) {',
|
|
' _dispatch.call(&_dispatch.glBindProgramARB)( ${arg0}, ${arg1} );',
|
|
'}',
|
|
],
|
|
},
|
|
'AsmProgram' : {
|
|
'entries' : [
|
|
'gl(Get|)Program(Env|Local)Parameter(.*)(ARB|NV)',
|
|
'gl(Get|)Program(String)(EXT)',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreAsmProgram( _context, ${arg0} );' ],
|
|
},
|
|
'DsaAsmProgram' : {
|
|
'entries' : [
|
|
'gl(Get|)NamedProgram(Env|Local)Parameter(.*)(EXT)',
|
|
'gl(Get|)NamedProgram(String|iv)()(EXT)',
|
|
],
|
|
'subst' : {
|
|
'nondsa' : {
|
|
'.*Parameter4[df]v?EXT' : 'gl${m1}Program${m2}Parameter${m3}ARB',
|
|
'.*Parameter[df]vEXT' : 'gl${m1}Program${m2}Parameter${m3}ARB',
|
|
'.*Parameter(s|)I[4uiv]+EXT' : 'gl${m1}Program${m2}Parameter${m3}NV',
|
|
'.*Program(String|iv).*' : 'gl${m1}Program${m2}ARB',
|
|
'default' : 'gl${m1}Program${m2}Parameter${m3}EXT',
|
|
},
|
|
},
|
|
'impl' : [
|
|
'_context->dsa->DsaAsmProgram( _context, ${arg1}, ${arg0});',
|
|
'_dispatch.call(&_dispatch.${nondsa})( ${arg1plus} );',
|
|
],
|
|
},
|
|
|
|
'BindFramebuffer' : {
|
|
'entries' : [ 'glBindFramebuffer(EXT|)' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowFramebuffer( ${arg0}, ${arg1} ) ) {',
|
|
' _dispatch.call(&_dispatch.glBindFramebuffer)( ${arg0}, ${arg1} );',
|
|
'}',
|
|
],
|
|
},
|
|
'SelectorFramebufferCommands' : {
|
|
'entries' : [
|
|
'glFramebufferTexture(1D|2D|3D|Layer|Face|)(ARB|EXT|)',
|
|
'glFramebufferRenderbuffer(ARB|EXT|)',
|
|
'glDrawBuffer(s|)(ARB|EXT|NV|)'
|
|
'glGet(FramebufferAttachment)Parameteriv(ARB|EXT|)',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreFramebuffer( _context );' ],
|
|
},
|
|
'SelectorFramebufferCommands2' : {
|
|
'entries' : [
|
|
'gl()Named(FramebufferTexture)(1D|2D|3D|Layer|Face|)EXT',
|
|
'gl()Named(FramebufferRenderbuffer)()EXT',
|
|
'gl(Get)Named(FramebufferAttachment)(Parameteriv)EXT',
|
|
],
|
|
'subst' : {
|
|
'nondsa' : {
|
|
'.*CoverageEXT' : 'gl${m1}${m2}${m3}NV',
|
|
'.*MultisampleEXT' : 'gl${m1}${m2}${m3}EXT',
|
|
'.*FaceEXT' : 'gl${m1}${m2}${m3}ARB',
|
|
'default' : 'gl${m1}${m2}${m3}',
|
|
},
|
|
},
|
|
'impl' : [
|
|
'_context->dsa->DsaFramebuffer( _context, GL_FRAMEBUFFER, ${arg0});',
|
|
'_dispatch.call(&_dispatch.${nondsa})( GL_FRAMEBUFFER, ${arg1plus} );',
|
|
],
|
|
},
|
|
'SelectorFramebufferCommands3' : {
|
|
'entries' : [ 'glFramebuffer(DrawBuffer|ReadBuffer)(s|)EXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaFramebuffer( _context, GL_FRAMEBUFFER, ${arg0});',
|
|
'_dispatch.call(&_dispatch.gl${m1}${m2})( ${arg1plus} );',
|
|
],
|
|
},
|
|
'SelectorFramebufferCommands4' : {
|
|
'entries' : [ 'glCheckNamedFramebufferStatusEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaFramebuffer( _context, GL_FRAMEBUFFER, ${arg0});',
|
|
'return _dispatch.call(&_dispatch.glCheckFramebufferStatus)( ${arg1plus} );',
|
|
],
|
|
},
|
|
|
|
'BindRenderbuffer' : {
|
|
'entries' : [ 'glBindRenderbuffer(EXT|)' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowRenderbuffer( ${arg0}, ${arg1} ) ) {',
|
|
' _dispatch.call(&_dispatch.glBindRenderbuffer)( ${arg0}, ${arg1} );',
|
|
'}',
|
|
],
|
|
},
|
|
'SelectorRenderbufferCommands' : {
|
|
'entries' : [
|
|
'glRenderbufferStorage(Multisample|MultisampleCoverage|)(ARB|EXT|NV|)',
|
|
'glGetRenderbufferParameteriv(ARB|EXT|)',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreRenderbuffer( _context );' ],
|
|
},
|
|
'SelectorRenderbufferCommands2' : {
|
|
'entries' : [
|
|
'gl()Named(RenderbufferStorage)(Multisample|MultisampleCoverage|)EXT',
|
|
'gl(Get)Named(Renderbuffer)(Parameteriv)EXT',
|
|
],
|
|
'subst' : {
|
|
'nondsa' : {
|
|
'.*CoverageEXT' : 'gl${m1}${m2}${m3}NV',
|
|
'.*MultisampleEXT' : 'gl${m1}${m2}${m3}',
|
|
'default' : 'gl${m1}${m2}${m3}',
|
|
},
|
|
},
|
|
'impl' : [
|
|
'_context->dsa->DsaRenderbuffer( _context, GL_RENDERBUFFER, ${arg0});',
|
|
'_dispatch.call(&_dispatch.${nondsa})( GL_RENDERBUFFER, ${arg1plus} );',
|
|
],
|
|
},
|
|
|
|
'ClientAttribDefault' : {
|
|
'entries' : ['glClientAttribDefaultEXT'],
|
|
'impl' : [ '_context->dsa->ClientAttribDefault( _context, ${arg0} );' ],
|
|
},
|
|
'PushClientAttribDefault' : {
|
|
'entries' : ['glPushClientAttribDefaultEXT'],
|
|
'impl' : [
|
|
'DispatchTableGL &tbl = _context->dispatcher.emulation;',
|
|
'tbl.call(&tbl.glPushClientAttrib)(${arg0});',
|
|
'_context->dsa->ClientAttribDefault(_context, ${arg0});',
|
|
],
|
|
},
|
|
'BindVertexArray' : {
|
|
'entries' : [ 'glBindVertexArray' ],
|
|
'impl' : [ '_context->dsa->ShadowVao( _context, ${arg0} ); '],
|
|
},
|
|
# TODO - GL_ARB_base_instance ?
|
|
'RestoreEverything' : {
|
|
'entries' : [ 'glBegin', 'gl(Multi|)Draw(Arrays|Element|Elements)(Instanced|Indirect|BaseVertex|InstancedBaseVertex|Array|)(ARB|EXT|AMD|ATI|APPLE|)' ],
|
|
'prefix' : [ '_context->dsa->Restore( _context );' ],
|
|
},
|
|
'BindBuffer' : {
|
|
'entries' : [ 'glBindBuffer(ARB|)' ],
|
|
'impl' : [
|
|
'if (!_context->dsa->ShadowBuffer( ${arg0}, ${arg1} ) ) {',
|
|
' _dispatch.call(&_dispatch.glBindBuffer)(${arg0}, ${arg1});',
|
|
'}',
|
|
],
|
|
},
|
|
'SelectorBufferCommands' : {
|
|
'entries' : [
|
|
'gl(Get|Copy|)Buffer(Sub|)Data',
|
|
'gl(FlushMapped|Map|Unmap)Buffer(Range|)(ARB|EXT|)',
|
|
'glGetBuffer(Parameteriv|Pointerv)',
|
|
'gl(Vertex|Normal|Color|SecondaryColor)Pointer',
|
|
],
|
|
'prefix' : [ '_context->dsa->RestoreBuffer( _context );' ],
|
|
},
|
|
'DsaBufferCommands' : {
|
|
'entries' : [
|
|
'gl(Get|)Named(Copy|)Buffer(Data|SubData)EXT',
|
|
'gl(FlushMapped)Named()Buffer(Range)EXT',
|
|
'gl(Get)Named()Buffer(Parameteriv|Pointerv)EXT',
|
|
],
|
|
'impl' : [
|
|
'_context->dsa->DsaBuffer( _context, ${arg0});',
|
|
'_dispatch.call(&_dispatch.gl${m1}${m2}Buffer${m3})( GL_ARRAY_BUFFER, ${arg1plus} );',
|
|
],
|
|
},
|
|
'DsaBufferCommands2' : {
|
|
'entries' : [ 'gl(Map)NamedBuffer(Range|)EXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaBuffer( _context, ${arg0});',
|
|
'return _dispatch.call(&_dispatch.gl${m1}Buffer${m2})( GL_ARRAY_BUFFER, ${arg1plus} );',
|
|
],
|
|
},
|
|
'DsaBufferCommands3' : {
|
|
'entries' : [ 'glUnmapNamedBufferEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaBuffer( _context, ${arg0});',
|
|
'return _dispatch.call(&_dispatch.glUnmapBuffer)( GL_ARRAY_BUFFER );',
|
|
],
|
|
},
|
|
'DsaVertexArrayOffsetCommands3' : {
|
|
'entries' : [ 'glVertexArray(EdgeFlag)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}Pointer)( ${arg2}, reinterpret_cast<const GLvoid *>(${arg3}) );',
|
|
],
|
|
},
|
|
'DsaVertexArrayPointerOffsets4' : {
|
|
'entries' : [ 'glVertexArray(Index|Normal|FogCoord)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}Pointer)( ${arg2}, ${arg3}, reinterpret_cast<const GLvoid *>(${arg4}) );',
|
|
],
|
|
},
|
|
'DsaVertexArrayOffsetCommands5' : {
|
|
'entries' : [ 'glVertexArray(Vertex|Color|TexCoord|SecondaryColor)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}Pointer)( ${arg2}, ${arg3}, ${arg4}, reinterpret_cast<const GLvoid *>(${arg5}) );',
|
|
],
|
|
},
|
|
'DsaVertexArrayOffsetCommands6' : {
|
|
'entries' : [ 'glVertexArray(VertexAttribI)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}Pointer)( ${arg2}, ${arg3}, ${arg4}, ${arg5}, reinterpret_cast<const GLvoid *>(${arg6}) );',
|
|
],
|
|
},
|
|
'DsaVertexArrayOffsetCommands6EXT' : {
|
|
'entries' : [ 'glVertexArray(MultiTexCoord)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}PointerEXT)( ${arg2}, ${arg3}, ${arg4}, ${arg5}, reinterpret_cast<const GLvoid *>(${arg6}) );',
|
|
],
|
|
},
|
|
'DsaVertexArrayOffsetCommands7' : {
|
|
'entries' : [ 'glVertexArray(VertexAttrib)OffsetEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );'
|
|
'_context->dsa->DsaBuffer( _context, ${arg1} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}Pointer)( ${arg2}, ${arg3}, ${arg4}, ${arg5}, ${arg6}, reinterpret_cast<const GLvoid *>(${arg7}) );',
|
|
],
|
|
},
|
|
'Delete' : {
|
|
'entries' : [
|
|
'glDelete(Buffers)(ARB|)',
|
|
'glDelete(Framebuffers)(EXT|OES|)',
|
|
'glDelete(Renderbuffers)(EXT|OES|)',
|
|
'glDelete(Program)',
|
|
'glDelete(Programs)(ARB|NV)',
|
|
'glDelete(Textures)(EXT|)',
|
|
'glDelete(VertexArrays)(APPLE|OES|)',
|
|
],
|
|
'subst' : {
|
|
'method' : {
|
|
'.*Program$' : 'GlslProgram',
|
|
'.*Programs(ARB|NV)' : 'AsmPrograms',
|
|
'.*VertexArrays(APPLE|OES|)' : 'Vaos',
|
|
'default' : '${m1}',
|
|
},
|
|
},
|
|
'prefix' : [ '_context->dsa->Delete${method}( _context, ${arg0plus} );', ],
|
|
},
|
|
'VertexArrayEnable' : {
|
|
'entries' : [ 'gl(Enable|Disable)VertexArrayEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );',
|
|
'if ( ${arg1} >= GL_TEXTURE0 && ${arg1} <= GL_TEXTURE31) {',
|
|
' _context->dsa->DsaClientActiveTexture( _context, ${arg1} );',
|
|
' _dispatch.call(&_dispatch.gl${m1}ClientState)( GL_TEXTURE_COORD_ARRAY );',
|
|
'} else {',
|
|
' _dispatch.call(&_dispatch.gl${m1}ClientState)( ${arg1} );',
|
|
'}'
|
|
],
|
|
},
|
|
'VertexArrayAttribEnable' : {
|
|
'entries' : [ 'gl(Enable|Disable)VertexArrayAttribEXT' ],
|
|
'impl' : [
|
|
'_context->dsa->DsaVao( _context, ${arg0} );',
|
|
'_dispatch.call(&_dispatch.gl${m1}VertexAttribArray)( ${arg1} );'
|
|
],
|
|
},
|
|
}
|
|
|