summaryrefslogtreecommitdiffstats
path: root/opengl/libs/GLES_trace
diff options
context:
space:
mode:
Diffstat (limited to 'opengl/libs/GLES_trace')
-rw-r--r--opengl/libs/GLES_trace/gltrace.proto106
-rw-r--r--opengl/libs/GLES_trace/src/gltrace.pb.cpp252
-rw-r--r--opengl/libs/GLES_trace/src/gltrace.pb.h254
-rw-r--r--opengl/libs/GLES_trace/src/gltrace_api.cpp4656
-rw-r--r--opengl/libs/GLES_trace/src/gltrace_api.h116
-rwxr-xr-xopengl/libs/GLES_trace/tools/genapi.py20
6 files changed, 5371 insertions, 33 deletions
diff --git a/opengl/libs/GLES_trace/gltrace.proto b/opengl/libs/GLES_trace/gltrace.proto
index bbf3554..f8f4938 100644
--- a/opengl/libs/GLES_trace/gltrace.proto
+++ b/opengl/libs/GLES_trace/gltrace.proto
@@ -399,6 +399,110 @@ message GLMessage {
glVertexPointer = 373;
glViewport = 374;
glWeightPointerOES = 375;
+ glReadBuffer = 376;
+ glDrawRangeElements = 377;
+ glTexImage3D = 378;
+ glTexSubImage3D = 379;
+ glCopyTexSubImage3D = 380;
+ glCompressedTexImage3D = 381;
+ glCompressedTexSubImage3D = 382;
+ glGenQueries = 383;
+ glDeleteQueries = 384;
+ glIsQuery = 385;
+ glBeginQuery = 386;
+ glEndQuery = 387;
+ glGetQueryiv = 388;
+ glGetQueryObjectuiv = 389;
+ glUnmapBuffer = 390;
+ glGetBufferPointerv = 391;
+ glDrawBuffers = 392;
+ glUniformMatrix2x3fv = 393;
+ glUniformMatrix3x2fv = 394;
+ glUniformMatrix2x4fv = 395;
+ glUniformMatrix4x2fv = 396;
+ glUniformMatrix3x4fv = 397;
+ glUniformMatrix4x3fv = 398;
+ glBlitFramebuffer = 399;
+ glRenderbufferStorageMultisample = 400;
+ glFramebufferTextureLayer = 401;
+ glMapBufferRange = 402;
+ glFlushMappedBufferRange = 403;
+ glBindVertexArray = 404;
+ glDeleteVertexArrays = 405;
+ glGenVertexArrays = 406;
+ glIsVertexArray = 407;
+ glGetIntegeri_v = 408;
+ glBeginTransformFeedback = 409;
+ glEndTransformFeedback = 410;
+ glBindBufferRange = 411;
+ glBindBufferBase = 412;
+ glTransformFeedbackVaryings = 413;
+ glGetTransformFeedbackVarying = 414;
+ glVertexAttribIPointer = 415;
+ glGetVertexAttribIiv = 416;
+ glGetVertexAttribIuiv = 417;
+ glVertexAttribI4i = 418;
+ glVertexAttribI4ui = 419;
+ glVertexAttribI4iv = 420;
+ glVertexAttribI4uiv = 421;
+ glGetUniformuiv = 422;
+ glGetFragDataLocation = 423;
+ glUniform1ui = 424;
+ glUniform2ui = 425;
+ glUniform3ui = 426;
+ glUniform4ui = 427;
+ glUniform1uiv = 428;
+ glUniform2uiv = 429;
+ glUniform3uiv = 430;
+ glUniform4uiv = 431;
+ glClearBufferiv = 432;
+ glClearBufferuiv = 433;
+ glClearBufferfv = 434;
+ glClearBufferfi = 435;
+ glGetStringi = 436;
+ glCopyBufferSubData = 437;
+ glGetUniformIndices = 438;
+ glGetActiveUniformsiv = 439;
+ glGetUniformBlockIndex = 440;
+ glGetActiveUniformBlockiv = 441;
+ glGetActiveUniformBlockName = 442;
+ glUniformBlockBinding = 443;
+ glDrawArraysInstanced = 444;
+ glDrawElementsInstanced = 445;
+ glFenceSync = 446;
+ glIsSync = 447;
+ glDeleteSync = 448;
+ glClientWaitSync = 449;
+ glWaitSync = 450;
+ glGetInteger64v = 451;
+ glGetSynciv = 452;
+ glGetInteger64i_v = 453;
+ glGetBufferParameteri64v = 454;
+ glGenSamplers = 455;
+ glDeleteSamplers = 456;
+ glIsSampler = 457;
+ glBindSampler = 458;
+ glSamplerParameteri = 459;
+ glSamplerParameteriv = 460;
+ glSamplerParameterf = 461;
+ glSamplerParameterfv = 462;
+ glGetSamplerParameteriv = 463;
+ glGetSamplerParameterfv = 464;
+ glVertexAttribDivisor = 465;
+ glBindTransformFeedback = 466;
+ glDeleteTransformFeedbacks = 467;
+ glGenTransformFeedbacks = 468;
+ glIsTransformFeedback = 469;
+ glPauseTransformFeedback = 470;
+ glResumeTransformFeedback = 471;
+ glGetProgramBinary = 472;
+ glProgramBinary = 473;
+ glProgramParameteri = 474;
+ glInvalidateFramebuffer = 475;
+ glInvalidateSubFramebuffer = 476;
+ glTexStorage2D = 477;
+ glTexStorage3D = 478;
+ glGetInternalformativ = 479;
glActiveShaderProgramEXT = 502;
glAlphaFuncQCOM = 503;
@@ -523,6 +627,7 @@ message GLMessage {
FLOAT = 5; // GLfloat, GLclampf
BOOL = 6; // GLboolean
ENUM = 7; // GLenum
+ INT64 = 8; // GLint64, GLuint64
};
required Type type = 1 [default = VOID];
@@ -533,6 +638,7 @@ message GLMessage {
repeated bytes charValue = 5;
repeated bytes rawBytes = 6;
repeated bool boolValue = 7;
+ repeated int64 int64Value = 8;
}
message FrameBuffer {
diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.cpp b/opengl/libs/GLES_trace/src/gltrace.pb.cpp
index d587c49..ed9a457 100644
--- a/opengl/libs/GLES_trace/src/gltrace.pb.cpp
+++ b/opengl/libs/GLES_trace/src/gltrace.pb.cpp
@@ -419,6 +419,110 @@ bool GLMessage_Function_IsValid(int value) {
case 373:
case 374:
case 375:
+ case 376:
+ case 377:
+ case 378:
+ case 379:
+ case 380:
+ case 381:
+ case 382:
+ case 383:
+ case 384:
+ case 385:
+ case 386:
+ case 387:
+ case 388:
+ case 389:
+ case 390:
+ case 391:
+ case 392:
+ case 393:
+ case 394:
+ case 395:
+ case 396:
+ case 397:
+ case 398:
+ case 399:
+ case 400:
+ case 401:
+ case 402:
+ case 403:
+ case 404:
+ case 405:
+ case 406:
+ case 407:
+ case 408:
+ case 409:
+ case 410:
+ case 411:
+ case 412:
+ case 413:
+ case 414:
+ case 415:
+ case 416:
+ case 417:
+ case 418:
+ case 419:
+ case 420:
+ case 421:
+ case 422:
+ case 423:
+ case 424:
+ case 425:
+ case 426:
+ case 427:
+ case 428:
+ case 429:
+ case 430:
+ case 431:
+ case 432:
+ case 433:
+ case 434:
+ case 435:
+ case 436:
+ case 437:
+ case 438:
+ case 439:
+ case 440:
+ case 441:
+ case 442:
+ case 443:
+ case 444:
+ case 445:
+ case 446:
+ case 447:
+ case 448:
+ case 449:
+ case 450:
+ case 451:
+ case 452:
+ case 453:
+ case 454:
+ case 455:
+ case 456:
+ case 457:
+ case 458:
+ case 459:
+ case 460:
+ case 461:
+ case 462:
+ case 463:
+ case 464:
+ case 465:
+ case 466:
+ case 467:
+ case 468:
+ case 469:
+ case 470:
+ case 471:
+ case 472:
+ case 473:
+ case 474:
+ case 475:
+ case 476:
+ case 477:
+ case 478:
+ case 479:
case 502:
case 503:
case 504:
@@ -910,6 +1014,110 @@ const GLMessage_Function GLMessage::glVertexAttribPointer;
const GLMessage_Function GLMessage::glVertexPointer;
const GLMessage_Function GLMessage::glViewport;
const GLMessage_Function GLMessage::glWeightPointerOES;
+const GLMessage_Function GLMessage::glReadBuffer;
+const GLMessage_Function GLMessage::glDrawRangeElements;
+const GLMessage_Function GLMessage::glTexImage3D;
+const GLMessage_Function GLMessage::glTexSubImage3D;
+const GLMessage_Function GLMessage::glCopyTexSubImage3D;
+const GLMessage_Function GLMessage::glCompressedTexImage3D;
+const GLMessage_Function GLMessage::glCompressedTexSubImage3D;
+const GLMessage_Function GLMessage::glGenQueries;
+const GLMessage_Function GLMessage::glDeleteQueries;
+const GLMessage_Function GLMessage::glIsQuery;
+const GLMessage_Function GLMessage::glBeginQuery;
+const GLMessage_Function GLMessage::glEndQuery;
+const GLMessage_Function GLMessage::glGetQueryiv;
+const GLMessage_Function GLMessage::glGetQueryObjectuiv;
+const GLMessage_Function GLMessage::glUnmapBuffer;
+const GLMessage_Function GLMessage::glGetBufferPointerv;
+const GLMessage_Function GLMessage::glDrawBuffers;
+const GLMessage_Function GLMessage::glUniformMatrix2x3fv;
+const GLMessage_Function GLMessage::glUniformMatrix3x2fv;
+const GLMessage_Function GLMessage::glUniformMatrix2x4fv;
+const GLMessage_Function GLMessage::glUniformMatrix4x2fv;
+const GLMessage_Function GLMessage::glUniformMatrix3x4fv;
+const GLMessage_Function GLMessage::glUniformMatrix4x3fv;
+const GLMessage_Function GLMessage::glBlitFramebuffer;
+const GLMessage_Function GLMessage::glRenderbufferStorageMultisample;
+const GLMessage_Function GLMessage::glFramebufferTextureLayer;
+const GLMessage_Function GLMessage::glMapBufferRange;
+const GLMessage_Function GLMessage::glFlushMappedBufferRange;
+const GLMessage_Function GLMessage::glBindVertexArray;
+const GLMessage_Function GLMessage::glDeleteVertexArrays;
+const GLMessage_Function GLMessage::glGenVertexArrays;
+const GLMessage_Function GLMessage::glIsVertexArray;
+const GLMessage_Function GLMessage::glGetIntegeri_v;
+const GLMessage_Function GLMessage::glBeginTransformFeedback;
+const GLMessage_Function GLMessage::glEndTransformFeedback;
+const GLMessage_Function GLMessage::glBindBufferRange;
+const GLMessage_Function GLMessage::glBindBufferBase;
+const GLMessage_Function GLMessage::glTransformFeedbackVaryings;
+const GLMessage_Function GLMessage::glGetTransformFeedbackVarying;
+const GLMessage_Function GLMessage::glVertexAttribIPointer;
+const GLMessage_Function GLMessage::glGetVertexAttribIiv;
+const GLMessage_Function GLMessage::glGetVertexAttribIuiv;
+const GLMessage_Function GLMessage::glVertexAttribI4i;
+const GLMessage_Function GLMessage::glVertexAttribI4ui;
+const GLMessage_Function GLMessage::glVertexAttribI4iv;
+const GLMessage_Function GLMessage::glVertexAttribI4uiv;
+const GLMessage_Function GLMessage::glGetUniformuiv;
+const GLMessage_Function GLMessage::glGetFragDataLocation;
+const GLMessage_Function GLMessage::glUniform1ui;
+const GLMessage_Function GLMessage::glUniform2ui;
+const GLMessage_Function GLMessage::glUniform3ui;
+const GLMessage_Function GLMessage::glUniform4ui;
+const GLMessage_Function GLMessage::glUniform1uiv;
+const GLMessage_Function GLMessage::glUniform2uiv;
+const GLMessage_Function GLMessage::glUniform3uiv;
+const GLMessage_Function GLMessage::glUniform4uiv;
+const GLMessage_Function GLMessage::glClearBufferiv;
+const GLMessage_Function GLMessage::glClearBufferuiv;
+const GLMessage_Function GLMessage::glClearBufferfv;
+const GLMessage_Function GLMessage::glClearBufferfi;
+const GLMessage_Function GLMessage::glGetStringi;
+const GLMessage_Function GLMessage::glCopyBufferSubData;
+const GLMessage_Function GLMessage::glGetUniformIndices;
+const GLMessage_Function GLMessage::glGetActiveUniformsiv;
+const GLMessage_Function GLMessage::glGetUniformBlockIndex;
+const GLMessage_Function GLMessage::glGetActiveUniformBlockiv;
+const GLMessage_Function GLMessage::glGetActiveUniformBlockName;
+const GLMessage_Function GLMessage::glUniformBlockBinding;
+const GLMessage_Function GLMessage::glDrawArraysInstanced;
+const GLMessage_Function GLMessage::glDrawElementsInstanced;
+const GLMessage_Function GLMessage::glFenceSync;
+const GLMessage_Function GLMessage::glIsSync;
+const GLMessage_Function GLMessage::glDeleteSync;
+const GLMessage_Function GLMessage::glClientWaitSync;
+const GLMessage_Function GLMessage::glWaitSync;
+const GLMessage_Function GLMessage::glGetInteger64v;
+const GLMessage_Function GLMessage::glGetSynciv;
+const GLMessage_Function GLMessage::glGetInteger64i_v;
+const GLMessage_Function GLMessage::glGetBufferParameteri64v;
+const GLMessage_Function GLMessage::glGenSamplers;
+const GLMessage_Function GLMessage::glDeleteSamplers;
+const GLMessage_Function GLMessage::glIsSampler;
+const GLMessage_Function GLMessage::glBindSampler;
+const GLMessage_Function GLMessage::glSamplerParameteri;
+const GLMessage_Function GLMessage::glSamplerParameteriv;
+const GLMessage_Function GLMessage::glSamplerParameterf;
+const GLMessage_Function GLMessage::glSamplerParameterfv;
+const GLMessage_Function GLMessage::glGetSamplerParameteriv;
+const GLMessage_Function GLMessage::glGetSamplerParameterfv;
+const GLMessage_Function GLMessage::glVertexAttribDivisor;
+const GLMessage_Function GLMessage::glBindTransformFeedback;
+const GLMessage_Function GLMessage::glDeleteTransformFeedbacks;
+const GLMessage_Function GLMessage::glGenTransformFeedbacks;
+const GLMessage_Function GLMessage::glIsTransformFeedback;
+const GLMessage_Function GLMessage::glPauseTransformFeedback;
+const GLMessage_Function GLMessage::glResumeTransformFeedback;
+const GLMessage_Function GLMessage::glGetProgramBinary;
+const GLMessage_Function GLMessage::glProgramBinary;
+const GLMessage_Function GLMessage::glProgramParameteri;
+const GLMessage_Function GLMessage::glInvalidateFramebuffer;
+const GLMessage_Function GLMessage::glInvalidateSubFramebuffer;
+const GLMessage_Function GLMessage::glTexStorage2D;
+const GLMessage_Function GLMessage::glTexStorage3D;
+const GLMessage_Function GLMessage::glGetInternalformativ;
const GLMessage_Function GLMessage::glActiveShaderProgramEXT;
const GLMessage_Function GLMessage::glAlphaFuncQCOM;
const GLMessage_Function GLMessage::glBeginQueryEXT;
@@ -1032,6 +1240,7 @@ bool GLMessage_DataType_Type_IsValid(int value) {
case 5:
case 6:
case 7:
+ case 8:
return true;
default:
return false;
@@ -1046,6 +1255,7 @@ const GLMessage_DataType_Type GLMessage_DataType::INT;
const GLMessage_DataType_Type GLMessage_DataType::FLOAT;
const GLMessage_DataType_Type GLMessage_DataType::BOOL;
const GLMessage_DataType_Type GLMessage_DataType::ENUM;
+const GLMessage_DataType_Type GLMessage_DataType::INT64;
const GLMessage_DataType_Type GLMessage_DataType::Type_MIN;
const GLMessage_DataType_Type GLMessage_DataType::Type_MAX;
const int GLMessage_DataType::Type_ARRAYSIZE;
@@ -1058,6 +1268,7 @@ const int GLMessage_DataType::kFloatValueFieldNumber;
const int GLMessage_DataType::kCharValueFieldNumber;
const int GLMessage_DataType::kRawBytesFieldNumber;
const int GLMessage_DataType::kBoolValueFieldNumber;
+const int GLMessage_DataType::kInt64ValueFieldNumber;
#endif // !_MSC_VER
GLMessage_DataType::GLMessage_DataType()
@@ -1115,6 +1326,7 @@ void GLMessage_DataType::Clear() {
charvalue_.Clear();
rawbytes_.Clear();
boolvalue_.Clear();
+ int64value_.Clear();
::memset(_has_bits_, 0, sizeof(_has_bits_));
}
@@ -1250,6 +1462,28 @@ bool GLMessage_DataType::MergePartialFromCodedStream(
goto handle_uninterpreted;
}
if (input->ExpectTag(56)) goto parse_boolValue;
+ if (input->ExpectTag(64)) goto parse_int64Value;
+ break;
+ }
+
+ // repeated int64 int64Value = 8;
+ case 8: {
+ if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
+ ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
+ parse_int64Value:
+ DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive<
+ ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+ 1, 64, input, this->mutable_int64value())));
+ } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag)
+ == ::google::protobuf::internal::WireFormatLite::
+ WIRETYPE_LENGTH_DELIMITED) {
+ DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<
+ ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>(
+ input, this->mutable_int64value())));
+ } else {
+ goto handle_uninterpreted;
+ }
+ if (input->ExpectTag(64)) goto parse_int64Value;
if (input->ExpectAtEnd()) return true;
break;
}
@@ -1312,6 +1546,12 @@ void GLMessage_DataType::SerializeWithCachedSizes(
7, this->boolvalue(i), output);
}
+ // repeated int64 int64Value = 8;
+ for (int i = 0; i < this->int64value_size(); i++) {
+ ::google::protobuf::internal::WireFormatLite::WriteInt64(
+ 8, this->int64value(i), output);
+ }
+
}
int GLMessage_DataType::ByteSize() const {
@@ -1368,6 +1608,16 @@ int GLMessage_DataType::ByteSize() const {
total_size += 1 * this->boolvalue_size() + data_size;
}
+ // repeated int64 int64Value = 8;
+ {
+ int data_size = 0;
+ for (int i = 0; i < this->int64value_size(); i++) {
+ data_size += ::google::protobuf::internal::WireFormatLite::
+ Int64Size(this->int64value(i));
+ }
+ total_size += 1 * this->int64value_size() + data_size;
+ }
+
GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
_cached_size_ = total_size;
GOOGLE_SAFE_CONCURRENT_WRITES_END();
@@ -1386,6 +1636,7 @@ void GLMessage_DataType::MergeFrom(const GLMessage_DataType& from) {
charvalue_.MergeFrom(from.charvalue_);
rawbytes_.MergeFrom(from.rawbytes_);
boolvalue_.MergeFrom(from.boolvalue_);
+ int64value_.MergeFrom(from.int64value_);
if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
if (from._has_bit(0)) {
set_type(from.type());
@@ -1417,6 +1668,7 @@ void GLMessage_DataType::Swap(GLMessage_DataType* other) {
charvalue_.Swap(&other->charvalue_);
rawbytes_.Swap(&other->rawbytes_);
boolvalue_.Swap(&other->boolvalue_);
+ int64value_.Swap(&other->int64value_);
std::swap(_has_bits_[0], other->_has_bits_[0]);
std::swap(_cached_size_, other->_cached_size_);
}
diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.h b/opengl/libs/GLES_trace/src/gltrace.pb.h
index 0901be7..9eae26c 100644
--- a/opengl/libs/GLES_trace/src/gltrace.pb.h
+++ b/opengl/libs/GLES_trace/src/gltrace.pb.h
@@ -43,11 +43,12 @@ enum GLMessage_DataType_Type {
GLMessage_DataType_Type_INT = 4,
GLMessage_DataType_Type_FLOAT = 5,
GLMessage_DataType_Type_BOOL = 6,
- GLMessage_DataType_Type_ENUM = 7
+ GLMessage_DataType_Type_ENUM = 7,
+ GLMessage_DataType_Type_INT64 = 8
};
bool GLMessage_DataType_Type_IsValid(int value);
const GLMessage_DataType_Type GLMessage_DataType_Type_Type_MIN = GLMessage_DataType_Type_VOID;
-const GLMessage_DataType_Type GLMessage_DataType_Type_Type_MAX = GLMessage_DataType_Type_ENUM;
+const GLMessage_DataType_Type GLMessage_DataType_Type_Type_MAX = GLMessage_DataType_Type_INT64;
const int GLMessage_DataType_Type_Type_ARRAYSIZE = GLMessage_DataType_Type_Type_MAX + 1;
enum GLMessage_Function {
@@ -427,6 +428,110 @@ enum GLMessage_Function {
GLMessage_Function_glVertexPointer = 373,
GLMessage_Function_glViewport = 374,
GLMessage_Function_glWeightPointerOES = 375,
+ GLMessage_Function_glReadBuffer = 376,
+ GLMessage_Function_glDrawRangeElements = 377,
+ GLMessage_Function_glTexImage3D = 378,
+ GLMessage_Function_glTexSubImage3D = 379,
+ GLMessage_Function_glCopyTexSubImage3D = 380,
+ GLMessage_Function_glCompressedTexImage3D = 381,
+ GLMessage_Function_glCompressedTexSubImage3D = 382,
+ GLMessage_Function_glGenQueries = 383,
+ GLMessage_Function_glDeleteQueries = 384,
+ GLMessage_Function_glIsQuery = 385,
+ GLMessage_Function_glBeginQuery = 386,
+ GLMessage_Function_glEndQuery = 387,
+ GLMessage_Function_glGetQueryiv = 388,
+ GLMessage_Function_glGetQueryObjectuiv = 389,
+ GLMessage_Function_glUnmapBuffer = 390,
+ GLMessage_Function_glGetBufferPointerv = 391,
+ GLMessage_Function_glDrawBuffers = 392,
+ GLMessage_Function_glUniformMatrix2x3fv = 393,
+ GLMessage_Function_glUniformMatrix3x2fv = 394,
+ GLMessage_Function_glUniformMatrix2x4fv = 395,
+ GLMessage_Function_glUniformMatrix4x2fv = 396,
+ GLMessage_Function_glUniformMatrix3x4fv = 397,
+ GLMessage_Function_glUniformMatrix4x3fv = 398,
+ GLMessage_Function_glBlitFramebuffer = 399,
+ GLMessage_Function_glRenderbufferStorageMultisample = 400,
+ GLMessage_Function_glFramebufferTextureLayer = 401,
+ GLMessage_Function_glMapBufferRange = 402,
+ GLMessage_Function_glFlushMappedBufferRange = 403,
+ GLMessage_Function_glBindVertexArray = 404,
+ GLMessage_Function_glDeleteVertexArrays = 405,
+ GLMessage_Function_glGenVertexArrays = 406,
+ GLMessage_Function_glIsVertexArray = 407,
+ GLMessage_Function_glGetIntegeri_v = 408,
+ GLMessage_Function_glBeginTransformFeedback = 409,
+ GLMessage_Function_glEndTransformFeedback = 410,
+ GLMessage_Function_glBindBufferRange = 411,
+ GLMessage_Function_glBindBufferBase = 412,
+ GLMessage_Function_glTransformFeedbackVaryings = 413,
+ GLMessage_Function_glGetTransformFeedbackVarying = 414,
+ GLMessage_Function_glVertexAttribIPointer = 415,
+ GLMessage_Function_glGetVertexAttribIiv = 416,
+ GLMessage_Function_glGetVertexAttribIuiv = 417,
+ GLMessage_Function_glVertexAttribI4i = 418,
+ GLMessage_Function_glVertexAttribI4ui = 419,
+ GLMessage_Function_glVertexAttribI4iv = 420,
+ GLMessage_Function_glVertexAttribI4uiv = 421,
+ GLMessage_Function_glGetUniformuiv = 422,
+ GLMessage_Function_glGetFragDataLocation = 423,
+ GLMessage_Function_glUniform1ui = 424,
+ GLMessage_Function_glUniform2ui = 425,
+ GLMessage_Function_glUniform3ui = 426,
+ GLMessage_Function_glUniform4ui = 427,
+ GLMessage_Function_glUniform1uiv = 428,
+ GLMessage_Function_glUniform2uiv = 429,
+ GLMessage_Function_glUniform3uiv = 430,
+ GLMessage_Function_glUniform4uiv = 431,
+ GLMessage_Function_glClearBufferiv = 432,
+ GLMessage_Function_glClearBufferuiv = 433,
+ GLMessage_Function_glClearBufferfv = 434,
+ GLMessage_Function_glClearBufferfi = 435,
+ GLMessage_Function_glGetStringi = 436,
+ GLMessage_Function_glCopyBufferSubData = 437,
+ GLMessage_Function_glGetUniformIndices = 438,
+ GLMessage_Function_glGetActiveUniformsiv = 439,
+ GLMessage_Function_glGetUniformBlockIndex = 440,
+ GLMessage_Function_glGetActiveUniformBlockiv = 441,
+ GLMessage_Function_glGetActiveUniformBlockName = 442,
+ GLMessage_Function_glUniformBlockBinding = 443,
+ GLMessage_Function_glDrawArraysInstanced = 444,
+ GLMessage_Function_glDrawElementsInstanced = 445,
+ GLMessage_Function_glFenceSync = 446,
+ GLMessage_Function_glIsSync = 447,
+ GLMessage_Function_glDeleteSync = 448,
+ GLMessage_Function_glClientWaitSync = 449,
+ GLMessage_Function_glWaitSync = 450,
+ GLMessage_Function_glGetInteger64v = 451,
+ GLMessage_Function_glGetSynciv = 452,
+ GLMessage_Function_glGetInteger64i_v = 453,
+ GLMessage_Function_glGetBufferParameteri64v = 454,
+ GLMessage_Function_glGenSamplers = 455,
+ GLMessage_Function_glDeleteSamplers = 456,
+ GLMessage_Function_glIsSampler = 457,
+ GLMessage_Function_glBindSampler = 458,
+ GLMessage_Function_glSamplerParameteri = 459,
+ GLMessage_Function_glSamplerParameteriv = 460,
+ GLMessage_Function_glSamplerParameterf = 461,
+ GLMessage_Function_glSamplerParameterfv = 462,
+ GLMessage_Function_glGetSamplerParameteriv = 463,
+ GLMessage_Function_glGetSamplerParameterfv = 464,
+ GLMessage_Function_glVertexAttribDivisor = 465,
+ GLMessage_Function_glBindTransformFeedback = 466,
+ GLMessage_Function_glDeleteTransformFeedbacks = 467,
+ GLMessage_Function_glGenTransformFeedbacks = 468,
+ GLMessage_Function_glIsTransformFeedback = 469,
+ GLMessage_Function_glPauseTransformFeedback = 470,
+ GLMessage_Function_glResumeTransformFeedback = 471,
+ GLMessage_Function_glGetProgramBinary = 472,
+ GLMessage_Function_glProgramBinary = 473,
+ GLMessage_Function_glProgramParameteri = 474,
+ GLMessage_Function_glInvalidateFramebuffer = 475,
+ GLMessage_Function_glInvalidateSubFramebuffer = 476,
+ GLMessage_Function_glTexStorage2D = 477,
+ GLMessage_Function_glTexStorage3D = 478,
+ GLMessage_Function_glGetInternalformativ = 479,
GLMessage_Function_glActiveShaderProgramEXT = 502,
GLMessage_Function_glAlphaFuncQCOM = 503,
GLMessage_Function_glBeginQueryEXT = 504,
@@ -593,6 +698,7 @@ class GLMessage_DataType : public ::google::protobuf::MessageLite {
static const Type FLOAT = GLMessage_DataType_Type_FLOAT;
static const Type BOOL = GLMessage_DataType_Type_BOOL;
static const Type ENUM = GLMessage_DataType_Type_ENUM;
+ static const Type INT64 = GLMessage_DataType_Type_INT64;
static inline bool Type_IsValid(int value) {
return GLMessage_DataType_Type_IsValid(value);
}
@@ -687,6 +793,18 @@ class GLMessage_DataType : public ::google::protobuf::MessageLite {
inline ::google::protobuf::RepeatedField< bool >*
mutable_boolvalue();
+ // repeated int64 int64Value = 8;
+ inline int int64value_size() const;
+ inline void clear_int64value();
+ static const int kInt64ValueFieldNumber = 8;
+ inline ::google::protobuf::int64 int64value(int index) const;
+ inline void set_int64value(int index, ::google::protobuf::int64 value);
+ inline void add_int64value(::google::protobuf::int64 value);
+ inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+ int64value() const;
+ inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+ mutable_int64value();
+
// @@protoc_insertion_point(class_scope:android.gltrace.GLMessage.DataType)
private:
mutable int _cached_size_;
@@ -698,11 +816,12 @@ class GLMessage_DataType : public ::google::protobuf::MessageLite {
::google::protobuf::RepeatedPtrField< ::std::string> charvalue_;
::google::protobuf::RepeatedPtrField< ::std::string> rawbytes_;
::google::protobuf::RepeatedField< bool > boolvalue_;
+ ::google::protobuf::RepeatedField< ::google::protobuf::int64 > int64value_;
friend void protobuf_AddDesc_gltrace_2eproto();
friend void protobuf_AssignDesc_gltrace_2eproto();
friend void protobuf_ShutdownFile_gltrace_2eproto();
- ::google::protobuf::uint32 _has_bits_[(7 + 31) / 32];
+ ::google::protobuf::uint32 _has_bits_[(8 + 31) / 32];
// WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
inline bool _has_bit(int index) const {
@@ -1243,6 +1362,110 @@ 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 glReadBuffer = GLMessage_Function_glReadBuffer;
+ static const Function glDrawRangeElements = GLMessage_Function_glDrawRangeElements;
+ static const Function glTexImage3D = GLMessage_Function_glTexImage3D;
+ static const Function glTexSubImage3D = GLMessage_Function_glTexSubImage3D;
+ static const Function glCopyTexSubImage3D = GLMessage_Function_glCopyTexSubImage3D;
+ static const Function glCompressedTexImage3D = GLMessage_Function_glCompressedTexImage3D;
+ static const Function glCompressedTexSubImage3D = GLMessage_Function_glCompressedTexSubImage3D;
+ static const Function glGenQueries = GLMessage_Function_glGenQueries;
+ static const Function glDeleteQueries = GLMessage_Function_glDeleteQueries;
+ static const Function glIsQuery = GLMessage_Function_glIsQuery;
+ static const Function glBeginQuery = GLMessage_Function_glBeginQuery;
+ static const Function glEndQuery = GLMessage_Function_glEndQuery;
+ static const Function glGetQueryiv = GLMessage_Function_glGetQueryiv;
+ static const Function glGetQueryObjectuiv = GLMessage_Function_glGetQueryObjectuiv;
+ static const Function glUnmapBuffer = GLMessage_Function_glUnmapBuffer;
+ static const Function glGetBufferPointerv = GLMessage_Function_glGetBufferPointerv;
+ static const Function glDrawBuffers = GLMessage_Function_glDrawBuffers;
+ static const Function glUniformMatrix2x3fv = GLMessage_Function_glUniformMatrix2x3fv;
+ static const Function glUniformMatrix3x2fv = GLMessage_Function_glUniformMatrix3x2fv;
+ static const Function glUniformMatrix2x4fv = GLMessage_Function_glUniformMatrix2x4fv;
+ static const Function glUniformMatrix4x2fv = GLMessage_Function_glUniformMatrix4x2fv;
+ static const Function glUniformMatrix3x4fv = GLMessage_Function_glUniformMatrix3x4fv;
+ static const Function glUniformMatrix4x3fv = GLMessage_Function_glUniformMatrix4x3fv;
+ static const Function glBlitFramebuffer = GLMessage_Function_glBlitFramebuffer;
+ static const Function glRenderbufferStorageMultisample = GLMessage_Function_glRenderbufferStorageMultisample;
+ static const Function glFramebufferTextureLayer = GLMessage_Function_glFramebufferTextureLayer;
+ static const Function glMapBufferRange = GLMessage_Function_glMapBufferRange;
+ static const Function glFlushMappedBufferRange = GLMessage_Function_glFlushMappedBufferRange;
+ static const Function glBindVertexArray = GLMessage_Function_glBindVertexArray;
+ static const Function glDeleteVertexArrays = GLMessage_Function_glDeleteVertexArrays;
+ static const Function glGenVertexArrays = GLMessage_Function_glGenVertexArrays;
+ static const Function glIsVertexArray = GLMessage_Function_glIsVertexArray;
+ static const Function glGetIntegeri_v = GLMessage_Function_glGetIntegeri_v;
+ static const Function glBeginTransformFeedback = GLMessage_Function_glBeginTransformFeedback;
+ static const Function glEndTransformFeedback = GLMessage_Function_glEndTransformFeedback;
+ static const Function glBindBufferRange = GLMessage_Function_glBindBufferRange;
+ static const Function glBindBufferBase = GLMessage_Function_glBindBufferBase;
+ static const Function glTransformFeedbackVaryings = GLMessage_Function_glTransformFeedbackVaryings;
+ static const Function glGetTransformFeedbackVarying = GLMessage_Function_glGetTransformFeedbackVarying;
+ static const Function glVertexAttribIPointer = GLMessage_Function_glVertexAttribIPointer;
+ static const Function glGetVertexAttribIiv = GLMessage_Function_glGetVertexAttribIiv;
+ static const Function glGetVertexAttribIuiv = GLMessage_Function_glGetVertexAttribIuiv;
+ static const Function glVertexAttribI4i = GLMessage_Function_glVertexAttribI4i;
+ static const Function glVertexAttribI4ui = GLMessage_Function_glVertexAttribI4ui;
+ static const Function glVertexAttribI4iv = GLMessage_Function_glVertexAttribI4iv;
+ static const Function glVertexAttribI4uiv = GLMessage_Function_glVertexAttribI4uiv;
+ static const Function glGetUniformuiv = GLMessage_Function_glGetUniformuiv;
+ static const Function glGetFragDataLocation = GLMessage_Function_glGetFragDataLocation;
+ static const Function glUniform1ui = GLMessage_Function_glUniform1ui;
+ static const Function glUniform2ui = GLMessage_Function_glUniform2ui;
+ static const Function glUniform3ui = GLMessage_Function_glUniform3ui;
+ static const Function glUniform4ui = GLMessage_Function_glUniform4ui;
+ static const Function glUniform1uiv = GLMessage_Function_glUniform1uiv;
+ static const Function glUniform2uiv = GLMessage_Function_glUniform2uiv;
+ static const Function glUniform3uiv = GLMessage_Function_glUniform3uiv;
+ static const Function glUniform4uiv = GLMessage_Function_glUniform4uiv;
+ static const Function glClearBufferiv = GLMessage_Function_glClearBufferiv;
+ static const Function glClearBufferuiv = GLMessage_Function_glClearBufferuiv;
+ static const Function glClearBufferfv = GLMessage_Function_glClearBufferfv;
+ static const Function glClearBufferfi = GLMessage_Function_glClearBufferfi;
+ static const Function glGetStringi = GLMessage_Function_glGetStringi;
+ static const Function glCopyBufferSubData = GLMessage_Function_glCopyBufferSubData;
+ static const Function glGetUniformIndices = GLMessage_Function_glGetUniformIndices;
+ static const Function glGetActiveUniformsiv = GLMessage_Function_glGetActiveUniformsiv;
+ static const Function glGetUniformBlockIndex = GLMessage_Function_glGetUniformBlockIndex;
+ static const Function glGetActiveUniformBlockiv = GLMessage_Function_glGetActiveUniformBlockiv;
+ static const Function glGetActiveUniformBlockName = GLMessage_Function_glGetActiveUniformBlockName;
+ static const Function glUniformBlockBinding = GLMessage_Function_glUniformBlockBinding;
+ static const Function glDrawArraysInstanced = GLMessage_Function_glDrawArraysInstanced;
+ static const Function glDrawElementsInstanced = GLMessage_Function_glDrawElementsInstanced;
+ static const Function glFenceSync = GLMessage_Function_glFenceSync;
+ static const Function glIsSync = GLMessage_Function_glIsSync;
+ static const Function glDeleteSync = GLMessage_Function_glDeleteSync;
+ static const Function glClientWaitSync = GLMessage_Function_glClientWaitSync;
+ static const Function glWaitSync = GLMessage_Function_glWaitSync;
+ static const Function glGetInteger64v = GLMessage_Function_glGetInteger64v;
+ static const Function glGetSynciv = GLMessage_Function_glGetSynciv;
+ static const Function glGetInteger64i_v = GLMessage_Function_glGetInteger64i_v;
+ static const Function glGetBufferParameteri64v = GLMessage_Function_glGetBufferParameteri64v;
+ static const Function glGenSamplers = GLMessage_Function_glGenSamplers;
+ static const Function glDeleteSamplers = GLMessage_Function_glDeleteSamplers;
+ static const Function glIsSampler = GLMessage_Function_glIsSampler;
+ static const Function glBindSampler = GLMessage_Function_glBindSampler;
+ static const Function glSamplerParameteri = GLMessage_Function_glSamplerParameteri;
+ static const Function glSamplerParameteriv = GLMessage_Function_glSamplerParameteriv;
+ static const Function glSamplerParameterf = GLMessage_Function_glSamplerParameterf;
+ static const Function glSamplerParameterfv = GLMessage_Function_glSamplerParameterfv;
+ static const Function glGetSamplerParameteriv = GLMessage_Function_glGetSamplerParameteriv;
+ static const Function glGetSamplerParameterfv = GLMessage_Function_glGetSamplerParameterfv;
+ static const Function glVertexAttribDivisor = GLMessage_Function_glVertexAttribDivisor;
+ static const Function glBindTransformFeedback = GLMessage_Function_glBindTransformFeedback;
+ static const Function glDeleteTransformFeedbacks = GLMessage_Function_glDeleteTransformFeedbacks;
+ static const Function glGenTransformFeedbacks = GLMessage_Function_glGenTransformFeedbacks;
+ static const Function glIsTransformFeedback = GLMessage_Function_glIsTransformFeedback;
+ static const Function glPauseTransformFeedback = GLMessage_Function_glPauseTransformFeedback;
+ static const Function glResumeTransformFeedback = GLMessage_Function_glResumeTransformFeedback;
+ static const Function glGetProgramBinary = GLMessage_Function_glGetProgramBinary;
+ static const Function glProgramBinary = GLMessage_Function_glProgramBinary;
+ static const Function glProgramParameteri = GLMessage_Function_glProgramParameteri;
+ static const Function glInvalidateFramebuffer = GLMessage_Function_glInvalidateFramebuffer;
+ static const Function glInvalidateSubFramebuffer = GLMessage_Function_glInvalidateSubFramebuffer;
+ static const Function glTexStorage2D = GLMessage_Function_glTexStorage2D;
+ static const Function glTexStorage3D = GLMessage_Function_glTexStorage3D;
+ static const Function glGetInternalformativ = GLMessage_Function_glGetInternalformativ;
static const Function glActiveShaderProgramEXT = GLMessage_Function_glActiveShaderProgramEXT;
static const Function glAlphaFuncQCOM = GLMessage_Function_glAlphaFuncQCOM;
static const Function glBeginQueryEXT = GLMessage_Function_glBeginQueryEXT;
@@ -1660,6 +1883,31 @@ GLMessage_DataType::mutable_boolvalue() {
return &boolvalue_;
}
+// repeated int64 int64Value = 8;
+inline int GLMessage_DataType::int64value_size() const {
+ return int64value_.size();
+}
+inline void GLMessage_DataType::clear_int64value() {
+ int64value_.Clear();
+}
+inline ::google::protobuf::int64 GLMessage_DataType::int64value(int index) const {
+ return int64value_.Get(index);
+}
+inline void GLMessage_DataType::set_int64value(int index, ::google::protobuf::int64 value) {
+ int64value_.Set(index, value);
+}
+inline void GLMessage_DataType::add_int64value(::google::protobuf::int64 value) {
+ int64value_.Add(value);
+}
+inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
+GLMessage_DataType::int64value() const {
+ return int64value_;
+}
+inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
+GLMessage_DataType::mutable_int64value() {
+ return &int64value_;
+}
+
// -------------------------------------------------------------------
// GLMessage_FrameBuffer
diff --git a/opengl/libs/GLES_trace/src/gltrace_api.cpp b/opengl/libs/GLES_trace/src/gltrace_api.cpp
index d7ab3c3..2b1a702 100644
--- a/opengl/libs/GLES_trace/src/gltrace_api.cpp
+++ b/opengl/libs/GLES_trace/src/gltrace_api.cpp
@@ -18,7 +18,7 @@
#include <cutils/log.h>
#include <utils/Timers.h>
-#include <GLES2/gl2.h>
+#include <GLES3/gl3.h>
#include "gltrace.pb.h"
#include "gltrace_context.h"
@@ -28,7 +28,7 @@
namespace android {
namespace gltrace {
-// Definitions for GL2 APIs
+// Definitions for GL3 APIs
void GLTrace_glActiveTexture(GLenum texture) {
GLMessage glmsg;
@@ -269,7 +269,7 @@ void GLTrace_glBindTexture(GLenum target, GLuint texture) {
glContext->traceGLMessage(&glmsg);
}
-void GLTrace_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+void GLTrace_glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
GLMessage glmsg;
GLTraceContext *glContext = getGLTraceContext();
@@ -615,7 +615,7 @@ void GLTrace_glClear(GLbitfield mask) {
glContext->traceGLMessage(&glmsg);
}
-void GLTrace_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
+void GLTrace_glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) {
GLMessage glmsg;
GLTraceContext *glContext = getGLTraceContext();
@@ -661,7 +661,7 @@ void GLTrace_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf
glContext->traceGLMessage(&glmsg);
}
-void GLTrace_glClearDepthf(GLclampf depth) {
+void GLTrace_glClearDepthf(GLfloat depth) {
GLMessage glmsg;
GLTraceContext *glContext = getGLTraceContext();
@@ -1425,28 +1425,28 @@ void GLTrace_glDepthMask(GLboolean flag) {
glContext->traceGLMessage(&glmsg);
}
-void GLTrace_glDepthRangef(GLclampf zNear, GLclampf zFar) {
+void GLTrace_glDepthRangef(GLfloat n, GLfloat f) {
GLMessage glmsg;
GLTraceContext *glContext = getGLTraceContext();
glmsg.set_function(GLMessage::glDepthRangef);
- // copy argument zNear
- GLMessage_DataType *arg_zNear = glmsg.add_args();
- arg_zNear->set_isarray(false);
- arg_zNear->set_type(GLMessage::DataType::FLOAT);
- arg_zNear->add_floatvalue(zNear);
+ // copy argument n
+ GLMessage_DataType *arg_n = glmsg.add_args();
+ arg_n->set_isarray(false);
+ arg_n->set_type(GLMessage::DataType::FLOAT);
+ arg_n->add_floatvalue(n);
- // copy argument zFar
- GLMessage_DataType *arg_zFar = glmsg.add_args();
- arg_zFar->set_isarray(false);
- arg_zFar->set_type(GLMessage::DataType::FLOAT);
- arg_zFar->add_floatvalue(zFar);
+ // copy argument f
+ GLMessage_DataType *arg_f = glmsg.add_args();
+ arg_f->set_isarray(false);
+ arg_f->set_type(GLMessage::DataType::FLOAT);
+ arg_f->add_floatvalue(f);
// call function
nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
- glContext->hooks->gl.glDepthRangef(zNear, zFar);
+ glContext->hooks->gl.glDepthRangef(n, f);
nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
@@ -3705,7 +3705,7 @@ void GLTrace_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei
glContext->traceGLMessage(&glmsg);
}
-void GLTrace_glSampleCoverage(GLclampf value, GLboolean invert) {
+void GLTrace_glSampleCoverage(GLfloat value, GLboolean invert) {
GLMessage glmsg;
GLTraceContext *glContext = getGLTraceContext();
@@ -5723,6 +5723,4626 @@ void GLTrace_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) {
glContext->traceGLMessage(&glmsg);
}
+void GLTrace_glReadBuffer(GLenum mode) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glReadBuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glReadBuffer(mode);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDrawRangeElements);
+
+ // 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);
+
+ // copy argument start
+ GLMessage_DataType *arg_start = glmsg.add_args();
+ arg_start->set_isarray(false);
+ arg_start->set_type(GLMessage::DataType::INT);
+ arg_start->add_intvalue(start);
+
+ // copy argument end
+ GLMessage_DataType *arg_end = glmsg.add_args();
+ arg_end->set_isarray(false);
+ arg_end->set_type(GLMessage::DataType::INT);
+ arg_end->add_intvalue(end);
+
+ // 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 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 indices
+ GLMessage_DataType *arg_indices = glmsg.add_args();
+ arg_indices->set_isarray(false);
+ arg_indices->set_type(GLMessage::DataType::INT);
+ arg_indices->add_intvalue((int)indices);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDrawRangeElements(mode, start, end, count, type, indices);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) indices,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glTexImage3D);
+
+ // 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 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 internalformat
+ GLMessage_DataType *arg_internalformat = glmsg.add_args();
+ arg_internalformat->set_isarray(false);
+ arg_internalformat->set_type(GLMessage::DataType::INT);
+ arg_internalformat->add_intvalue(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);
+
+ // copy argument border
+ GLMessage_DataType *arg_border = glmsg.add_args();
+ arg_border->set_isarray(false);
+ arg_border->set_type(GLMessage::DataType::INT);
+ arg_border->add_intvalue(border);
+
+ // 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 pixels
+ GLMessage_DataType *arg_pixels = glmsg.add_args();
+ arg_pixels->set_isarray(false);
+ arg_pixels->set_type(GLMessage::DataType::INT);
+ arg_pixels->add_intvalue((int)pixels);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, pixels);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) pixels,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glTexSubImage3D);
+
+ // 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 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 xoffset
+ GLMessage_DataType *arg_xoffset = glmsg.add_args();
+ arg_xoffset->set_isarray(false);
+ arg_xoffset->set_type(GLMessage::DataType::INT);
+ arg_xoffset->add_intvalue(xoffset);
+
+ // copy argument yoffset
+ GLMessage_DataType *arg_yoffset = glmsg.add_args();
+ arg_yoffset->set_isarray(false);
+ arg_yoffset->set_type(GLMessage::DataType::INT);
+ arg_yoffset->add_intvalue(yoffset);
+
+ // copy argument zoffset
+ GLMessage_DataType *arg_zoffset = glmsg.add_args();
+ arg_zoffset->set_isarray(false);
+ arg_zoffset->set_type(GLMessage::DataType::INT);
+ arg_zoffset->add_intvalue(zoffset);
+
+ // 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);
+
+ // 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 pixels
+ GLMessage_DataType *arg_pixels = glmsg.add_args();
+ arg_pixels->set_isarray(false);
+ arg_pixels->set_type(GLMessage::DataType::INT);
+ arg_pixels->add_intvalue((int)pixels);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) pixels,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glCopyTexSubImage3D);
+
+ // 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 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 xoffset
+ GLMessage_DataType *arg_xoffset = glmsg.add_args();
+ arg_xoffset->set_isarray(false);
+ arg_xoffset->set_type(GLMessage::DataType::INT);
+ arg_xoffset->add_intvalue(xoffset);
+
+ // copy argument yoffset
+ GLMessage_DataType *arg_yoffset = glmsg.add_args();
+ arg_yoffset->set_isarray(false);
+ arg_yoffset->set_type(GLMessage::DataType::INT);
+ arg_yoffset->add_intvalue(yoffset);
+
+ // copy argument zoffset
+ GLMessage_DataType *arg_zoffset = glmsg.add_args();
+ arg_zoffset->set_isarray(false);
+ arg_zoffset->set_type(GLMessage::DataType::INT);
+ arg_zoffset->add_intvalue(zoffset);
+
+ // 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);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glCompressedTexImage3D);
+
+ // 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 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 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);
+
+ // copy argument border
+ GLMessage_DataType *arg_border = glmsg.add_args();
+ arg_border->set_isarray(false);
+ arg_border->set_type(GLMessage::DataType::INT);
+ arg_border->add_intvalue(border);
+
+ // copy argument imageSize
+ GLMessage_DataType *arg_imageSize = glmsg.add_args();
+ arg_imageSize->set_isarray(false);
+ arg_imageSize->set_type(GLMessage::DataType::INT);
+ arg_imageSize->add_intvalue(imageSize);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) data,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glCompressedTexSubImage3D);
+
+ // 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 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 xoffset
+ GLMessage_DataType *arg_xoffset = glmsg.add_args();
+ arg_xoffset->set_isarray(false);
+ arg_xoffset->set_type(GLMessage::DataType::INT);
+ arg_xoffset->add_intvalue(xoffset);
+
+ // copy argument yoffset
+ GLMessage_DataType *arg_yoffset = glmsg.add_args();
+ arg_yoffset->set_isarray(false);
+ arg_yoffset->set_type(GLMessage::DataType::INT);
+ arg_yoffset->add_intvalue(yoffset);
+
+ // copy argument zoffset
+ GLMessage_DataType *arg_zoffset = glmsg.add_args();
+ arg_zoffset->set_isarray(false);
+ arg_zoffset->set_type(GLMessage::DataType::INT);
+ arg_zoffset->add_intvalue(zoffset);
+
+ // 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);
+
+ // 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 imageSize
+ GLMessage_DataType *arg_imageSize = glmsg.add_args();
+ arg_imageSize->set_isarray(false);
+ arg_imageSize->set_type(GLMessage::DataType::INT);
+ arg_imageSize->add_intvalue(imageSize);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) data,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGenQueries(GLsizei n, GLuint* ids) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGenQueries);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGenQueries(n, ids);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) ids,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDeleteQueries(GLsizei n, const GLuint* ids) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDeleteQueries);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDeleteQueries(n, ids);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) ids,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLboolean GLTrace_glIsQuery(GLuint id) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glIsQuery);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glIsQuery(id);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glBeginQuery(GLenum target, GLuint id) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBeginQuery);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBeginQuery(target, id);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glEndQuery(GLenum target) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glEndQuery);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glEndQuery(target);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetQueryiv(GLenum target, GLenum pname, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetQueryiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetQueryiv(target, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetQueryObjectuiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetQueryObjectuiv(id, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLboolean GLTrace_glUnmapBuffer(GLenum target) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUnmapBuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glUnmapBuffer(target);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetBufferPointerv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetBufferPointerv(target, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDrawBuffers(GLsizei n, const GLenum* bufs) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDrawBuffers);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDrawBuffers(n, bufs);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) bufs,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix2x3fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix2x3fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix3x2fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix3x2fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix2x4fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix2x4fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix4x2fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix4x2fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix3x4fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix3x4fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformMatrix4x3fv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformMatrix4x3fv(location, count, transpose, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBlitFramebuffer(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::glBlitFramebuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glRenderbufferStorageMultisample);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glRenderbufferStorageMultisample(target, samples, internalformat, width, height);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glFramebufferTextureLayer);
+
+ // 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 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 layer
+ GLMessage_DataType *arg_layer = glmsg.add_args();
+ arg_layer->set_isarray(false);
+ arg_layer->set_type(GLMessage::DataType::INT);
+ arg_layer->add_intvalue(layer);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glFramebufferTextureLayer(target, attachment, texture, level, layer);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLvoid* GLTrace_glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glMapBufferRange);
+
+ // 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 offset
+ GLMessage_DataType *arg_offset = glmsg.add_args();
+ arg_offset->set_isarray(false);
+ arg_offset->set_type(GLMessage::DataType::INT);
+ arg_offset->add_intvalue(offset);
+
+ // 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 access
+ GLMessage_DataType *arg_access = glmsg.add_args();
+ arg_access->set_isarray(false);
+ arg_access->set_type(GLMessage::DataType::INT);
+ arg_access->add_intvalue(access);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLvoid* retValue = glContext->hooks->gl.glMapBufferRange(target, offset, length, access);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::INT);
+ rt->add_intvalue((int)retValue);
+
+ void *pointerArgs[] = {
+ (void *) retValue,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glFlushMappedBufferRange);
+
+ // 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 offset
+ GLMessage_DataType *arg_offset = glmsg.add_args();
+ arg_offset->set_isarray(false);
+ arg_offset->set_type(GLMessage::DataType::INT);
+ arg_offset->add_intvalue(offset);
+
+ // 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);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glFlushMappedBufferRange(target, offset, length);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBindVertexArray(GLuint array) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBindVertexArray);
+
+ // copy argument array
+ GLMessage_DataType *arg_array = glmsg.add_args();
+ arg_array->set_isarray(false);
+ arg_array->set_type(GLMessage::DataType::INT);
+ arg_array->add_intvalue(array);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBindVertexArray(array);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDeleteVertexArrays(GLsizei n, const GLuint* arrays) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDeleteVertexArrays);
+
+ // 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 arrays
+ GLMessage_DataType *arg_arrays = glmsg.add_args();
+ arg_arrays->set_isarray(false);
+ arg_arrays->set_type(GLMessage::DataType::INT);
+ arg_arrays->add_intvalue((int)arrays);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDeleteVertexArrays(n, arrays);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) arrays,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGenVertexArrays(GLsizei n, GLuint* arrays) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGenVertexArrays);
+
+ // 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 arrays
+ GLMessage_DataType *arg_arrays = glmsg.add_args();
+ arg_arrays->set_isarray(false);
+ arg_arrays->set_type(GLMessage::DataType::INT);
+ arg_arrays->add_intvalue((int)arrays);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGenVertexArrays(n, arrays);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) arrays,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLboolean GLTrace_glIsVertexArray(GLuint array) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glIsVertexArray);
+
+ // copy argument array
+ GLMessage_DataType *arg_array = glmsg.add_args();
+ arg_array->set_isarray(false);
+ arg_array->set_type(GLMessage::DataType::INT);
+ arg_array->add_intvalue(array);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glIsVertexArray(array);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glGetIntegeri_v(GLenum target, GLuint index, GLint* data) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetIntegeri_v);
+
+ // 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 index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetIntegeri_v(target, index, data);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) data,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBeginTransformFeedback(GLenum primitiveMode) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBeginTransformFeedback);
+
+ // copy argument primitiveMode
+ GLMessage_DataType *arg_primitiveMode = glmsg.add_args();
+ arg_primitiveMode->set_isarray(false);
+ arg_primitiveMode->set_type(GLMessage::DataType::ENUM);
+ arg_primitiveMode->add_intvalue((int)primitiveMode);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBeginTransformFeedback(primitiveMode);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glEndTransformFeedback(void) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glEndTransformFeedback);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glEndTransformFeedback();
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBindBufferRange);
+
+ // 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 index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::INT);
+ arg_buffer->add_intvalue(buffer);
+
+ // copy argument offset
+ GLMessage_DataType *arg_offset = glmsg.add_args();
+ arg_offset->set_isarray(false);
+ arg_offset->set_type(GLMessage::DataType::INT);
+ arg_offset->add_intvalue(offset);
+
+ // copy argument size
+ GLMessage_DataType *arg_size = glmsg.add_args();
+ arg_size->set_isarray(false);
+ arg_size->set_type(GLMessage::DataType::INT);
+ arg_size->add_intvalue(size);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBindBufferRange(target, index, buffer, offset, size);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBindBufferBase(GLenum target, GLuint index, GLuint buffer) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBindBufferBase);
+
+ // 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 index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::INT);
+ arg_buffer->add_intvalue(buffer);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBindBufferBase(target, index, buffer);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glTransformFeedbackVaryings);
+
+ // 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 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 varyings
+ GLMessage_DataType *arg_varyings = glmsg.add_args();
+ arg_varyings->set_isarray(false);
+ arg_varyings->set_type(GLMessage::DataType::INT);
+ arg_varyings->add_intvalue((int)varyings);
+
+ // copy argument bufferMode
+ GLMessage_DataType *arg_bufferMode = glmsg.add_args();
+ arg_bufferMode->set_isarray(false);
+ arg_bufferMode->set_type(GLMessage::DataType::ENUM);
+ arg_bufferMode->add_intvalue((int)bufferMode);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glTransformFeedbackVaryings(program, count, varyings, bufferMode);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) varyings,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetTransformFeedbackVarying);
+
+ // 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 index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 size
+ GLMessage_DataType *arg_size = glmsg.add_args();
+ arg_size->set_isarray(false);
+ arg_size->set_type(GLMessage::DataType::INT);
+ arg_size->add_intvalue((int)size);
+
+ // copy argument type
+ GLMessage_DataType *arg_type = glmsg.add_args();
+ arg_type->set_isarray(false);
+ arg_type->set_type(GLMessage::DataType::INT);
+ arg_type->add_intvalue((int)type);
+
+ // copy argument name
+ GLMessage_DataType *arg_name = glmsg.add_args();
+ arg_name->set_isarray(false);
+ arg_name->set_type(GLMessage::DataType::INT);
+ arg_name->add_intvalue((int)name);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetTransformFeedbackVarying(program, index, bufSize, length, size, type, name);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) length,
+ (void *) size,
+ (void *) type,
+ (void *) name,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribIPointer);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument size
+ GLMessage_DataType *arg_size = glmsg.add_args();
+ arg_size->set_isarray(false);
+ arg_size->set_type(GLMessage::DataType::INT);
+ arg_size->add_intvalue(size);
+
+ // 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 stride
+ GLMessage_DataType *arg_stride = glmsg.add_args();
+ arg_stride->set_isarray(false);
+ arg_stride->set_type(GLMessage::DataType::INT);
+ arg_stride->add_intvalue(stride);
+
+ // copy argument pointer
+ GLMessage_DataType *arg_pointer = glmsg.add_args();
+ arg_pointer->set_isarray(false);
+ arg_pointer->set_type(GLMessage::DataType::INT);
+ arg_pointer->add_intvalue((int)pointer);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribIPointer(index, size, type, stride, pointer);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) pointer,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetVertexAttribIiv);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetVertexAttribIiv(index, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetVertexAttribIuiv);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetVertexAttribIuiv(index, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribI4i);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribI4i(index, x, y, z, w);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribI4ui);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribI4ui(index, x, y, z, w);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribI4iv(GLuint index, const GLint* v) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribI4iv);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument v
+ GLMessage_DataType *arg_v = glmsg.add_args();
+ arg_v->set_isarray(false);
+ arg_v->set_type(GLMessage::DataType::INT);
+ arg_v->add_intvalue((int)v);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribI4iv(index, v);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) v,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribI4uiv(GLuint index, const GLuint* v) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribI4uiv);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument v
+ GLMessage_DataType *arg_v = glmsg.add_args();
+ arg_v->set_isarray(false);
+ arg_v->set_type(GLMessage::DataType::INT);
+ arg_v->add_intvalue((int)v);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribI4uiv(index, v);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) v,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetUniformuiv(GLuint program, GLint location, GLuint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetUniformuiv);
+
+ // 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 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetUniformuiv(program, location, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLint GLTrace_glGetFragDataLocation(GLuint program, const GLchar *name) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetFragDataLocation);
+
+ // 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 name
+ GLMessage_DataType *arg_name = glmsg.add_args();
+ arg_name->set_isarray(false);
+ arg_name->set_type(GLMessage::DataType::INT);
+ arg_name->add_intvalue((int)name);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLint retValue = glContext->hooks->gl.glGetFragDataLocation(program, name);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::INT);
+ rt->add_intvalue(retValue);
+
+ void *pointerArgs[] = {
+ (void *) name,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glUniform1ui(GLint location, GLuint v0) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform1ui);
+
+ // 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 v0
+ GLMessage_DataType *arg_v0 = glmsg.add_args();
+ arg_v0->set_isarray(false);
+ arg_v0->set_type(GLMessage::DataType::INT);
+ arg_v0->add_intvalue(v0);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform1ui(location, v0);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform2ui(GLint location, GLuint v0, GLuint v1) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform2ui);
+
+ // 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 v0
+ GLMessage_DataType *arg_v0 = glmsg.add_args();
+ arg_v0->set_isarray(false);
+ arg_v0->set_type(GLMessage::DataType::INT);
+ arg_v0->add_intvalue(v0);
+
+ // copy argument v1
+ GLMessage_DataType *arg_v1 = glmsg.add_args();
+ arg_v1->set_isarray(false);
+ arg_v1->set_type(GLMessage::DataType::INT);
+ arg_v1->add_intvalue(v1);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform2ui(location, v0, v1);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform3ui);
+
+ // 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 v0
+ GLMessage_DataType *arg_v0 = glmsg.add_args();
+ arg_v0->set_isarray(false);
+ arg_v0->set_type(GLMessage::DataType::INT);
+ arg_v0->add_intvalue(v0);
+
+ // copy argument v1
+ GLMessage_DataType *arg_v1 = glmsg.add_args();
+ arg_v1->set_isarray(false);
+ arg_v1->set_type(GLMessage::DataType::INT);
+ arg_v1->add_intvalue(v1);
+
+ // copy argument v2
+ GLMessage_DataType *arg_v2 = glmsg.add_args();
+ arg_v2->set_isarray(false);
+ arg_v2->set_type(GLMessage::DataType::INT);
+ arg_v2->add_intvalue(v2);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform3ui(location, v0, v1, v2);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform4ui);
+
+ // 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 v0
+ GLMessage_DataType *arg_v0 = glmsg.add_args();
+ arg_v0->set_isarray(false);
+ arg_v0->set_type(GLMessage::DataType::INT);
+ arg_v0->add_intvalue(v0);
+
+ // copy argument v1
+ GLMessage_DataType *arg_v1 = glmsg.add_args();
+ arg_v1->set_isarray(false);
+ arg_v1->set_type(GLMessage::DataType::INT);
+ arg_v1->add_intvalue(v1);
+
+ // copy argument v2
+ GLMessage_DataType *arg_v2 = glmsg.add_args();
+ arg_v2->set_isarray(false);
+ arg_v2->set_type(GLMessage::DataType::INT);
+ arg_v2->add_intvalue(v2);
+
+ // copy argument v3
+ GLMessage_DataType *arg_v3 = glmsg.add_args();
+ arg_v3->set_isarray(false);
+ arg_v3->set_type(GLMessage::DataType::INT);
+ arg_v3->add_intvalue(v3);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform4ui(location, v0, v1, v2, v3);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform1uiv(GLint location, GLsizei count, const GLuint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform1uiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform1uiv(location, count, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform2uiv(GLint location, GLsizei count, const GLuint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform2uiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform2uiv(location, count, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform3uiv(GLint location, GLsizei count, const GLuint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform3uiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform3uiv(location, count, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniform4uiv(GLint location, GLsizei count, const GLuint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniform4uiv);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniform4uiv(location, count, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glClearBufferiv);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::ENUM);
+ arg_buffer->add_intvalue((int)buffer);
+
+ // copy argument drawbuffer
+ GLMessage_DataType *arg_drawbuffer = glmsg.add_args();
+ arg_drawbuffer->set_isarray(false);
+ arg_drawbuffer->set_type(GLMessage::DataType::INT);
+ arg_drawbuffer->add_intvalue(drawbuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glClearBufferiv(buffer, drawbuffer, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glClearBufferuiv);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::ENUM);
+ arg_buffer->add_intvalue((int)buffer);
+
+ // copy argument drawbuffer
+ GLMessage_DataType *arg_drawbuffer = glmsg.add_args();
+ arg_drawbuffer->set_isarray(false);
+ arg_drawbuffer->set_type(GLMessage::DataType::INT);
+ arg_drawbuffer->add_intvalue(drawbuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glClearBufferuiv(buffer, drawbuffer, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glClearBufferfv);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::ENUM);
+ arg_buffer->add_intvalue((int)buffer);
+
+ // copy argument drawbuffer
+ GLMessage_DataType *arg_drawbuffer = glmsg.add_args();
+ arg_drawbuffer->set_isarray(false);
+ arg_drawbuffer->set_type(GLMessage::DataType::INT);
+ arg_drawbuffer->add_intvalue(drawbuffer);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glClearBufferfv(buffer, drawbuffer, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) value,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glClearBufferfi);
+
+ // copy argument buffer
+ GLMessage_DataType *arg_buffer = glmsg.add_args();
+ arg_buffer->set_isarray(false);
+ arg_buffer->set_type(GLMessage::DataType::ENUM);
+ arg_buffer->add_intvalue((int)buffer);
+
+ // copy argument drawbuffer
+ GLMessage_DataType *arg_drawbuffer = glmsg.add_args();
+ arg_drawbuffer->set_isarray(false);
+ arg_drawbuffer->set_type(GLMessage::DataType::INT);
+ arg_drawbuffer->add_intvalue(drawbuffer);
+
+ // copy argument depth
+ GLMessage_DataType *arg_depth = glmsg.add_args();
+ arg_depth->set_isarray(false);
+ arg_depth->set_type(GLMessage::DataType::FLOAT);
+ arg_depth->add_floatvalue(depth);
+
+ // copy argument stencil
+ GLMessage_DataType *arg_stencil = glmsg.add_args();
+ arg_stencil->set_isarray(false);
+ arg_stencil->set_type(GLMessage::DataType::INT);
+ arg_stencil->add_intvalue(stencil);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glClearBufferfi(buffer, drawbuffer, depth, stencil);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+const GLubyte* GLTrace_glGetStringi(GLenum name, GLuint index) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetStringi);
+
+ // copy argument name
+ GLMessage_DataType *arg_name = glmsg.add_args();
+ arg_name->set_isarray(false);
+ arg_name->set_type(GLMessage::DataType::ENUM);
+ arg_name->add_intvalue((int)name);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ const GLubyte* retValue = glContext->hooks->gl.glGetStringi(name, index);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::INT);
+ rt->add_intvalue((int)retValue);
+
+ void *pointerArgs[] = {
+ (void *) retValue,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glCopyBufferSubData);
+
+ // copy argument readTarget
+ GLMessage_DataType *arg_readTarget = glmsg.add_args();
+ arg_readTarget->set_isarray(false);
+ arg_readTarget->set_type(GLMessage::DataType::ENUM);
+ arg_readTarget->add_intvalue((int)readTarget);
+
+ // copy argument writeTarget
+ GLMessage_DataType *arg_writeTarget = glmsg.add_args();
+ arg_writeTarget->set_isarray(false);
+ arg_writeTarget->set_type(GLMessage::DataType::ENUM);
+ arg_writeTarget->add_intvalue((int)writeTarget);
+
+ // copy argument readOffset
+ GLMessage_DataType *arg_readOffset = glmsg.add_args();
+ arg_readOffset->set_isarray(false);
+ arg_readOffset->set_type(GLMessage::DataType::INT);
+ arg_readOffset->add_intvalue(readOffset);
+
+ // copy argument writeOffset
+ GLMessage_DataType *arg_writeOffset = glmsg.add_args();
+ arg_writeOffset->set_isarray(false);
+ arg_writeOffset->set_type(GLMessage::DataType::INT);
+ arg_writeOffset->add_intvalue(writeOffset);
+
+ // copy argument size
+ GLMessage_DataType *arg_size = glmsg.add_args();
+ arg_size->set_isarray(false);
+ arg_size->set_type(GLMessage::DataType::INT);
+ arg_size->add_intvalue(size);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glCopyBufferSubData(readTarget, writeTarget, readOffset, writeOffset, size);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetUniformIndices);
+
+ // 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 uniformCount
+ GLMessage_DataType *arg_uniformCount = glmsg.add_args();
+ arg_uniformCount->set_isarray(false);
+ arg_uniformCount->set_type(GLMessage::DataType::INT);
+ arg_uniformCount->add_intvalue(uniformCount);
+
+ // copy argument uniformNames
+ GLMessage_DataType *arg_uniformNames = glmsg.add_args();
+ arg_uniformNames->set_isarray(false);
+ arg_uniformNames->set_type(GLMessage::DataType::INT);
+ arg_uniformNames->add_intvalue((int)uniformNames);
+
+ // copy argument uniformIndices
+ GLMessage_DataType *arg_uniformIndices = glmsg.add_args();
+ arg_uniformIndices->set_isarray(false);
+ arg_uniformIndices->set_type(GLMessage::DataType::INT);
+ arg_uniformIndices->add_intvalue((int)uniformIndices);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetUniformIndices(program, uniformCount, uniformNames, uniformIndices);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) uniformNames,
+ (void *) uniformIndices,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetActiveUniformsiv);
+
+ // 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 uniformCount
+ GLMessage_DataType *arg_uniformCount = glmsg.add_args();
+ arg_uniformCount->set_isarray(false);
+ arg_uniformCount->set_type(GLMessage::DataType::INT);
+ arg_uniformCount->add_intvalue(uniformCount);
+
+ // copy argument uniformIndices
+ GLMessage_DataType *arg_uniformIndices = glmsg.add_args();
+ arg_uniformIndices->set_isarray(false);
+ arg_uniformIndices->set_type(GLMessage::DataType::INT);
+ arg_uniformIndices->add_intvalue((int)uniformIndices);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetActiveUniformsiv(program, uniformCount, uniformIndices, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) uniformIndices,
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLuint GLTrace_glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetUniformBlockIndex);
+
+ // 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 uniformBlockName
+ GLMessage_DataType *arg_uniformBlockName = glmsg.add_args();
+ arg_uniformBlockName->set_isarray(false);
+ arg_uniformBlockName->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockName->add_intvalue((int)uniformBlockName);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLuint retValue = glContext->hooks->gl.glGetUniformBlockIndex(program, uniformBlockName);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::INT);
+ rt->add_intvalue(retValue);
+
+ void *pointerArgs[] = {
+ (void *) uniformBlockName,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetActiveUniformBlockiv);
+
+ // 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 uniformBlockIndex
+ GLMessage_DataType *arg_uniformBlockIndex = glmsg.add_args();
+ arg_uniformBlockIndex->set_isarray(false);
+ arg_uniformBlockIndex->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockIndex->add_intvalue(uniformBlockIndex);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetActiveUniformBlockiv(program, uniformBlockIndex, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetActiveUniformBlockName);
+
+ // 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 uniformBlockIndex
+ GLMessage_DataType *arg_uniformBlockIndex = glmsg.add_args();
+ arg_uniformBlockIndex->set_isarray(false);
+ arg_uniformBlockIndex->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockIndex->add_intvalue(uniformBlockIndex);
+
+ // 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 uniformBlockName
+ GLMessage_DataType *arg_uniformBlockName = glmsg.add_args();
+ arg_uniformBlockName->set_isarray(false);
+ arg_uniformBlockName->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockName->add_intvalue((int)uniformBlockName);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetActiveUniformBlockName(program, uniformBlockIndex, bufSize, length, uniformBlockName);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) length,
+ (void *) uniformBlockName,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glUniformBlockBinding);
+
+ // 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 uniformBlockIndex
+ GLMessage_DataType *arg_uniformBlockIndex = glmsg.add_args();
+ arg_uniformBlockIndex->set_isarray(false);
+ arg_uniformBlockIndex->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockIndex->add_intvalue(uniformBlockIndex);
+
+ // copy argument uniformBlockBinding
+ GLMessage_DataType *arg_uniformBlockBinding = glmsg.add_args();
+ arg_uniformBlockBinding->set_isarray(false);
+ arg_uniformBlockBinding->set_type(GLMessage::DataType::INT);
+ arg_uniformBlockBinding->add_intvalue(uniformBlockBinding);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glUniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDrawArraysInstanced);
+
+ // 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);
+
+ // copy argument first
+ GLMessage_DataType *arg_first = glmsg.add_args();
+ arg_first->set_isarray(false);
+ arg_first->set_type(GLMessage::DataType::INT);
+ arg_first->add_intvalue(first);
+
+ // 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 instanceCount
+ GLMessage_DataType *arg_instanceCount = glmsg.add_args();
+ arg_instanceCount->set_isarray(false);
+ arg_instanceCount->set_type(GLMessage::DataType::INT);
+ arg_instanceCount->add_intvalue(instanceCount);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDrawArraysInstanced(mode, first, count, instanceCount);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDrawElementsInstanced);
+
+ // 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);
+
+ // 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 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 indices
+ GLMessage_DataType *arg_indices = glmsg.add_args();
+ arg_indices->set_isarray(false);
+ arg_indices->set_type(GLMessage::DataType::INT);
+ arg_indices->add_intvalue((int)indices);
+
+ // copy argument instanceCount
+ GLMessage_DataType *arg_instanceCount = glmsg.add_args();
+ arg_instanceCount->set_isarray(false);
+ arg_instanceCount->set_type(GLMessage::DataType::INT);
+ arg_instanceCount->add_intvalue(instanceCount);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDrawElementsInstanced(mode, count, type, indices, instanceCount);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) indices,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLsync GLTrace_glFenceSync(GLenum condition, GLbitfield flags) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glFenceSync);
+
+ // copy argument condition
+ GLMessage_DataType *arg_condition = glmsg.add_args();
+ arg_condition->set_isarray(false);
+ arg_condition->set_type(GLMessage::DataType::ENUM);
+ arg_condition->add_intvalue((int)condition);
+
+ // copy argument flags
+ GLMessage_DataType *arg_flags = glmsg.add_args();
+ arg_flags->set_isarray(false);
+ arg_flags->set_type(GLMessage::DataType::INT);
+ arg_flags->add_intvalue(flags);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLsync retValue = glContext->hooks->gl.glFenceSync(condition, flags);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::INT);
+ rt->add_intvalue((int)retValue);
+
+ void *pointerArgs[] = {
+ (void *) retValue,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+GLboolean GLTrace_glIsSync(GLsync sync) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glIsSync);
+
+ // copy argument sync
+ GLMessage_DataType *arg_sync = glmsg.add_args();
+ arg_sync->set_isarray(false);
+ arg_sync->set_type(GLMessage::DataType::INT);
+ arg_sync->add_intvalue((int)sync);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glIsSync(sync);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ (void *) sync,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glDeleteSync(GLsync sync) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDeleteSync);
+
+ // copy argument sync
+ GLMessage_DataType *arg_sync = glmsg.add_args();
+ arg_sync->set_isarray(false);
+ arg_sync->set_type(GLMessage::DataType::INT);
+ arg_sync->add_intvalue((int)sync);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDeleteSync(sync);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) sync,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLenum GLTrace_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glClientWaitSync);
+
+ // copy argument sync
+ GLMessage_DataType *arg_sync = glmsg.add_args();
+ arg_sync->set_isarray(false);
+ arg_sync->set_type(GLMessage::DataType::INT);
+ arg_sync->add_intvalue((int)sync);
+
+ // copy argument flags
+ GLMessage_DataType *arg_flags = glmsg.add_args();
+ arg_flags->set_isarray(false);
+ arg_flags->set_type(GLMessage::DataType::INT);
+ arg_flags->add_intvalue(flags);
+
+ // copy argument timeout
+ GLMessage_DataType *arg_timeout = glmsg.add_args();
+ arg_timeout->set_isarray(false);
+ arg_timeout->set_type(GLMessage::DataType::INT64);
+ arg_timeout->add_int64value(timeout);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLenum retValue = glContext->hooks->gl.glClientWaitSync(sync, flags, timeout);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::ENUM);
+ rt->add_intvalue((int)retValue);
+
+ void *pointerArgs[] = {
+ (void *) sync,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glWaitSync);
+
+ // copy argument sync
+ GLMessage_DataType *arg_sync = glmsg.add_args();
+ arg_sync->set_isarray(false);
+ arg_sync->set_type(GLMessage::DataType::INT);
+ arg_sync->add_intvalue((int)sync);
+
+ // copy argument flags
+ GLMessage_DataType *arg_flags = glmsg.add_args();
+ arg_flags->set_isarray(false);
+ arg_flags->set_type(GLMessage::DataType::INT);
+ arg_flags->add_intvalue(flags);
+
+ // copy argument timeout
+ GLMessage_DataType *arg_timeout = glmsg.add_args();
+ arg_timeout->set_isarray(false);
+ arg_timeout->set_type(GLMessage::DataType::INT64);
+ arg_timeout->add_int64value(timeout);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glWaitSync(sync, flags, timeout);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) sync,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetInteger64v(GLenum pname, GLint64* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetInteger64v);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetInteger64v(pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetSynciv);
+
+ // copy argument sync
+ GLMessage_DataType *arg_sync = glmsg.add_args();
+ arg_sync->set_isarray(false);
+ arg_sync->set_type(GLMessage::DataType::INT);
+ arg_sync->add_intvalue((int)sync);
+
+ // 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 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 values
+ GLMessage_DataType *arg_values = glmsg.add_args();
+ arg_values->set_isarray(false);
+ arg_values->set_type(GLMessage::DataType::INT);
+ arg_values->add_intvalue((int)values);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetSynciv(sync, pname, bufSize, length, values);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) sync,
+ (void *) length,
+ (void *) values,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetInteger64i_v(GLenum target, GLuint index, GLint64* data) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetInteger64i_v);
+
+ // 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 index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetInteger64i_v(target, index, data);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) data,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetBufferParameteri64v);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetBufferParameteri64v(target, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGenSamplers(GLsizei count, GLuint* samplers) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGenSamplers);
+
+ // 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 samplers
+ GLMessage_DataType *arg_samplers = glmsg.add_args();
+ arg_samplers->set_isarray(false);
+ arg_samplers->set_type(GLMessage::DataType::INT);
+ arg_samplers->add_intvalue((int)samplers);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGenSamplers(count, samplers);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) samplers,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDeleteSamplers(GLsizei count, const GLuint* samplers) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDeleteSamplers);
+
+ // 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 samplers
+ GLMessage_DataType *arg_samplers = glmsg.add_args();
+ arg_samplers->set_isarray(false);
+ arg_samplers->set_type(GLMessage::DataType::INT);
+ arg_samplers->add_intvalue((int)samplers);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDeleteSamplers(count, samplers);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) samplers,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLboolean GLTrace_glIsSampler(GLuint sampler) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glIsSampler);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glIsSampler(sampler);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glBindSampler(GLuint unit, GLuint sampler) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBindSampler);
+
+ // copy argument unit
+ GLMessage_DataType *arg_unit = glmsg.add_args();
+ arg_unit->set_isarray(false);
+ arg_unit->set_type(GLMessage::DataType::INT);
+ arg_unit->add_intvalue(unit);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBindSampler(unit, sampler);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glSamplerParameteri);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 param
+ GLMessage_DataType *arg_param = glmsg.add_args();
+ arg_param->set_isarray(false);
+ arg_param->set_type(GLMessage::DataType::INT);
+ arg_param->add_intvalue(param);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glSamplerParameteri(sampler, pname, param);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* param) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glSamplerParameteriv);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 param
+ GLMessage_DataType *arg_param = glmsg.add_args();
+ arg_param->set_isarray(false);
+ arg_param->set_type(GLMessage::DataType::INT);
+ arg_param->add_intvalue((int)param);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glSamplerParameteriv(sampler, pname, param);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) param,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glSamplerParameterf);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 param
+ GLMessage_DataType *arg_param = glmsg.add_args();
+ arg_param->set_isarray(false);
+ arg_param->set_type(GLMessage::DataType::FLOAT);
+ arg_param->add_floatvalue(param);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glSamplerParameterf(sampler, pname, param);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* param) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glSamplerParameterfv);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 param
+ GLMessage_DataType *arg_param = glmsg.add_args();
+ arg_param->set_isarray(false);
+ arg_param->set_type(GLMessage::DataType::INT);
+ arg_param->add_intvalue((int)param);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glSamplerParameterfv(sampler, pname, param);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) param,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetSamplerParameteriv);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetSamplerParameteriv(sampler, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetSamplerParameterfv);
+
+ // copy argument sampler
+ GLMessage_DataType *arg_sampler = glmsg.add_args();
+ arg_sampler->set_isarray(false);
+ arg_sampler->set_type(GLMessage::DataType::INT);
+ arg_sampler->add_intvalue(sampler);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetSamplerParameterfv(sampler, pname, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glVertexAttribDivisor(GLuint index, GLuint divisor) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glVertexAttribDivisor);
+
+ // copy argument index
+ GLMessage_DataType *arg_index = glmsg.add_args();
+ arg_index->set_isarray(false);
+ arg_index->set_type(GLMessage::DataType::INT);
+ arg_index->add_intvalue(index);
+
+ // copy argument divisor
+ GLMessage_DataType *arg_divisor = glmsg.add_args();
+ arg_divisor->set_isarray(false);
+ arg_divisor->set_type(GLMessage::DataType::INT);
+ arg_divisor->add_intvalue(divisor);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glVertexAttribDivisor(index, divisor);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glBindTransformFeedback(GLenum target, GLuint id) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glBindTransformFeedback);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glBindTransformFeedback(target, id);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glDeleteTransformFeedbacks);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glDeleteTransformFeedbacks(n, ids);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) ids,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGenTransformFeedbacks(GLsizei n, GLuint* ids) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGenTransformFeedbacks);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGenTransformFeedbacks(n, ids);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) ids,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+GLboolean GLTrace_glIsTransformFeedback(GLuint id) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glIsTransformFeedback);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ GLboolean retValue = glContext->hooks->gl.glIsTransformFeedback(id);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ // set return value
+ GLMessage_DataType *rt = glmsg.mutable_returnvalue();
+ rt->set_isarray(false);
+ rt->set_type(GLMessage::DataType::BOOL);
+ rt->add_boolvalue(retValue);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+
+ return retValue;
+}
+
+void GLTrace_glPauseTransformFeedback(void) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glPauseTransformFeedback);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glPauseTransformFeedback();
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glResumeTransformFeedback(void) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glResumeTransformFeedback);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glResumeTransformFeedback();
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetProgramBinary);
+
+ // 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 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 binaryFormat
+ GLMessage_DataType *arg_binaryFormat = glmsg.add_args();
+ arg_binaryFormat->set_isarray(false);
+ arg_binaryFormat->set_type(GLMessage::DataType::INT);
+ arg_binaryFormat->add_intvalue((int)binaryFormat);
+
+ // copy argument binary
+ GLMessage_DataType *arg_binary = glmsg.add_args();
+ arg_binary->set_isarray(false);
+ arg_binary->set_type(GLMessage::DataType::INT);
+ arg_binary->add_intvalue((int)binary);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetProgramBinary(program, bufSize, length, binaryFormat, binary);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) length,
+ (void *) binaryFormat,
+ (void *) binary,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glProgramBinary);
+
+ // 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 binaryFormat
+ GLMessage_DataType *arg_binaryFormat = glmsg.add_args();
+ arg_binaryFormat->set_isarray(false);
+ arg_binaryFormat->set_type(GLMessage::DataType::ENUM);
+ arg_binaryFormat->add_intvalue((int)binaryFormat);
+
+ // copy argument binary
+ GLMessage_DataType *arg_binary = glmsg.add_args();
+ arg_binary->set_isarray(false);
+ arg_binary->set_type(GLMessage::DataType::INT);
+ arg_binary->add_intvalue((int)binary);
+
+ // 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);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glProgramBinary(program, binaryFormat, binary, length);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) binary,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glProgramParameteri(GLuint program, GLenum pname, GLint value) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glProgramParameteri);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glProgramParameteri(program, pname, value);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glInvalidateFramebuffer);
+
+ // 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 numAttachments
+ GLMessage_DataType *arg_numAttachments = glmsg.add_args();
+ arg_numAttachments->set_isarray(false);
+ arg_numAttachments->set_type(GLMessage::DataType::INT);
+ arg_numAttachments->add_intvalue(numAttachments);
+
+ // copy argument attachments
+ GLMessage_DataType *arg_attachments = glmsg.add_args();
+ arg_attachments->set_isarray(false);
+ arg_attachments->set_type(GLMessage::DataType::INT);
+ arg_attachments->add_intvalue((int)attachments);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glInvalidateFramebuffer(target, numAttachments, attachments);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) attachments,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glInvalidateSubFramebuffer);
+
+ // 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 numAttachments
+ GLMessage_DataType *arg_numAttachments = glmsg.add_args();
+ arg_numAttachments->set_isarray(false);
+ arg_numAttachments->set_type(GLMessage::DataType::INT);
+ arg_numAttachments->add_intvalue(numAttachments);
+
+ // copy argument attachments
+ GLMessage_DataType *arg_attachments = glmsg.add_args();
+ arg_attachments->set_isarray(false);
+ arg_attachments->set_type(GLMessage::DataType::INT);
+ arg_attachments->add_intvalue((int)attachments);
+
+ // 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);
+
+ // call function
+ nsecs_t wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glInvalidateSubFramebuffer(target, numAttachments, attachments, x, y, width, height);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) attachments,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glTexStorage2D);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glTexStorage2D(target, levels, internalformat, width, height);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glTexStorage3D);
+
+ // 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glTexStorage3D(target, levels, internalformat, width, height, depth);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
+void GLTrace_glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params) {
+ GLMessage glmsg;
+ GLTraceContext *glContext = getGLTraceContext();
+
+ glmsg.set_function(GLMessage::glGetInternalformativ);
+
+ // 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 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 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 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 wallStartTime = systemTime(SYSTEM_TIME_MONOTONIC);
+ nsecs_t threadStartTime = systemTime(SYSTEM_TIME_THREAD);
+ glContext->hooks->gl.glGetInternalformativ(target, internalformat, pname, bufSize, params);
+ nsecs_t threadEndTime = systemTime(SYSTEM_TIME_THREAD);
+ nsecs_t wallEndTime = systemTime(SYSTEM_TIME_MONOTONIC);
+
+ void *pointerArgs[] = {
+ (void *) params,
+ };
+
+ fixupGLMessage(glContext, wallStartTime, wallEndTime,
+ threadStartTime, threadEndTime,
+ &glmsg, pointerArgs);
+ glContext->traceGLMessage(&glmsg);
+}
+
// Definitions for GL2Ext APIs
diff --git a/opengl/libs/GLES_trace/src/gltrace_api.h b/opengl/libs/GLES_trace/src/gltrace_api.h
index 64c6e9a..3a839dd 100644
--- a/opengl/libs/GLES_trace/src/gltrace_api.h
+++ b/opengl/libs/GLES_trace/src/gltrace_api.h
@@ -19,7 +19,7 @@
namespace android {
namespace gltrace {
-// Declarations for GL2 APIs
+// Declarations for GL3 APIs
void GLTrace_glActiveTexture(GLenum texture);
void GLTrace_glAttachShader(GLuint program, GLuint shader);
@@ -28,7 +28,7 @@ void GLTrace_glBindBuffer(GLenum target, GLuint buffer);
void GLTrace_glBindFramebuffer(GLenum target, GLuint framebuffer);
void GLTrace_glBindRenderbuffer(GLenum target, GLuint renderbuffer);
void GLTrace_glBindTexture(GLenum target, GLuint texture);
-void GLTrace_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+void GLTrace_glBlendColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
void GLTrace_glBlendEquation(GLenum mode);
void GLTrace_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
void GLTrace_glBlendFunc(GLenum sfactor, GLenum dfactor);
@@ -37,8 +37,8 @@ void GLTrace_glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GL
void GLTrace_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data);
GLenum GLTrace_glCheckFramebufferStatus(GLenum target);
void GLTrace_glClear(GLbitfield mask);
-void GLTrace_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
-void GLTrace_glClearDepthf(GLclampf depth);
+void GLTrace_glClearColor(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+void GLTrace_glClearDepthf(GLfloat depth);
void GLTrace_glClearStencil(GLint s);
void GLTrace_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
void GLTrace_glCompileShader(GLuint shader);
@@ -57,7 +57,7 @@ void GLTrace_glDeleteShader(GLuint shader);
void GLTrace_glDeleteTextures(GLsizei n, const GLuint* textures);
void GLTrace_glDepthFunc(GLenum func);
void GLTrace_glDepthMask(GLboolean flag);
-void GLTrace_glDepthRangef(GLclampf zNear, GLclampf zFar);
+void GLTrace_glDepthRangef(GLfloat n, GLfloat f);
void GLTrace_glDetachShader(GLuint program, GLuint shader);
void GLTrace_glDisable(GLenum cap);
void GLTrace_glDisableVertexAttribArray(GLuint index);
@@ -116,7 +116,7 @@ void GLTrace_glPolygonOffset(GLfloat factor, GLfloat units);
void GLTrace_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels);
void GLTrace_glReleaseShaderCompiler(void);
void GLTrace_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
-void GLTrace_glSampleCoverage(GLclampf value, GLboolean invert);
+void GLTrace_glSampleCoverage(GLfloat value, GLboolean invert);
void GLTrace_glScissor(GLint x, GLint y, GLsizei width, GLsizei height);
void GLTrace_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length);
void GLTrace_glShaderSource(GLuint shader, GLsizei count, const GLchar* const* string, const GLint* length);
@@ -163,6 +163,110 @@ void GLTrace_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfl
void GLTrace_glVertexAttrib4fv(GLuint indx, const GLfloat* values);
void GLTrace_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr);
void GLTrace_glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
+void GLTrace_glReadBuffer(GLenum mode);
+void GLTrace_glDrawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
+void GLTrace_glTexImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels);
+void GLTrace_glTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels);
+void GLTrace_glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+void GLTrace_glCompressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data);
+void GLTrace_glCompressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data);
+void GLTrace_glGenQueries(GLsizei n, GLuint* ids);
+void GLTrace_glDeleteQueries(GLsizei n, const GLuint* ids);
+GLboolean GLTrace_glIsQuery(GLuint id);
+void GLTrace_glBeginQuery(GLenum target, GLuint id);
+void GLTrace_glEndQuery(GLenum target);
+void GLTrace_glGetQueryiv(GLenum target, GLenum pname, GLint* params);
+void GLTrace_glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint* params);
+GLboolean GLTrace_glUnmapBuffer(GLenum target);
+void GLTrace_glGetBufferPointerv(GLenum target, GLenum pname, GLvoid** params);
+void GLTrace_glDrawBuffers(GLsizei n, const GLenum* bufs);
+void GLTrace_glUniformMatrix2x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glUniformMatrix3x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glUniformMatrix2x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glUniformMatrix4x2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glUniformMatrix3x4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glUniformMatrix4x3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
+void GLTrace_glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+void GLTrace_glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+void GLTrace_glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+GLvoid* GLTrace_glMapBufferRange(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+void GLTrace_glFlushMappedBufferRange(GLenum target, GLintptr offset, GLsizeiptr length);
+void GLTrace_glBindVertexArray(GLuint array);
+void GLTrace_glDeleteVertexArrays(GLsizei n, const GLuint* arrays);
+void GLTrace_glGenVertexArrays(GLsizei n, GLuint* arrays);
+GLboolean GLTrace_glIsVertexArray(GLuint array);
+void GLTrace_glGetIntegeri_v(GLenum target, GLuint index, GLint* data);
+void GLTrace_glBeginTransformFeedback(GLenum primitiveMode);
+void GLTrace_glEndTransformFeedback(void);
+void GLTrace_glBindBufferRange(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+void GLTrace_glBindBufferBase(GLenum target, GLuint index, GLuint buffer);
+void GLTrace_glTransformFeedbackVaryings(GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode);
+void GLTrace_glGetTransformFeedbackVarying(GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name);
+void GLTrace_glVertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer);
+void GLTrace_glGetVertexAttribIiv(GLuint index, GLenum pname, GLint* params);
+void GLTrace_glGetVertexAttribIuiv(GLuint index, GLenum pname, GLuint* params);
+void GLTrace_glVertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
+void GLTrace_glVertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+void GLTrace_glVertexAttribI4iv(GLuint index, const GLint* v);
+void GLTrace_glVertexAttribI4uiv(GLuint index, const GLuint* v);
+void GLTrace_glGetUniformuiv(GLuint program, GLint location, GLuint* params);
+GLint GLTrace_glGetFragDataLocation(GLuint program, const GLchar *name);
+void GLTrace_glUniform1ui(GLint location, GLuint v0);
+void GLTrace_glUniform2ui(GLint location, GLuint v0, GLuint v1);
+void GLTrace_glUniform3ui(GLint location, GLuint v0, GLuint v1, GLuint v2);
+void GLTrace_glUniform4ui(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+void GLTrace_glUniform1uiv(GLint location, GLsizei count, const GLuint* value);
+void GLTrace_glUniform2uiv(GLint location, GLsizei count, const GLuint* value);
+void GLTrace_glUniform3uiv(GLint location, GLsizei count, const GLuint* value);
+void GLTrace_glUniform4uiv(GLint location, GLsizei count, const GLuint* value);
+void GLTrace_glClearBufferiv(GLenum buffer, GLint drawbuffer, const GLint* value);
+void GLTrace_glClearBufferuiv(GLenum buffer, GLint drawbuffer, const GLuint* value);
+void GLTrace_glClearBufferfv(GLenum buffer, GLint drawbuffer, const GLfloat* value);
+void GLTrace_glClearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+const GLubyte* GLTrace_glGetStringi(GLenum name, GLuint index);
+void GLTrace_glCopyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+void GLTrace_glGetUniformIndices(GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices);
+void GLTrace_glGetActiveUniformsiv(GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params);
+GLuint GLTrace_glGetUniformBlockIndex(GLuint program, const GLchar* uniformBlockName);
+void GLTrace_glGetActiveUniformBlockiv(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params);
+void GLTrace_glGetActiveUniformBlockName(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName);
+void GLTrace_glUniformBlockBinding(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+void GLTrace_glDrawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
+void GLTrace_glDrawElementsInstanced(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount);
+GLsync GLTrace_glFenceSync(GLenum condition, GLbitfield flags);
+GLboolean GLTrace_glIsSync(GLsync sync);
+void GLTrace_glDeleteSync(GLsync sync);
+GLenum GLTrace_glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+void GLTrace_glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout);
+void GLTrace_glGetInteger64v(GLenum pname, GLint64* params);
+void GLTrace_glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values);
+void GLTrace_glGetInteger64i_v(GLenum target, GLuint index, GLint64* data);
+void GLTrace_glGetBufferParameteri64v(GLenum target, GLenum pname, GLint64* params);
+void GLTrace_glGenSamplers(GLsizei count, GLuint* samplers);
+void GLTrace_glDeleteSamplers(GLsizei count, const GLuint* samplers);
+GLboolean GLTrace_glIsSampler(GLuint sampler);
+void GLTrace_glBindSampler(GLuint unit, GLuint sampler);
+void GLTrace_glSamplerParameteri(GLuint sampler, GLenum pname, GLint param);
+void GLTrace_glSamplerParameteriv(GLuint sampler, GLenum pname, const GLint* param);
+void GLTrace_glSamplerParameterf(GLuint sampler, GLenum pname, GLfloat param);
+void GLTrace_glSamplerParameterfv(GLuint sampler, GLenum pname, const GLfloat* param);
+void GLTrace_glGetSamplerParameteriv(GLuint sampler, GLenum pname, GLint* params);
+void GLTrace_glGetSamplerParameterfv(GLuint sampler, GLenum pname, GLfloat* params);
+void GLTrace_glVertexAttribDivisor(GLuint index, GLuint divisor);
+void GLTrace_glBindTransformFeedback(GLenum target, GLuint id);
+void GLTrace_glDeleteTransformFeedbacks(GLsizei n, const GLuint* ids);
+void GLTrace_glGenTransformFeedbacks(GLsizei n, GLuint* ids);
+GLboolean GLTrace_glIsTransformFeedback(GLuint id);
+void GLTrace_glPauseTransformFeedback(void);
+void GLTrace_glResumeTransformFeedback(void);
+void GLTrace_glGetProgramBinary(GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary);
+void GLTrace_glProgramBinary(GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length);
+void GLTrace_glProgramParameteri(GLuint program, GLenum pname, GLint value);
+void GLTrace_glInvalidateFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments);
+void GLTrace_glInvalidateSubFramebuffer(GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+void GLTrace_glTexStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+void GLTrace_glTexStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+void GLTrace_glGetInternalformativ(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params);
// Declarations for GL2Ext APIs
diff --git a/opengl/libs/GLES_trace/tools/genapi.py b/opengl/libs/GLES_trace/tools/genapi.py
index 24034c1..60686eb 100755
--- a/opengl/libs/GLES_trace/tools/genapi.py
+++ b/opengl/libs/GLES_trace/tools/genapi.py
@@ -60,6 +60,8 @@ class DataType:
return "add_floatvalue("
elif self.name == "bool":
return "add_boolvalue("
+ elif self.name == "int64":
+ return "add_int64value("
else:
raise ValueError("Unknown value type %s" % self.name)
@@ -71,9 +73,10 @@ DataType.BOOL = DataType("bool")
DataType.INT = DataType("int")
DataType.FLOAT = DataType("float")
DataType.POINTER = DataType("pointer")
+DataType.INT64 = DataType("int64")
# mapping of GL types to protobuf DataType
-GL2PROTOBUF_TYPE_MAP = {
+GLPROTOBUF_TYPE_MAP = {
"GLvoid":DataType.VOID,
"void":DataType.VOID,
"GLchar":DataType.CHAR,
@@ -95,9 +98,14 @@ GL2PROTOBUF_TYPE_MAP = {
"GLsizeiptr":DataType.INT,
"GLintptr":DataType.INT,
"GLeglImageOES":DataType.POINTER,
+ "GLint64":DataType.INT64,
+ "GLuint64":DataType.INT64,
+ "GLsync":DataType.POINTER,
}
API_SPECS = [
+ ('GL3','../GLES2/gl3_api.in'),
+ ('GL3Ext','../GLES2/gl3ext_api.in'),
('GL2','../GLES2/gl2_api.in'),
('GL2Ext','../GLES2/gl2ext_api.in'),
('GL1','../GLES_CM/gl_api.in'),
@@ -126,7 +134,7 @@ HEADER_LICENSE = """/*
HEADER_INCLUDES = """
#include <cutils/log.h>
#include <utils/Timers.h>
-#include <GLES2/gl2.h>
+#include <GLES3/gl3.h>
#include "gltrace.pb.h"
#include "gltrace_context.h"
@@ -210,7 +218,7 @@ def getDataTypeFromKw(kw):
if kw.count('*') > 0:
return DataType.POINTER
- return GL2PROTOBUF_TYPE_MAP.get(kw)
+ return GLPROTOBUF_TYPE_MAP.get(kw)
def getNameTypePair(decl):
""" Split declaration of a variable to a tuple of (variable name, DataType).
@@ -356,7 +364,7 @@ def parseAllSpecs(specs):
def removeDuplicates(apis):
'''Remove all duplicate function entries.
- The input list contains functions declared in GL1 and GL2 APIs.
+ The input list contains functions declared in GL1, GL2, and GL3 APIs.
This will return a list that contains only the first function if there are
multiple functions with the same name.'''
uniqs = []
@@ -402,7 +410,7 @@ def genSrcs(apis, fname):
f.writelines(lines)
if __name__ == '__main__':
- apis = parseAllSpecs(API_SPECS) # read in all the specfiles
- apis = removeDuplicates(apis) # remove duplication of functions common to GL1 and GL2
+ apis = parseAllSpecs(API_SPECS) # read in all the specfiles
+ apis = removeDuplicates(apis) # remove duplication of functions common to multiple versions
genHeaders(apis, 'gltrace_api.h') # generate header file
genSrcs(apis, 'gltrace_api.cpp') # generate source file