diff options
author | Mathias Agopian <mathias@google.com> | 2012-01-28 14:20:59 -0800 |
---|---|---|
committer | Mathias Agopian <mathias@google.com> | 2012-01-28 20:41:35 -0800 |
commit | 780018ded1caf8f3673c25c858656792f2a45dc4 (patch) | |
tree | 58d2dcccc7e4a23704da417beea7bc2a934a7b93 /opengl/libs/GLES_trace | |
parent | 815af1ff595a6c028f28c16139a9e64ad98507a3 (diff) | |
download | frameworks_base-780018ded1caf8f3673c25c858656792f2a45dc4.zip frameworks_base-780018ded1caf8f3673c25c858656792f2a45dc4.tar.gz frameworks_base-780018ded1caf8f3673c25c858656792f2a45dc4.tar.bz2 |
update GLES headers and add support for corresponding new extensions.
Change-Id: I554d9659113b4721b748ee5c1a3b1ca82b11d75e
Diffstat (limited to 'opengl/libs/GLES_trace')
-rw-r--r-- | opengl/libs/GLES_trace/gltrace.proto | 62 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace.pb.cpp | 121 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace.pb.h | 122 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_api.cpp | 2299 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_api.h | 65 | ||||
-rwxr-xr-x | opengl/libs/GLES_trace/tools/genapi.py | 4 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/tools/testgenapi.py | 6 |
7 files changed, 2656 insertions, 23 deletions
diff --git a/opengl/libs/GLES_trace/gltrace.proto b/opengl/libs/GLES_trace/gltrace.proto index 7dde69f..11cf24f 100644 --- a/opengl/libs/GLES_trace/gltrace.proto +++ b/opengl/libs/GLES_trace/gltrace.proto @@ -400,6 +400,68 @@ message GLMessage { glViewport = 374; glWeightPointerOES = 375; + glActiveShaderProgramEXT = 502; + glAlphaFuncQCOM = 503; + glBeginQueryEXT = 504; + glBindProgramPipelineEXT = 505; + glBlitFramebufferANGLE = 506; + glCreateShaderProgramvEXT = 507; + glDeleteProgramPipelinesEXT = 508; + glDeleteQueriesEXT = 509; + glDrawBuffersNV = 510; + glEndQueryEXT = 511; + glFramebufferTexture2DMultisampleEXT = 512; + glGenProgramPipelinesEXT = 513; + glGenQueriesEXT = 514; + glGetGraphicsResetStatusEXT = 515; + glGetObjectLabelEXT = 516; + glGetProgramPipelineInfoLogEXT = 517; + glGetProgramPipelineivEXT = 518; + glGetQueryObjectuivEXT = 519; + glGetQueryivEXT = 520; + glGetnUniformfvEXT = 521; + glGetnUniformivEXT = 521; + glInsertEventMarkerEXT = 522; + glIsProgramPipelineEXT = 523; + glIsQueryEXT = 524; + glLabelObjectEXT = 525; + glPopGroupMarkerEXT = 526; + glProgramParameteriEXT = 527; + glProgramUniform1fEXT = 528; + glProgramUniform1fvEXT = 529; + glProgramUniform1iEXT = 530; + glProgramUniform1ivEXT = 531; + glProgramUniform2fEXT = 532; + glProgramUniform2fvEXT = 533; + glProgramUniform2iEXT = 534; + glProgramUniform2ivEXT = 535; + glProgramUniform3fEXT = 536; + glProgramUniform3fvEXT = 537; + glProgramUniform3iEXT = 538; + glProgramUniform3ivEXT = 539; + glProgramUniform4fEXT = 540; + glProgramUniform4fvEXT = 541; + glProgramUniform4iEXT = 542; + glProgramUniform4ivEXT = 543; + glProgramUniformMatrix2fvEXT = 544; + glProgramUniformMatrix3fvEXT = 545; + glProgramUniformMatrix4fvEXT = 546; + glPushGroupMarkerEXT = 547; + glReadBufferNV = 548; + glReadnPixelsEXT = 549; + glRenderbufferStorageMultisampleANGLE = 550; + glRenderbufferStorageMultisampleAPPLE = 551; + glRenderbufferStorageMultisampleEXT = 552; + glResolveMultisampleFramebufferAPPLE = 553; + glTexStorage1DEXT = 554; + glTexStorage2DEXT = 555; + glTexStorage3DEXT = 556; + glTextureStorage1DEXT = 557; + glTextureStorage2DEXT = 558; + glTextureStorage3DEXT = 559; + glUseProgramStagesEXT = 560; + glValidateProgramPipelineEXT = 561; + eglGetDisplay = 2000; eglInitialize = 2001; eglTerminate = 2002; diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.cpp b/opengl/libs/GLES_trace/src/gltrace.pb.cpp index 9a90603..bb9d4a7 100644 --- a/opengl/libs/GLES_trace/src/gltrace.pb.cpp +++ b/opengl/libs/GLES_trace/src/gltrace.pb.cpp @@ -419,6 +419,66 @@ bool GLMessage_Function_IsValid(int value) { case 373: case 374: case 375: + case 502: + case 503: + case 504: + case 505: + case 506: + case 507: + case 508: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 524: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 539: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: case 2000: case 2001: case 2002: @@ -850,6 +910,67 @@ const GLMessage_Function GLMessage::glVertexAttribPointer; const GLMessage_Function GLMessage::glVertexPointer; const GLMessage_Function GLMessage::glViewport; const GLMessage_Function GLMessage::glWeightPointerOES; +const GLMessage_Function GLMessage::glActiveShaderProgramEXT; +const GLMessage_Function GLMessage::glAlphaFuncQCOM; +const GLMessage_Function GLMessage::glBeginQueryEXT; +const GLMessage_Function GLMessage::glBindProgramPipelineEXT; +const GLMessage_Function GLMessage::glBlitFramebufferANGLE; +const GLMessage_Function GLMessage::glCreateShaderProgramvEXT; +const GLMessage_Function GLMessage::glDeleteProgramPipelinesEXT; +const GLMessage_Function GLMessage::glDeleteQueriesEXT; +const GLMessage_Function GLMessage::glDrawBuffersNV; +const GLMessage_Function GLMessage::glEndQueryEXT; +const GLMessage_Function GLMessage::glFramebufferTexture2DMultisampleEXT; +const GLMessage_Function GLMessage::glGenProgramPipelinesEXT; +const GLMessage_Function GLMessage::glGenQueriesEXT; +const GLMessage_Function GLMessage::glGetGraphicsResetStatusEXT; +const GLMessage_Function GLMessage::glGetObjectLabelEXT; +const GLMessage_Function GLMessage::glGetProgramPipelineInfoLogEXT; +const GLMessage_Function GLMessage::glGetProgramPipelineivEXT; +const GLMessage_Function GLMessage::glGetQueryObjectuivEXT; +const GLMessage_Function GLMessage::glGetQueryivEXT; +const GLMessage_Function GLMessage::glGetnUniformfvEXT; +const GLMessage_Function GLMessage::glGetnUniformivEXT; +const GLMessage_Function GLMessage::glInsertEventMarkerEXT; +const GLMessage_Function GLMessage::glIsProgramPipelineEXT; +const GLMessage_Function GLMessage::glIsQueryEXT; +const GLMessage_Function GLMessage::glLabelObjectEXT; +const GLMessage_Function GLMessage::glPopGroupMarkerEXT; +const GLMessage_Function GLMessage::glProgramParameteriEXT; +const GLMessage_Function GLMessage::glProgramUniform1fEXT; +const GLMessage_Function GLMessage::glProgramUniform1fvEXT; +const GLMessage_Function GLMessage::glProgramUniform1iEXT; +const GLMessage_Function GLMessage::glProgramUniform1ivEXT; +const GLMessage_Function GLMessage::glProgramUniform2fEXT; +const GLMessage_Function GLMessage::glProgramUniform2fvEXT; +const GLMessage_Function GLMessage::glProgramUniform2iEXT; +const GLMessage_Function GLMessage::glProgramUniform2ivEXT; +const GLMessage_Function GLMessage::glProgramUniform3fEXT; +const GLMessage_Function GLMessage::glProgramUniform3fvEXT; +const GLMessage_Function GLMessage::glProgramUniform3iEXT; +const GLMessage_Function GLMessage::glProgramUniform3ivEXT; +const GLMessage_Function GLMessage::glProgramUniform4fEXT; +const GLMessage_Function GLMessage::glProgramUniform4fvEXT; +const GLMessage_Function GLMessage::glProgramUniform4iEXT; +const GLMessage_Function GLMessage::glProgramUniform4ivEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix2fvEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix3fvEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix4fvEXT; +const GLMessage_Function GLMessage::glPushGroupMarkerEXT; +const GLMessage_Function GLMessage::glReadBufferNV; +const GLMessage_Function GLMessage::glReadnPixelsEXT; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleANGLE; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleAPPLE; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleEXT; +const GLMessage_Function GLMessage::glResolveMultisampleFramebufferAPPLE; +const GLMessage_Function GLMessage::glTexStorage1DEXT; +const GLMessage_Function GLMessage::glTexStorage2DEXT; +const GLMessage_Function GLMessage::glTexStorage3DEXT; +const GLMessage_Function GLMessage::glTextureStorage1DEXT; +const GLMessage_Function GLMessage::glTextureStorage2DEXT; +const GLMessage_Function GLMessage::glTextureStorage3DEXT; +const GLMessage_Function GLMessage::glUseProgramStagesEXT; +const GLMessage_Function GLMessage::glValidateProgramPipelineEXT; const GLMessage_Function GLMessage::eglGetDisplay; const GLMessage_Function GLMessage::eglInitialize; const GLMessage_Function GLMessage::eglTerminate; diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.h b/opengl/libs/GLES_trace/src/gltrace.pb.h index 5a7a16f..e3b8990 100644 --- a/opengl/libs/GLES_trace/src/gltrace.pb.h +++ b/opengl/libs/GLES_trace/src/gltrace.pb.h @@ -427,6 +427,67 @@ enum GLMessage_Function { GLMessage_Function_glVertexPointer = 373, GLMessage_Function_glViewport = 374, GLMessage_Function_glWeightPointerOES = 375, + GLMessage_Function_glActiveShaderProgramEXT = 502, + GLMessage_Function_glAlphaFuncQCOM = 503, + GLMessage_Function_glBeginQueryEXT = 504, + GLMessage_Function_glBindProgramPipelineEXT = 505, + GLMessage_Function_glBlitFramebufferANGLE = 506, + GLMessage_Function_glCreateShaderProgramvEXT = 507, + GLMessage_Function_glDeleteProgramPipelinesEXT = 508, + GLMessage_Function_glDeleteQueriesEXT = 509, + GLMessage_Function_glDrawBuffersNV = 510, + GLMessage_Function_glEndQueryEXT = 511, + GLMessage_Function_glFramebufferTexture2DMultisampleEXT = 512, + GLMessage_Function_glGenProgramPipelinesEXT = 513, + GLMessage_Function_glGenQueriesEXT = 514, + GLMessage_Function_glGetGraphicsResetStatusEXT = 515, + GLMessage_Function_glGetObjectLabelEXT = 516, + GLMessage_Function_glGetProgramPipelineInfoLogEXT = 517, + GLMessage_Function_glGetProgramPipelineivEXT = 518, + GLMessage_Function_glGetQueryObjectuivEXT = 519, + GLMessage_Function_glGetQueryivEXT = 520, + GLMessage_Function_glGetnUniformfvEXT = 521, + GLMessage_Function_glGetnUniformivEXT = 521, + GLMessage_Function_glInsertEventMarkerEXT = 522, + GLMessage_Function_glIsProgramPipelineEXT = 523, + GLMessage_Function_glIsQueryEXT = 524, + GLMessage_Function_glLabelObjectEXT = 525, + GLMessage_Function_glPopGroupMarkerEXT = 526, + GLMessage_Function_glProgramParameteriEXT = 527, + GLMessage_Function_glProgramUniform1fEXT = 528, + GLMessage_Function_glProgramUniform1fvEXT = 529, + GLMessage_Function_glProgramUniform1iEXT = 530, + GLMessage_Function_glProgramUniform1ivEXT = 531, + GLMessage_Function_glProgramUniform2fEXT = 532, + GLMessage_Function_glProgramUniform2fvEXT = 533, + GLMessage_Function_glProgramUniform2iEXT = 534, + GLMessage_Function_glProgramUniform2ivEXT = 535, + GLMessage_Function_glProgramUniform3fEXT = 536, + GLMessage_Function_glProgramUniform3fvEXT = 537, + GLMessage_Function_glProgramUniform3iEXT = 538, + GLMessage_Function_glProgramUniform3ivEXT = 539, + GLMessage_Function_glProgramUniform4fEXT = 540, + GLMessage_Function_glProgramUniform4fvEXT = 541, + GLMessage_Function_glProgramUniform4iEXT = 542, + GLMessage_Function_glProgramUniform4ivEXT = 543, + GLMessage_Function_glProgramUniformMatrix2fvEXT = 544, + GLMessage_Function_glProgramUniformMatrix3fvEXT = 545, + GLMessage_Function_glProgramUniformMatrix4fvEXT = 546, + GLMessage_Function_glPushGroupMarkerEXT = 547, + GLMessage_Function_glReadBufferNV = 548, + GLMessage_Function_glReadnPixelsEXT = 549, + GLMessage_Function_glRenderbufferStorageMultisampleANGLE = 550, + GLMessage_Function_glRenderbufferStorageMultisampleAPPLE = 551, + GLMessage_Function_glRenderbufferStorageMultisampleEXT = 552, + GLMessage_Function_glResolveMultisampleFramebufferAPPLE = 553, + GLMessage_Function_glTexStorage1DEXT = 554, + GLMessage_Function_glTexStorage2DEXT = 555, + GLMessage_Function_glTexStorage3DEXT = 556, + GLMessage_Function_glTextureStorage1DEXT = 557, + GLMessage_Function_glTextureStorage2DEXT = 558, + GLMessage_Function_glTextureStorage3DEXT = 559, + GLMessage_Function_glUseProgramStagesEXT = 560, + GLMessage_Function_glValidateProgramPipelineEXT = 561, GLMessage_Function_eglGetDisplay = 2000, GLMessage_Function_eglInitialize = 2001, GLMessage_Function_eglTerminate = 2002, @@ -1182,6 +1243,67 @@ class GLMessage : public ::google::protobuf::MessageLite { static const Function glVertexPointer = GLMessage_Function_glVertexPointer; static const Function glViewport = GLMessage_Function_glViewport; static const Function glWeightPointerOES = GLMessage_Function_glWeightPointerOES; + static const Function glActiveShaderProgramEXT = GLMessage_Function_glActiveShaderProgramEXT; + static const Function glAlphaFuncQCOM = GLMessage_Function_glAlphaFuncQCOM; + static const Function glBeginQueryEXT = GLMessage_Function_glBeginQueryEXT; + static const Function glBindProgramPipelineEXT = GLMessage_Function_glBindProgramPipelineEXT; + static const Function glBlitFramebufferANGLE = GLMessage_Function_glBlitFramebufferANGLE; + static const Function glCreateShaderProgramvEXT = GLMessage_Function_glCreateShaderProgramvEXT; + static const Function glDeleteProgramPipelinesEXT = GLMessage_Function_glDeleteProgramPipelinesEXT; + static const Function glDeleteQueriesEXT = GLMessage_Function_glDeleteQueriesEXT; + static const Function glDrawBuffersNV = GLMessage_Function_glDrawBuffersNV; + static const Function glEndQueryEXT = GLMessage_Function_glEndQueryEXT; + static const Function glFramebufferTexture2DMultisampleEXT = GLMessage_Function_glFramebufferTexture2DMultisampleEXT; + static const Function glGenProgramPipelinesEXT = GLMessage_Function_glGenProgramPipelinesEXT; + static const Function glGenQueriesEXT = GLMessage_Function_glGenQueriesEXT; + static const Function glGetGraphicsResetStatusEXT = GLMessage_Function_glGetGraphicsResetStatusEXT; + static const Function glGetObjectLabelEXT = GLMessage_Function_glGetObjectLabelEXT; + static const Function glGetProgramPipelineInfoLogEXT = GLMessage_Function_glGetProgramPipelineInfoLogEXT; + static const Function glGetProgramPipelineivEXT = GLMessage_Function_glGetProgramPipelineivEXT; + static const Function glGetQueryObjectuivEXT = GLMessage_Function_glGetQueryObjectuivEXT; + static const Function glGetQueryivEXT = GLMessage_Function_glGetQueryivEXT; + static const Function glGetnUniformfvEXT = GLMessage_Function_glGetnUniformfvEXT; + static const Function glGetnUniformivEXT = GLMessage_Function_glGetnUniformivEXT; + static const Function glInsertEventMarkerEXT = GLMessage_Function_glInsertEventMarkerEXT; + static const Function glIsProgramPipelineEXT = GLMessage_Function_glIsProgramPipelineEXT; + static const Function glIsQueryEXT = GLMessage_Function_glIsQueryEXT; + static const Function glLabelObjectEXT = GLMessage_Function_glLabelObjectEXT; + static const Function glPopGroupMarkerEXT = GLMessage_Function_glPopGroupMarkerEXT; + static const Function glProgramParameteriEXT = GLMessage_Function_glProgramParameteriEXT; + static const Function glProgramUniform1fEXT = GLMessage_Function_glProgramUniform1fEXT; + static const Function glProgramUniform1fvEXT = GLMessage_Function_glProgramUniform1fvEXT; + static const Function glProgramUniform1iEXT = GLMessage_Function_glProgramUniform1iEXT; + static const Function glProgramUniform1ivEXT = GLMessage_Function_glProgramUniform1ivEXT; + static const Function glProgramUniform2fEXT = GLMessage_Function_glProgramUniform2fEXT; + static const Function glProgramUniform2fvEXT = GLMessage_Function_glProgramUniform2fvEXT; + static const Function glProgramUniform2iEXT = GLMessage_Function_glProgramUniform2iEXT; + static const Function glProgramUniform2ivEXT = GLMessage_Function_glProgramUniform2ivEXT; + static const Function glProgramUniform3fEXT = GLMessage_Function_glProgramUniform3fEXT; + static const Function glProgramUniform3fvEXT = GLMessage_Function_glProgramUniform3fvEXT; + static const Function glProgramUniform3iEXT = GLMessage_Function_glProgramUniform3iEXT; + static const Function glProgramUniform3ivEXT = GLMessage_Function_glProgramUniform3ivEXT; + static const Function glProgramUniform4fEXT = GLMessage_Function_glProgramUniform4fEXT; + static const Function glProgramUniform4fvEXT = GLMessage_Function_glProgramUniform4fvEXT; + static const Function glProgramUniform4iEXT = GLMessage_Function_glProgramUniform4iEXT; + static const Function glProgramUniform4ivEXT = GLMessage_Function_glProgramUniform4ivEXT; + static const Function glProgramUniformMatrix2fvEXT = GLMessage_Function_glProgramUniformMatrix2fvEXT; + static const Function glProgramUniformMatrix3fvEXT = GLMessage_Function_glProgramUniformMatrix3fvEXT; + static const Function glProgramUniformMatrix4fvEXT = GLMessage_Function_glProgramUniformMatrix4fvEXT; + static const Function glPushGroupMarkerEXT = GLMessage_Function_glPushGroupMarkerEXT; + static const Function glReadBufferNV = GLMessage_Function_glReadBufferNV; + static const Function glReadnPixelsEXT = GLMessage_Function_glReadnPixelsEXT; + static const Function glRenderbufferStorageMultisampleANGLE = GLMessage_Function_glRenderbufferStorageMultisampleANGLE; + static const Function glRenderbufferStorageMultisampleAPPLE = GLMessage_Function_glRenderbufferStorageMultisampleAPPLE; + static const Function glRenderbufferStorageMultisampleEXT = GLMessage_Function_glRenderbufferStorageMultisampleEXT; + static const Function glResolveMultisampleFramebufferAPPLE = GLMessage_Function_glResolveMultisampleFramebufferAPPLE; + static const Function glTexStorage1DEXT = GLMessage_Function_glTexStorage1DEXT; + static const Function glTexStorage2DEXT = GLMessage_Function_glTexStorage2DEXT; + static const Function glTexStorage3DEXT = GLMessage_Function_glTexStorage3DEXT; + static const Function glTextureStorage1DEXT = GLMessage_Function_glTextureStorage1DEXT; + static const Function glTextureStorage2DEXT = GLMessage_Function_glTextureStorage2DEXT; + static const Function glTextureStorage3DEXT = GLMessage_Function_glTextureStorage3DEXT; + static const Function glUseProgramStagesEXT = GLMessage_Function_glUseProgramStagesEXT; + static const Function glValidateProgramPipelineEXT = GLMessage_Function_glValidateProgramPipelineEXT; static const Function eglGetDisplay = GLMessage_Function_eglGetDisplay; static const Function eglInitialize = GLMessage_Function_eglInitialize; static const Function eglTerminate = GLMessage_Function_eglTerminate; diff --git a/opengl/libs/GLES_trace/src/gltrace_api.cpp b/opengl/libs/GLES_trace/src/gltrace_api.cpp index c8e820d..a2366ac 100644 --- a/opengl/libs/GLES_trace/src/gltrace_api.cpp +++ b/opengl/libs/GLES_trace/src/gltrace_api.cpp @@ -5809,6 +5809,339 @@ void GLTrace_glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsize glContext->traceGLMessage(&glmsg); } +void GLTrace_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlitFramebufferANGLE); + + // copy argument srcX0 + GLMessage_DataType *arg_srcX0 = glmsg.add_args(); + arg_srcX0->set_isarray(false); + arg_srcX0->set_type(GLMessage::DataType::INT); + arg_srcX0->add_intvalue(srcX0); + + // copy argument srcY0 + GLMessage_DataType *arg_srcY0 = glmsg.add_args(); + arg_srcY0->set_isarray(false); + arg_srcY0->set_type(GLMessage::DataType::INT); + arg_srcY0->add_intvalue(srcY0); + + // copy argument srcX1 + GLMessage_DataType *arg_srcX1 = glmsg.add_args(); + arg_srcX1->set_isarray(false); + arg_srcX1->set_type(GLMessage::DataType::INT); + arg_srcX1->add_intvalue(srcX1); + + // copy argument srcY1 + GLMessage_DataType *arg_srcY1 = glmsg.add_args(); + arg_srcY1->set_isarray(false); + arg_srcY1->set_type(GLMessage::DataType::INT); + arg_srcY1->add_intvalue(srcY1); + + // copy argument dstX0 + GLMessage_DataType *arg_dstX0 = glmsg.add_args(); + arg_dstX0->set_isarray(false); + arg_dstX0->set_type(GLMessage::DataType::INT); + arg_dstX0->add_intvalue(dstX0); + + // copy argument dstY0 + GLMessage_DataType *arg_dstY0 = glmsg.add_args(); + arg_dstY0->set_isarray(false); + arg_dstY0->set_type(GLMessage::DataType::INT); + arg_dstY0->add_intvalue(dstY0); + + // copy argument dstX1 + GLMessage_DataType *arg_dstX1 = glmsg.add_args(); + arg_dstX1->set_isarray(false); + arg_dstX1->set_type(GLMessage::DataType::INT); + arg_dstX1->add_intvalue(dstX1); + + // copy argument dstY1 + GLMessage_DataType *arg_dstY1 = glmsg.add_args(); + arg_dstY1->set_isarray(false); + arg_dstY1->set_type(GLMessage::DataType::INT); + arg_dstY1->add_intvalue(dstY1); + + // copy argument mask + GLMessage_DataType *arg_mask = glmsg.add_args(); + arg_mask->set_isarray(false); + arg_mask->set_type(GLMessage::DataType::INT); + arg_mask->add_intvalue(mask); + + // copy argument filter + GLMessage_DataType *arg_filter = glmsg.add_args(); + arg_filter->set_isarray(false); + arg_filter->set_type(GLMessage::DataType::ENUM); + arg_filter->add_intvalue((int)filter); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleANGLE); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleAPPLE); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleAPPLE(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glResolveMultisampleFramebufferAPPLE(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glResolveMultisampleFramebufferAPPLE); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glResolveMultisampleFramebufferAPPLE(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLabelObjectEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument object + GLMessage_DataType *arg_object = glmsg.add_args(); + arg_object->set_isarray(false); + arg_object->set_type(GLMessage::DataType::INT); + arg_object->add_intvalue(object); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument label + GLMessage_DataType *arg_label = glmsg.add_args(); + arg_label->set_isarray(false); + arg_label->set_type(GLMessage::DataType::INT); + arg_label->add_intvalue((int)label); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLabelObjectEXT(type, object, length, label); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetObjectLabelEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument object + GLMessage_DataType *arg_object = glmsg.add_args(); + arg_object->set_isarray(false); + arg_object->set_type(GLMessage::DataType::INT); + arg_object->add_intvalue(object); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue((int)length); + + // copy argument label + GLMessage_DataType *arg_label = glmsg.add_args(); + arg_label->set_isarray(false); + arg_label->set_type(GLMessage::DataType::INT); + arg_label->add_intvalue((int)label); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetObjectLabelEXT(type, object, bufSize, length, label); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glInsertEventMarkerEXT(GLsizei length, const GLchar *marker) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glInsertEventMarkerEXT); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument marker + GLMessage_DataType *arg_marker = glmsg.add_args(); + arg_marker->set_isarray(false); + arg_marker->set_type(GLMessage::DataType::INT); + arg_marker->add_intvalue((int)marker); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glInsertEventMarkerEXT(length, marker); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPushGroupMarkerEXT(GLsizei length, const GLchar *marker) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPushGroupMarkerEXT); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument marker + GLMessage_DataType *arg_marker = glmsg.add_args(); + arg_marker->set_isarray(false); + arg_marker->set_type(GLMessage::DataType::INT); + arg_marker->add_intvalue((int)marker); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPushGroupMarkerEXT(length, marker); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPopGroupMarkerEXT(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPopGroupMarkerEXT); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPopGroupMarkerEXT(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + void GLTrace_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); @@ -5842,6 +6175,102 @@ void GLTrace_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, cons glContext->traceGLMessage(&glmsg); } +void GLTrace_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture2DMultisampleEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + void GLTrace_glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); @@ -5926,6 +6355,1769 @@ void GLTrace_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum ty glContext->traceGLMessage(&glmsg); } +void GLTrace_glGenQueriesEXT(GLsizei n, GLuint *ids) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenQueriesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument ids + GLMessage_DataType *arg_ids = glmsg.add_args(); + arg_ids->set_isarray(false); + arg_ids->set_type(GLMessage::DataType::INT); + arg_ids->add_intvalue((int)ids); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenQueriesEXT(n, ids); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteQueriesEXT(GLsizei n, const GLuint *ids) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteQueriesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument ids + GLMessage_DataType *arg_ids = glmsg.add_args(); + arg_ids->set_isarray(false); + arg_ids->set_type(GLMessage::DataType::INT); + arg_ids->add_intvalue((int)ids); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteQueriesEXT(n, ids); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsQueryEXT(GLuint id) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsQueryEXT); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsQueryEXT(id); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBeginQueryEXT(GLenum target, GLuint id) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBeginQueryEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBeginQueryEXT(target, id); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEndQueryEXT(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEndQueryEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEndQueryEXT(target); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetQueryivEXT(GLenum target, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetQueryivEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetQueryivEXT(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetQueryObjectuivEXT); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetQueryObjectuivEXT(id, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLenum GLTrace_glGetGraphicsResetStatusEXT(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetGraphicsResetStatusEXT); + + // call function + nsecs_t start_time = systemTime(); + GLenum retValue = glContext->hooks->gl.glGetGraphicsResetStatusEXT(); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::ENUM); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glReadnPixelsEXT); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument format + GLMessage_DataType *arg_format = glmsg.add_args(); + arg_format->set_isarray(false); + arg_format->set_type(GLMessage::DataType::ENUM); + arg_format->add_intvalue((int)format); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument data + GLMessage_DataType *arg_data = glmsg.add_args(); + arg_data->set_isarray(false); + arg_data->set_type(GLMessage::DataType::INT); + arg_data->add_intvalue((int)data); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glReadnPixelsEXT(x, y, width, height, format, type, bufSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, float *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetnUniformfvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetnUniformfvEXT(program, location, bufSize, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetnUniformivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetnUniformivEXT(program, location, bufSize, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUseProgramStagesEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument stages + GLMessage_DataType *arg_stages = glmsg.add_args(); + arg_stages->set_isarray(false); + arg_stages->set_type(GLMessage::DataType::INT); + arg_stages->add_intvalue(stages); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUseProgramStagesEXT(pipeline, stages, program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glActiveShaderProgramEXT(GLuint pipeline, GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glActiveShaderProgramEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glActiveShaderProgramEXT(pipeline, program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLuint GLTrace_glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar **strings) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCreateShaderProgramvEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument strings + GLMessage_DataType *arg_strings = glmsg.add_args(); + arg_strings->set_isarray(false); + arg_strings->set_type(GLMessage::DataType::INT); + arg_strings->add_intvalue((int)strings); + + // call function + nsecs_t start_time = systemTime(); + GLuint retValue = glContext->hooks->gl.glCreateShaderProgramvEXT(type, count, strings); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBindProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteProgramPipelinesEXT(GLsizei n, const GLuint *pipelines) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteProgramPipelinesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument pipelines + GLMessage_DataType *arg_pipelines = glmsg.add_args(); + arg_pipelines->set_isarray(false); + arg_pipelines->set_type(GLMessage::DataType::INT); + arg_pipelines->add_intvalue((int)pipelines); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteProgramPipelinesEXT(n, pipelines); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenProgramPipelinesEXT(GLsizei n, GLuint *pipelines) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenProgramPipelinesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument pipelines + GLMessage_DataType *arg_pipelines = glmsg.add_args(); + arg_pipelines->set_isarray(false); + arg_pipelines->set_type(GLMessage::DataType::INT); + arg_pipelines->add_intvalue((int)pipelines); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenProgramPipelinesEXT(n, pipelines); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramParameteriEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue(value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramParameteriEXT(program, pname, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramPipelineivEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramPipelineivEXT(pipeline, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1iEXT(GLuint program, GLint location, GLint x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1iEXT(program, location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2iEXT(GLuint program, GLint location, GLint x, GLint y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2iEXT(program, location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3iEXT(program, location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::INT); + arg_w->add_intvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4iEXT(program, location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1fEXT(program, location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat x, GLfloat y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2fEXT(program, location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3fEXT(program, location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::FLOAT); + arg_w->add_floatvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4fEXT(program, location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix2fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix2fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix3fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix3fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix4fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix4fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glValidateProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glValidateProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glValidateProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramPipelineInfoLogEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue((int)length); + + // copy argument infoLog + GLMessage_DataType *arg_infoLog = glmsg.add_args(); + arg_infoLog->set_isarray(false); + arg_infoLog->set_type(GLMessage::DataType::INT); + arg_infoLog->add_intvalue((int)infoLog); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage1DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage1DEXT(target, levels, internalformat, width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage2DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage2DEXT(target, levels, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage3DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage3DEXT(target, levels, internalformat, width, height, depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage1DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage1DEXT(texture, target, levels, internalformat, width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage2DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage2DEXT(texture, target, levels, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage3DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage3DEXT(texture, target, levels, internalformat, width, height, depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + void GLTrace_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); @@ -6022,6 +8214,75 @@ void GLTrace_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachme glContext->traceGLMessage(&glmsg); } +void GLTrace_glCoverageMaskNV(GLboolean mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCoverageMaskNV); + + // copy argument mask + GLMessage_DataType *arg_mask = glmsg.add_args(); + arg_mask->set_isarray(false); + arg_mask->set_type(GLMessage::DataType::BOOL); + arg_mask->add_boolvalue(mask); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCoverageMaskNV(mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCoverageOperationNV(GLenum operation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCoverageOperationNV); + + // copy argument operation + GLMessage_DataType *arg_operation = glmsg.add_args(); + arg_operation->set_isarray(false); + arg_operation->set_type(GLMessage::DataType::ENUM); + arg_operation->add_intvalue((int)operation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCoverageOperationNV(operation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawBuffersNV(GLsizei n, const GLenum *bufs) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawBuffersNV); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument bufs + GLMessage_DataType *arg_bufs = glmsg.add_args(); + arg_bufs->set_isarray(false); + arg_bufs->set_type(GLMessage::DataType::INT); + arg_bufs->add_intvalue((int)bufs); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawBuffersNV(n, bufs); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + void GLTrace_glDeleteFencesNV(GLsizei n, const GLuint *fences) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); @@ -6215,42 +8476,48 @@ void GLTrace_glSetFenceNV(GLuint fence, GLenum condition) { glContext->traceGLMessage(&glmsg); } -void GLTrace_glCoverageMaskNV(GLboolean mask) { +void GLTrace_glReadBufferNV(GLenum mode) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); - glmsg.set_function(GLMessage::glCoverageMaskNV); + glmsg.set_function(GLMessage::glReadBufferNV); - // copy argument mask - GLMessage_DataType *arg_mask = glmsg.add_args(); - arg_mask->set_isarray(false); - arg_mask->set_type(GLMessage::DataType::BOOL); - arg_mask->add_boolvalue(mask); + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); // call function nsecs_t start_time = systemTime(); - glContext->hooks->gl.glCoverageMaskNV(mask); + glContext->hooks->gl.glReadBufferNV(mode); nsecs_t end_time = systemTime(); fixupGLMessage(glContext, start_time, end_time, &glmsg); glContext->traceGLMessage(&glmsg); } -void GLTrace_glCoverageOperationNV(GLenum operation) { +void GLTrace_glAlphaFuncQCOM(GLenum func, GLclampf ref) { GLMessage glmsg; GLTraceContext *glContext = getGLTraceContext(); - glmsg.set_function(GLMessage::glCoverageOperationNV); + glmsg.set_function(GLMessage::glAlphaFuncQCOM); - // copy argument operation - GLMessage_DataType *arg_operation = glmsg.add_args(); - arg_operation->set_isarray(false); - arg_operation->set_type(GLMessage::DataType::ENUM); - arg_operation->add_intvalue((int)operation); + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::FLOAT); + arg_ref->add_floatvalue(ref); // call function nsecs_t start_time = systemTime(); - glContext->hooks->gl.glCoverageOperationNV(operation); + glContext->hooks->gl.glAlphaFuncQCOM(func, ref); nsecs_t end_time = systemTime(); fixupGLMessage(glContext, start_time, end_time, &glmsg); diff --git a/opengl/libs/GLES_trace/src/gltrace_api.h b/opengl/libs/GLES_trace/src/gltrace_api.h index 71b5a584..debcac0 100644 --- a/opengl/libs/GLES_trace/src/gltrace_api.h +++ b/opengl/libs/GLES_trace/src/gltrace_api.h @@ -194,11 +194,72 @@ void GLTrace_glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GL void GLTrace_glBeginPerfMonitorAMD(GLuint monitor); void GLTrace_glEndPerfMonitorAMD(GLuint monitor); void GLTrace_glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +void GLTrace_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void GLTrace_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glResolveMultisampleFramebufferAPPLE(void); +void GLTrace_glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); +void GLTrace_glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +void GLTrace_glInsertEventMarkerEXT(GLsizei length, const GLchar *marker); +void GLTrace_glPushGroupMarkerEXT(GLsizei length, const GLchar *marker); +void GLTrace_glPopGroupMarkerEXT(void); void GLTrace_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments); +void GLTrace_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); void GLTrace_glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); void GLTrace_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +void GLTrace_glGenQueriesEXT(GLsizei n, GLuint *ids); +void GLTrace_glDeleteQueriesEXT(GLsizei n, const GLuint *ids); +GLboolean GLTrace_glIsQueryEXT(GLuint id); +void GLTrace_glBeginQueryEXT(GLenum target, GLuint id); +void GLTrace_glEndQueryEXT(GLenum target); +void GLTrace_glGetQueryivEXT(GLenum target, GLenum pname, GLint *params); +void GLTrace_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params); +GLenum GLTrace_glGetGraphicsResetStatusEXT(void); +void GLTrace_glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +void GLTrace_glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, float *params); +void GLTrace_glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params); +void GLTrace_glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program); +void GLTrace_glActiveShaderProgramEXT(GLuint pipeline, GLuint program); +GLuint GLTrace_glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar **strings); +void GLTrace_glBindProgramPipelineEXT(GLuint pipeline); +void GLTrace_glDeleteProgramPipelinesEXT(GLsizei n, const GLuint *pipelines); +void GLTrace_glGenProgramPipelinesEXT(GLsizei n, GLuint *pipelines); +GLboolean GLTrace_glIsProgramPipelineEXT(GLuint pipeline); +void GLTrace_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); +void GLTrace_glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint *params); +void GLTrace_glProgramUniform1iEXT(GLuint program, GLint location, GLint x); +void GLTrace_glProgramUniform2iEXT(GLuint program, GLint location, GLint x, GLint y); +void GLTrace_glProgramUniform3iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z); +void GLTrace_glProgramUniform4iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +void GLTrace_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat x); +void GLTrace_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat x, GLfloat y); +void GLTrace_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +void GLTrace_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glValidateProgramPipelineEXT(GLuint pipeline); +void GLTrace_glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +void GLTrace_glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +void GLTrace_glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +void GLTrace_glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +void GLTrace_glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); void GLTrace_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); void GLTrace_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +void GLTrace_glCoverageMaskNV(GLboolean mask); +void GLTrace_glCoverageOperationNV(GLenum operation); +void GLTrace_glDrawBuffersNV(GLsizei n, const GLenum *bufs); void GLTrace_glDeleteFencesNV(GLsizei n, const GLuint *fences); void GLTrace_glGenFencesNV(GLsizei n, GLuint *fences); GLboolean GLTrace_glIsFenceNV(GLuint fence); @@ -206,8 +267,8 @@ GLboolean GLTrace_glTestFenceNV(GLuint fence); void GLTrace_glGetFenceivNV(GLuint fence, GLenum pname, GLint *params); void GLTrace_glFinishFenceNV(GLuint fence); void GLTrace_glSetFenceNV(GLuint fence, GLenum condition); -void GLTrace_glCoverageMaskNV(GLboolean mask); -void GLTrace_glCoverageOperationNV(GLenum operation); +void GLTrace_glReadBufferNV(GLenum mode); +void GLTrace_glAlphaFuncQCOM(GLenum func, GLclampf ref); void GLTrace_glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls); void GLTrace_glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); void GLTrace_glEnableDriverControlQCOM(GLuint driverControl); diff --git a/opengl/libs/GLES_trace/tools/genapi.py b/opengl/libs/GLES_trace/tools/genapi.py index 9b7a1cf..557e407 100755 --- a/opengl/libs/GLES_trace/tools/genapi.py +++ b/opengl/libs/GLES_trace/tools/genapi.py @@ -26,11 +26,11 @@ # module. The only reason to use pyratemp is that it is extremly # simple to install: # $ wget http://www.simple-is-better.org/template/pyratemp-current/pyratemp.py -# Put the file in the GLES2_trace/tools folder, or update PYTHONPATH +# Put the file in the GLES_trace/tools folder, or update PYTHONPATH # to point to wherever it was downloaded. # # USAGE -# $ cd GLES2_trace - run the program from GLES2_trace folder +# $ cd GLES_trace - run the program from GLES2_trace folder # $ ./tools/genapi.py - generates a .cpp and .h file # $ mv *.cpp *.h src/ - move the generated files into the src folder diff --git a/opengl/libs/GLES_trace/tools/testgenapi.py b/opengl/libs/GLES_trace/tools/testgenapi.py index 58a12a8..fe14954 100644 --- a/opengl/libs/GLES_trace/tools/testgenapi.py +++ b/opengl/libs/GLES_trace/tools/testgenapi.py @@ -15,7 +15,7 @@ # limitations under the License. # # USAGE -# $ cd GLES2_trace/tools +# $ cd GLES_trace/tools # $ python testgenapi.py import unittest @@ -45,9 +45,9 @@ class TestApiCall(unittest.TestCase): glext_apis = getApis('../../GLES_CM/glext_api.in', 'GL1Ext') self.assertEqual(len(gl2_apis), 142) - self.assertEqual(len(gl2ext_apis), 60) + self.assertEqual(len(gl2ext_apis), 121) self.assertEqual(len(gl_apis), 145) - self.assertEqual(len(glext_apis), 126) + self.assertEqual(len(glext_apis), 140) def test_parseArgs(self): args = parseArgs("void") |