diff options
Diffstat (limited to 'opengl/libs/GLES_trace/src')
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace.pb.cpp | 2046 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace.pb.h | 1871 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_api.cpp | 14563 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_api.h | 472 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_context.cpp | 212 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_context.h | 102 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_egl.cpp | 94 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_egl.h | 30 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_eglapi.cpp | 134 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_fixup.cpp | 375 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_fixup.h | 34 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_hooks.cpp | 41 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_hooks.h | 32 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_transport.cpp | 150 | ||||
-rw-r--r-- | opengl/libs/GLES_trace/src/gltrace_transport.h | 88 |
15 files changed, 20244 insertions, 0 deletions
diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.cpp b/opengl/libs/GLES_trace/src/gltrace.pb.cpp new file mode 100644 index 0000000..bb9d4a7 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace.pb.cpp @@ -0,0 +1,2046 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! + +#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION +#include "gltrace.pb.h" +#include <google/protobuf/stubs/once.h> +#include <google/protobuf/io/coded_stream.h> +#include <google/protobuf/wire_format_lite_inl.h> +// @@protoc_insertion_point(includes) + +namespace android { +namespace gltrace { + +void protobuf_ShutdownFile_gltrace_2eproto() { + delete GLMessage::default_instance_; + delete GLMessage_DataType::default_instance_; + delete GLMessage_FrameBuffer::default_instance_; +} + +void protobuf_AddDesc_gltrace_2eproto() { + static bool already_here = false; + if (already_here) return; + already_here = true; + GOOGLE_PROTOBUF_VERIFY_VERSION; + + GLMessage::default_instance_ = new GLMessage(); + GLMessage_DataType::default_instance_ = new GLMessage_DataType(); + GLMessage_FrameBuffer::default_instance_ = new GLMessage_FrameBuffer(); + GLMessage::default_instance_->InitAsDefaultInstance(); + GLMessage_DataType::default_instance_->InitAsDefaultInstance(); + GLMessage_FrameBuffer::default_instance_->InitAsDefaultInstance(); + ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_gltrace_2eproto); +} + +// Force AddDescriptors() to be called at static initialization time. +struct StaticDescriptorInitializer_gltrace_2eproto { + StaticDescriptorInitializer_gltrace_2eproto() { + protobuf_AddDesc_gltrace_2eproto(); + } +} static_descriptor_initializer_gltrace_2eproto_; + + +// =================================================================== + +bool GLMessage_Function_IsValid(int value) { + switch(value) { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 14: + case 15: + case 16: + case 17: + case 18: + case 19: + case 20: + case 21: + case 22: + case 23: + case 24: + case 25: + case 26: + case 27: + case 28: + case 29: + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + case 38: + case 39: + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + case 48: + case 49: + case 50: + case 51: + case 52: + case 53: + case 54: + case 55: + case 56: + case 57: + case 58: + case 59: + case 60: + case 61: + case 62: + case 63: + case 64: + case 65: + case 66: + case 67: + case 68: + case 69: + case 70: + case 71: + case 72: + case 73: + case 74: + case 75: + case 76: + case 77: + case 78: + case 79: + case 80: + case 81: + case 82: + case 83: + case 84: + case 85: + case 86: + case 87: + case 88: + case 89: + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + case 98: + case 99: + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + case 108: + case 109: + case 110: + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + case 123: + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + case 132: + case 133: + case 134: + case 135: + case 136: + case 137: + case 138: + case 139: + case 140: + case 141: + case 142: + case 143: + case 144: + case 145: + case 146: + case 147: + case 148: + case 149: + case 150: + case 151: + case 152: + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 160: + case 161: + case 162: + case 163: + case 164: + case 165: + case 166: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + case 175: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 184: + case 185: + case 186: + case 187: + case 188: + case 189: + case 190: + case 191: + case 192: + case 193: + case 194: + case 195: + case 196: + case 197: + case 198: + case 199: + case 200: + case 201: + case 202: + case 203: + case 204: + case 205: + case 206: + case 207: + case 208: + case 209: + case 210: + case 211: + case 212: + case 213: + case 214: + case 215: + case 216: + case 217: + case 218: + case 219: + case 220: + case 221: + case 222: + case 223: + case 224: + case 225: + case 226: + case 227: + case 228: + case 229: + case 230: + case 231: + case 232: + case 233: + case 234: + case 235: + case 236: + case 237: + case 238: + case 239: + case 240: + case 241: + case 242: + case 243: + case 244: + case 245: + case 246: + case 247: + case 248: + case 249: + case 250: + case 251: + case 252: + case 253: + case 254: + case 255: + case 256: + case 257: + case 258: + case 259: + case 260: + case 261: + case 262: + case 263: + case 264: + case 265: + case 266: + case 267: + case 268: + case 269: + case 270: + case 271: + case 272: + case 273: + case 274: + case 275: + case 276: + case 277: + case 278: + case 279: + case 280: + case 281: + case 282: + case 283: + case 284: + case 285: + case 286: + case 287: + case 288: + case 289: + case 290: + case 291: + case 292: + case 293: + case 294: + case 295: + case 296: + case 297: + case 298: + case 299: + case 300: + case 301: + case 302: + case 303: + case 304: + case 305: + case 306: + case 307: + case 308: + case 309: + case 310: + case 311: + case 312: + case 313: + case 314: + case 315: + case 316: + case 317: + case 318: + case 319: + case 320: + case 321: + case 322: + case 323: + case 324: + case 325: + case 326: + case 327: + case 328: + case 329: + case 330: + case 331: + case 332: + case 333: + case 334: + case 335: + case 336: + case 337: + case 338: + case 339: + case 340: + case 341: + case 342: + case 343: + case 344: + case 345: + case 346: + case 347: + case 348: + case 349: + case 350: + case 351: + case 352: + case 353: + case 354: + case 355: + case 356: + case 357: + case 358: + case 359: + case 360: + case 361: + case 362: + case 363: + case 364: + case 365: + case 366: + case 367: + case 368: + case 369: + case 370: + case 371: + case 372: + case 373: + case 374: + case 375: + case 502: + case 503: + case 504: + case 505: + case 506: + case 507: + case 508: + case 509: + case 510: + case 511: + case 512: + case 513: + case 514: + case 515: + case 516: + case 517: + case 518: + case 519: + case 520: + case 521: + case 522: + case 523: + case 524: + case 525: + case 526: + case 527: + case 528: + case 529: + case 530: + case 531: + case 532: + case 533: + case 534: + case 535: + case 536: + case 537: + case 538: + case 539: + case 540: + case 541: + case 542: + case 543: + case 544: + case 545: + case 546: + case 547: + case 548: + case 549: + case 550: + case 551: + case 552: + case 553: + case 554: + case 555: + case 556: + case 557: + case 558: + case 559: + case 560: + case 561: + case 2000: + case 2001: + case 2002: + case 2003: + case 2004: + case 2005: + case 2006: + case 2007: + case 2008: + case 2009: + case 2010: + case 2011: + case 2012: + case 2013: + case 2014: + case 2015: + case 2016: + case 2017: + case 2018: + case 2019: + case 2020: + case 2021: + case 2022: + case 2023: + case 2024: + case 2025: + case 2026: + case 2027: + case 2028: + case 2029: + case 2030: + case 2031: + case 2032: + case 2033: + case 2034: + case 2035: + case 2036: + case 2037: + case 2038: + case 2039: + case 2040: + case 2041: + case 2042: + case 2043: + case 2044: + case 2045: + case 3000: + case 3001: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const GLMessage_Function GLMessage::glActiveTexture; +const GLMessage_Function GLMessage::glAlphaFunc; +const GLMessage_Function GLMessage::glAlphaFuncx; +const GLMessage_Function GLMessage::glAlphaFuncxOES; +const GLMessage_Function GLMessage::glAttachShader; +const GLMessage_Function GLMessage::glBeginPerfMonitorAMD; +const GLMessage_Function GLMessage::glBindAttribLocation; +const GLMessage_Function GLMessage::glBindBuffer; +const GLMessage_Function GLMessage::glBindFramebuffer; +const GLMessage_Function GLMessage::glBindFramebufferOES; +const GLMessage_Function GLMessage::glBindRenderbuffer; +const GLMessage_Function GLMessage::glBindRenderbufferOES; +const GLMessage_Function GLMessage::glBindTexture; +const GLMessage_Function GLMessage::glBindVertexArrayOES; +const GLMessage_Function GLMessage::glBlendColor; +const GLMessage_Function GLMessage::glBlendEquation; +const GLMessage_Function GLMessage::glBlendEquationOES; +const GLMessage_Function GLMessage::glBlendEquationSeparate; +const GLMessage_Function GLMessage::glBlendEquationSeparateOES; +const GLMessage_Function GLMessage::glBlendFunc; +const GLMessage_Function GLMessage::glBlendFuncSeparate; +const GLMessage_Function GLMessage::glBlendFuncSeparateOES; +const GLMessage_Function GLMessage::glBufferData; +const GLMessage_Function GLMessage::glBufferSubData; +const GLMessage_Function GLMessage::glCheckFramebufferStatus; +const GLMessage_Function GLMessage::glCheckFramebufferStatusOES; +const GLMessage_Function GLMessage::glClearColor; +const GLMessage_Function GLMessage::glClearColorx; +const GLMessage_Function GLMessage::glClearColorxOES; +const GLMessage_Function GLMessage::glClearDepthf; +const GLMessage_Function GLMessage::glClearDepthfOES; +const GLMessage_Function GLMessage::glClearDepthx; +const GLMessage_Function GLMessage::glClearDepthxOES; +const GLMessage_Function GLMessage::glClear; +const GLMessage_Function GLMessage::glClearStencil; +const GLMessage_Function GLMessage::glClientActiveTexture; +const GLMessage_Function GLMessage::glClipPlanef; +const GLMessage_Function GLMessage::glClipPlanefIMG; +const GLMessage_Function GLMessage::glClipPlanefOES; +const GLMessage_Function GLMessage::glClipPlanex; +const GLMessage_Function GLMessage::glClipPlanexIMG; +const GLMessage_Function GLMessage::glClipPlanexOES; +const GLMessage_Function GLMessage::glColor4f; +const GLMessage_Function GLMessage::glColor4ub; +const GLMessage_Function GLMessage::glColor4x; +const GLMessage_Function GLMessage::glColor4xOES; +const GLMessage_Function GLMessage::glColorMask; +const GLMessage_Function GLMessage::glColorPointer; +const GLMessage_Function GLMessage::glCompileShader; +const GLMessage_Function GLMessage::glCompressedTexImage2D; +const GLMessage_Function GLMessage::glCompressedTexImage3DOES; +const GLMessage_Function GLMessage::glCompressedTexSubImage2D; +const GLMessage_Function GLMessage::glCompressedTexSubImage3DOES; +const GLMessage_Function GLMessage::glCopyTexImage2D; +const GLMessage_Function GLMessage::glCopyTexSubImage2D; +const GLMessage_Function GLMessage::glCopyTexSubImage3DOES; +const GLMessage_Function GLMessage::glCoverageMaskNV; +const GLMessage_Function GLMessage::glCoverageOperationNV; +const GLMessage_Function GLMessage::glCreateProgram; +const GLMessage_Function GLMessage::glCreateShader; +const GLMessage_Function GLMessage::glCullFace; +const GLMessage_Function GLMessage::glCurrentPaletteMatrixOES; +const GLMessage_Function GLMessage::glDeleteBuffers; +const GLMessage_Function GLMessage::glDeleteFencesNV; +const GLMessage_Function GLMessage::glDeleteFramebuffers; +const GLMessage_Function GLMessage::glDeleteFramebuffersOES; +const GLMessage_Function GLMessage::glDeletePerfMonitorsAMD; +const GLMessage_Function GLMessage::glDeleteProgram; +const GLMessage_Function GLMessage::glDeleteRenderbuffers; +const GLMessage_Function GLMessage::glDeleteRenderbuffersOES; +const GLMessage_Function GLMessage::glDeleteShader; +const GLMessage_Function GLMessage::glDeleteTextures; +const GLMessage_Function GLMessage::glDeleteVertexArraysOES; +const GLMessage_Function GLMessage::glDepthFunc; +const GLMessage_Function GLMessage::glDepthMask; +const GLMessage_Function GLMessage::glDepthRangef; +const GLMessage_Function GLMessage::glDepthRangefOES; +const GLMessage_Function GLMessage::glDepthRangex; +const GLMessage_Function GLMessage::glDepthRangexOES; +const GLMessage_Function GLMessage::glDetachShader; +const GLMessage_Function GLMessage::glDisableClientState; +const GLMessage_Function GLMessage::glDisableDriverControlQCOM; +const GLMessage_Function GLMessage::glDisable; +const GLMessage_Function GLMessage::glDisableVertexAttribArray; +const GLMessage_Function GLMessage::glDiscardFramebufferEXT; +const GLMessage_Function GLMessage::glDrawArrays; +const GLMessage_Function GLMessage::glDrawElements; +const GLMessage_Function GLMessage::glDrawTexfOES; +const GLMessage_Function GLMessage::glDrawTexfvOES; +const GLMessage_Function GLMessage::glDrawTexiOES; +const GLMessage_Function GLMessage::glDrawTexivOES; +const GLMessage_Function GLMessage::glDrawTexsOES; +const GLMessage_Function GLMessage::glDrawTexsvOES; +const GLMessage_Function GLMessage::glDrawTexxOES; +const GLMessage_Function GLMessage::glDrawTexxvOES; +const GLMessage_Function GLMessage::glEGLImageTargetRenderbufferStorageOES; +const GLMessage_Function GLMessage::glEGLImageTargetTexture2DOES; +const GLMessage_Function GLMessage::glEnableClientState; +const GLMessage_Function GLMessage::glEnableDriverControlQCOM; +const GLMessage_Function GLMessage::glEnable; +const GLMessage_Function GLMessage::glEnableVertexAttribArray; +const GLMessage_Function GLMessage::glEndPerfMonitorAMD; +const GLMessage_Function GLMessage::glEndTilingQCOM; +const GLMessage_Function GLMessage::glExtGetBufferPointervQCOM; +const GLMessage_Function GLMessage::glExtGetBuffersQCOM; +const GLMessage_Function GLMessage::glExtGetFramebuffersQCOM; +const GLMessage_Function GLMessage::glExtGetProgramBinarySourceQCOM; +const GLMessage_Function GLMessage::glExtGetProgramsQCOM; +const GLMessage_Function GLMessage::glExtGetRenderbuffersQCOM; +const GLMessage_Function GLMessage::glExtGetShadersQCOM; +const GLMessage_Function GLMessage::glExtGetTexLevelParameterivQCOM; +const GLMessage_Function GLMessage::glExtGetTexSubImageQCOM; +const GLMessage_Function GLMessage::glExtGetTexturesQCOM; +const GLMessage_Function GLMessage::glExtIsProgramBinaryQCOM; +const GLMessage_Function GLMessage::glExtTexObjectStateOverrideiQCOM; +const GLMessage_Function GLMessage::glFinishFenceNV; +const GLMessage_Function GLMessage::glFinish; +const GLMessage_Function GLMessage::glFlush; +const GLMessage_Function GLMessage::glFogf; +const GLMessage_Function GLMessage::glFogfv; +const GLMessage_Function GLMessage::glFogx; +const GLMessage_Function GLMessage::glFogxOES; +const GLMessage_Function GLMessage::glFogxv; +const GLMessage_Function GLMessage::glFogxvOES; +const GLMessage_Function GLMessage::glFramebufferRenderbuffer; +const GLMessage_Function GLMessage::glFramebufferRenderbufferOES; +const GLMessage_Function GLMessage::glFramebufferTexture2D; +const GLMessage_Function GLMessage::glFramebufferTexture2DMultisampleIMG; +const GLMessage_Function GLMessage::glFramebufferTexture2DOES; +const GLMessage_Function GLMessage::glFramebufferTexture3DOES; +const GLMessage_Function GLMessage::glFrontFace; +const GLMessage_Function GLMessage::glFrustumf; +const GLMessage_Function GLMessage::glFrustumfOES; +const GLMessage_Function GLMessage::glFrustumx; +const GLMessage_Function GLMessage::glFrustumxOES; +const GLMessage_Function GLMessage::glGenBuffers; +const GLMessage_Function GLMessage::glGenerateMipmap; +const GLMessage_Function GLMessage::glGenerateMipmapOES; +const GLMessage_Function GLMessage::glGenFencesNV; +const GLMessage_Function GLMessage::glGenFramebuffers; +const GLMessage_Function GLMessage::glGenFramebuffersOES; +const GLMessage_Function GLMessage::glGenPerfMonitorsAMD; +const GLMessage_Function GLMessage::glGenRenderbuffers; +const GLMessage_Function GLMessage::glGenRenderbuffersOES; +const GLMessage_Function GLMessage::glGenTextures; +const GLMessage_Function GLMessage::glGenVertexArraysOES; +const GLMessage_Function GLMessage::glGetActiveAttrib; +const GLMessage_Function GLMessage::glGetActiveUniform; +const GLMessage_Function GLMessage::glGetAttachedShaders; +const GLMessage_Function GLMessage::glGetAttribLocation; +const GLMessage_Function GLMessage::glGetBooleanv; +const GLMessage_Function GLMessage::glGetBufferParameteriv; +const GLMessage_Function GLMessage::glGetBufferPointervOES; +const GLMessage_Function GLMessage::glGetClipPlanef; +const GLMessage_Function GLMessage::glGetClipPlanefOES; +const GLMessage_Function GLMessage::glGetClipPlanex; +const GLMessage_Function GLMessage::glGetClipPlanexOES; +const GLMessage_Function GLMessage::glGetDriverControlsQCOM; +const GLMessage_Function GLMessage::glGetDriverControlStringQCOM; +const GLMessage_Function GLMessage::glGetError; +const GLMessage_Function GLMessage::glGetFenceivNV; +const GLMessage_Function GLMessage::glGetFixedv; +const GLMessage_Function GLMessage::glGetFixedvOES; +const GLMessage_Function GLMessage::glGetFloatv; +const GLMessage_Function GLMessage::glGetFramebufferAttachmentParameteriv; +const GLMessage_Function GLMessage::glGetFramebufferAttachmentParameterivOES; +const GLMessage_Function GLMessage::glGetIntegerv; +const GLMessage_Function GLMessage::glGetLightfv; +const GLMessage_Function GLMessage::glGetLightxv; +const GLMessage_Function GLMessage::glGetLightxvOES; +const GLMessage_Function GLMessage::glGetMaterialfv; +const GLMessage_Function GLMessage::glGetMaterialxv; +const GLMessage_Function GLMessage::glGetMaterialxvOES; +const GLMessage_Function GLMessage::glGetPerfMonitorCounterDataAMD; +const GLMessage_Function GLMessage::glGetPerfMonitorCounterInfoAMD; +const GLMessage_Function GLMessage::glGetPerfMonitorCountersAMD; +const GLMessage_Function GLMessage::glGetPerfMonitorCounterStringAMD; +const GLMessage_Function GLMessage::glGetPerfMonitorGroupsAMD; +const GLMessage_Function GLMessage::glGetPerfMonitorGroupStringAMD; +const GLMessage_Function GLMessage::glGetPointerv; +const GLMessage_Function GLMessage::glGetProgramBinaryOES; +const GLMessage_Function GLMessage::glGetProgramInfoLog; +const GLMessage_Function GLMessage::glGetProgramiv; +const GLMessage_Function GLMessage::glGetRenderbufferParameteriv; +const GLMessage_Function GLMessage::glGetRenderbufferParameterivOES; +const GLMessage_Function GLMessage::glGetShaderInfoLog; +const GLMessage_Function GLMessage::glGetShaderiv; +const GLMessage_Function GLMessage::glGetShaderPrecisionFormat; +const GLMessage_Function GLMessage::glGetShaderSource; +const GLMessage_Function GLMessage::glGetString; +const GLMessage_Function GLMessage::glGetTexEnvfv; +const GLMessage_Function GLMessage::glGetTexEnviv; +const GLMessage_Function GLMessage::glGetTexEnvxv; +const GLMessage_Function GLMessage::glGetTexEnvxvOES; +const GLMessage_Function GLMessage::glGetTexGenfvOES; +const GLMessage_Function GLMessage::glGetTexGenivOES; +const GLMessage_Function GLMessage::glGetTexGenxvOES; +const GLMessage_Function GLMessage::glGetTexParameterfv; +const GLMessage_Function GLMessage::glGetTexParameteriv; +const GLMessage_Function GLMessage::glGetTexParameterxv; +const GLMessage_Function GLMessage::glGetTexParameterxvOES; +const GLMessage_Function GLMessage::glGetUniformfv; +const GLMessage_Function GLMessage::glGetUniformiv; +const GLMessage_Function GLMessage::glGetUniformLocation; +const GLMessage_Function GLMessage::glGetVertexAttribfv; +const GLMessage_Function GLMessage::glGetVertexAttribiv; +const GLMessage_Function GLMessage::glGetVertexAttribPointerv; +const GLMessage_Function GLMessage::glHint; +const GLMessage_Function GLMessage::glIsBuffer; +const GLMessage_Function GLMessage::glIsEnabled; +const GLMessage_Function GLMessage::glIsFenceNV; +const GLMessage_Function GLMessage::glIsFramebuffer; +const GLMessage_Function GLMessage::glIsFramebufferOES; +const GLMessage_Function GLMessage::glIsProgram; +const GLMessage_Function GLMessage::glIsRenderbuffer; +const GLMessage_Function GLMessage::glIsRenderbufferOES; +const GLMessage_Function GLMessage::glIsShader; +const GLMessage_Function GLMessage::glIsTexture; +const GLMessage_Function GLMessage::glIsVertexArrayOES; +const GLMessage_Function GLMessage::glLightf; +const GLMessage_Function GLMessage::glLightfv; +const GLMessage_Function GLMessage::glLightModelf; +const GLMessage_Function GLMessage::glLightModelfv; +const GLMessage_Function GLMessage::glLightModelx; +const GLMessage_Function GLMessage::glLightModelxOES; +const GLMessage_Function GLMessage::glLightModelxv; +const GLMessage_Function GLMessage::glLightModelxvOES; +const GLMessage_Function GLMessage::glLightx; +const GLMessage_Function GLMessage::glLightxOES; +const GLMessage_Function GLMessage::glLightxv; +const GLMessage_Function GLMessage::glLightxvOES; +const GLMessage_Function GLMessage::glLineWidth; +const GLMessage_Function GLMessage::glLineWidthx; +const GLMessage_Function GLMessage::glLineWidthxOES; +const GLMessage_Function GLMessage::glLinkProgram; +const GLMessage_Function GLMessage::glLoadIdentity; +const GLMessage_Function GLMessage::glLoadMatrixf; +const GLMessage_Function GLMessage::glLoadMatrixx; +const GLMessage_Function GLMessage::glLoadMatrixxOES; +const GLMessage_Function GLMessage::glLoadPaletteFromModelViewMatrixOES; +const GLMessage_Function GLMessage::glLogicOp; +const GLMessage_Function GLMessage::glMapBufferOES; +const GLMessage_Function GLMessage::glMaterialf; +const GLMessage_Function GLMessage::glMaterialfv; +const GLMessage_Function GLMessage::glMaterialx; +const GLMessage_Function GLMessage::glMaterialxOES; +const GLMessage_Function GLMessage::glMaterialxv; +const GLMessage_Function GLMessage::glMaterialxvOES; +const GLMessage_Function GLMessage::glMatrixIndexPointerOES; +const GLMessage_Function GLMessage::glMatrixMode; +const GLMessage_Function GLMessage::glMultiDrawArraysEXT; +const GLMessage_Function GLMessage::glMultiDrawElementsEXT; +const GLMessage_Function GLMessage::glMultiTexCoord4f; +const GLMessage_Function GLMessage::glMultiTexCoord4x; +const GLMessage_Function GLMessage::glMultiTexCoord4xOES; +const GLMessage_Function GLMessage::glMultMatrixf; +const GLMessage_Function GLMessage::glMultMatrixx; +const GLMessage_Function GLMessage::glMultMatrixxOES; +const GLMessage_Function GLMessage::glNormal3f; +const GLMessage_Function GLMessage::glNormal3x; +const GLMessage_Function GLMessage::glNormal3xOES; +const GLMessage_Function GLMessage::glNormalPointer; +const GLMessage_Function GLMessage::glOrthof; +const GLMessage_Function GLMessage::glOrthofOES; +const GLMessage_Function GLMessage::glOrthox; +const GLMessage_Function GLMessage::glOrthoxOES; +const GLMessage_Function GLMessage::glPixelStorei; +const GLMessage_Function GLMessage::glPointParameterf; +const GLMessage_Function GLMessage::glPointParameterfv; +const GLMessage_Function GLMessage::glPointParameterx; +const GLMessage_Function GLMessage::glPointParameterxOES; +const GLMessage_Function GLMessage::glPointParameterxv; +const GLMessage_Function GLMessage::glPointParameterxvOES; +const GLMessage_Function GLMessage::glPointSize; +const GLMessage_Function GLMessage::glPointSizePointerOES; +const GLMessage_Function GLMessage::glPointSizex; +const GLMessage_Function GLMessage::glPointSizexOES; +const GLMessage_Function GLMessage::glPolygonOffset; +const GLMessage_Function GLMessage::glPolygonOffsetx; +const GLMessage_Function GLMessage::glPolygonOffsetxOES; +const GLMessage_Function GLMessage::glPopMatrix; +const GLMessage_Function GLMessage::glProgramBinaryOES; +const GLMessage_Function GLMessage::glPushMatrix; +const GLMessage_Function GLMessage::glQueryMatrixxOES; +const GLMessage_Function GLMessage::glReadPixels; +const GLMessage_Function GLMessage::glReleaseShaderCompiler; +const GLMessage_Function GLMessage::glRenderbufferStorage; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleIMG; +const GLMessage_Function GLMessage::glRenderbufferStorageOES; +const GLMessage_Function GLMessage::glRotatef; +const GLMessage_Function GLMessage::glRotatex; +const GLMessage_Function GLMessage::glRotatexOES; +const GLMessage_Function GLMessage::glSampleCoverage; +const GLMessage_Function GLMessage::glSampleCoveragex; +const GLMessage_Function GLMessage::glSampleCoveragexOES; +const GLMessage_Function GLMessage::glScalef; +const GLMessage_Function GLMessage::glScalex; +const GLMessage_Function GLMessage::glScalexOES; +const GLMessage_Function GLMessage::glScissor; +const GLMessage_Function GLMessage::glSelectPerfMonitorCountersAMD; +const GLMessage_Function GLMessage::glSetFenceNV; +const GLMessage_Function GLMessage::glShadeModel; +const GLMessage_Function GLMessage::glShaderBinary; +const GLMessage_Function GLMessage::glShaderSource; +const GLMessage_Function GLMessage::glStartTilingQCOM; +const GLMessage_Function GLMessage::glStencilFunc; +const GLMessage_Function GLMessage::glStencilFuncSeparate; +const GLMessage_Function GLMessage::glStencilMask; +const GLMessage_Function GLMessage::glStencilMaskSeparate; +const GLMessage_Function GLMessage::glStencilOp; +const GLMessage_Function GLMessage::glStencilOpSeparate; +const GLMessage_Function GLMessage::glTestFenceNV; +const GLMessage_Function GLMessage::glTexCoordPointer; +const GLMessage_Function GLMessage::glTexEnvf; +const GLMessage_Function GLMessage::glTexEnvfv; +const GLMessage_Function GLMessage::glTexEnvi; +const GLMessage_Function GLMessage::glTexEnviv; +const GLMessage_Function GLMessage::glTexEnvx; +const GLMessage_Function GLMessage::glTexEnvxOES; +const GLMessage_Function GLMessage::glTexEnvxv; +const GLMessage_Function GLMessage::glTexEnvxvOES; +const GLMessage_Function GLMessage::glTexGenfOES; +const GLMessage_Function GLMessage::glTexGenfvOES; +const GLMessage_Function GLMessage::glTexGeniOES; +const GLMessage_Function GLMessage::glTexGenivOES; +const GLMessage_Function GLMessage::glTexGenxOES; +const GLMessage_Function GLMessage::glTexGenxvOES; +const GLMessage_Function GLMessage::glTexImage2D; +const GLMessage_Function GLMessage::glTexImage3DOES; +const GLMessage_Function GLMessage::glTexParameterf; +const GLMessage_Function GLMessage::glTexParameterfv; +const GLMessage_Function GLMessage::glTexParameteri; +const GLMessage_Function GLMessage::glTexParameteriv; +const GLMessage_Function GLMessage::glTexParameterx; +const GLMessage_Function GLMessage::glTexParameterxOES; +const GLMessage_Function GLMessage::glTexParameterxv; +const GLMessage_Function GLMessage::glTexParameterxvOES; +const GLMessage_Function GLMessage::glTexSubImage2D; +const GLMessage_Function GLMessage::glTexSubImage3DOES; +const GLMessage_Function GLMessage::glTranslatef; +const GLMessage_Function GLMessage::glTranslatex; +const GLMessage_Function GLMessage::glTranslatexOES; +const GLMessage_Function GLMessage::glUniform1f; +const GLMessage_Function GLMessage::glUniform1fv; +const GLMessage_Function GLMessage::glUniform1i; +const GLMessage_Function GLMessage::glUniform1iv; +const GLMessage_Function GLMessage::glUniform2f; +const GLMessage_Function GLMessage::glUniform2fv; +const GLMessage_Function GLMessage::glUniform2i; +const GLMessage_Function GLMessage::glUniform2iv; +const GLMessage_Function GLMessage::glUniform3f; +const GLMessage_Function GLMessage::glUniform3fv; +const GLMessage_Function GLMessage::glUniform3i; +const GLMessage_Function GLMessage::glUniform3iv; +const GLMessage_Function GLMessage::glUniform4f; +const GLMessage_Function GLMessage::glUniform4fv; +const GLMessage_Function GLMessage::glUniform4i; +const GLMessage_Function GLMessage::glUniform4iv; +const GLMessage_Function GLMessage::glUniformMatrix2fv; +const GLMessage_Function GLMessage::glUniformMatrix3fv; +const GLMessage_Function GLMessage::glUniformMatrix4fv; +const GLMessage_Function GLMessage::glUnmapBufferOES; +const GLMessage_Function GLMessage::glUseProgram; +const GLMessage_Function GLMessage::glValidateProgram; +const GLMessage_Function GLMessage::glVertexAttrib1f; +const GLMessage_Function GLMessage::glVertexAttrib1fv; +const GLMessage_Function GLMessage::glVertexAttrib2f; +const GLMessage_Function GLMessage::glVertexAttrib2fv; +const GLMessage_Function GLMessage::glVertexAttrib3f; +const GLMessage_Function GLMessage::glVertexAttrib3fv; +const GLMessage_Function GLMessage::glVertexAttrib4f; +const GLMessage_Function GLMessage::glVertexAttrib4fv; +const GLMessage_Function GLMessage::glVertexAttribPointer; +const GLMessage_Function GLMessage::glVertexPointer; +const GLMessage_Function GLMessage::glViewport; +const GLMessage_Function GLMessage::glWeightPointerOES; +const GLMessage_Function GLMessage::glActiveShaderProgramEXT; +const GLMessage_Function GLMessage::glAlphaFuncQCOM; +const GLMessage_Function GLMessage::glBeginQueryEXT; +const GLMessage_Function GLMessage::glBindProgramPipelineEXT; +const GLMessage_Function GLMessage::glBlitFramebufferANGLE; +const GLMessage_Function GLMessage::glCreateShaderProgramvEXT; +const GLMessage_Function GLMessage::glDeleteProgramPipelinesEXT; +const GLMessage_Function GLMessage::glDeleteQueriesEXT; +const GLMessage_Function GLMessage::glDrawBuffersNV; +const GLMessage_Function GLMessage::glEndQueryEXT; +const GLMessage_Function GLMessage::glFramebufferTexture2DMultisampleEXT; +const GLMessage_Function GLMessage::glGenProgramPipelinesEXT; +const GLMessage_Function GLMessage::glGenQueriesEXT; +const GLMessage_Function GLMessage::glGetGraphicsResetStatusEXT; +const GLMessage_Function GLMessage::glGetObjectLabelEXT; +const GLMessage_Function GLMessage::glGetProgramPipelineInfoLogEXT; +const GLMessage_Function GLMessage::glGetProgramPipelineivEXT; +const GLMessage_Function GLMessage::glGetQueryObjectuivEXT; +const GLMessage_Function GLMessage::glGetQueryivEXT; +const GLMessage_Function GLMessage::glGetnUniformfvEXT; +const GLMessage_Function GLMessage::glGetnUniformivEXT; +const GLMessage_Function GLMessage::glInsertEventMarkerEXT; +const GLMessage_Function GLMessage::glIsProgramPipelineEXT; +const GLMessage_Function GLMessage::glIsQueryEXT; +const GLMessage_Function GLMessage::glLabelObjectEXT; +const GLMessage_Function GLMessage::glPopGroupMarkerEXT; +const GLMessage_Function GLMessage::glProgramParameteriEXT; +const GLMessage_Function GLMessage::glProgramUniform1fEXT; +const GLMessage_Function GLMessage::glProgramUniform1fvEXT; +const GLMessage_Function GLMessage::glProgramUniform1iEXT; +const GLMessage_Function GLMessage::glProgramUniform1ivEXT; +const GLMessage_Function GLMessage::glProgramUniform2fEXT; +const GLMessage_Function GLMessage::glProgramUniform2fvEXT; +const GLMessage_Function GLMessage::glProgramUniform2iEXT; +const GLMessage_Function GLMessage::glProgramUniform2ivEXT; +const GLMessage_Function GLMessage::glProgramUniform3fEXT; +const GLMessage_Function GLMessage::glProgramUniform3fvEXT; +const GLMessage_Function GLMessage::glProgramUniform3iEXT; +const GLMessage_Function GLMessage::glProgramUniform3ivEXT; +const GLMessage_Function GLMessage::glProgramUniform4fEXT; +const GLMessage_Function GLMessage::glProgramUniform4fvEXT; +const GLMessage_Function GLMessage::glProgramUniform4iEXT; +const GLMessage_Function GLMessage::glProgramUniform4ivEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix2fvEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix3fvEXT; +const GLMessage_Function GLMessage::glProgramUniformMatrix4fvEXT; +const GLMessage_Function GLMessage::glPushGroupMarkerEXT; +const GLMessage_Function GLMessage::glReadBufferNV; +const GLMessage_Function GLMessage::glReadnPixelsEXT; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleANGLE; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleAPPLE; +const GLMessage_Function GLMessage::glRenderbufferStorageMultisampleEXT; +const GLMessage_Function GLMessage::glResolveMultisampleFramebufferAPPLE; +const GLMessage_Function GLMessage::glTexStorage1DEXT; +const GLMessage_Function GLMessage::glTexStorage2DEXT; +const GLMessage_Function GLMessage::glTexStorage3DEXT; +const GLMessage_Function GLMessage::glTextureStorage1DEXT; +const GLMessage_Function GLMessage::glTextureStorage2DEXT; +const GLMessage_Function GLMessage::glTextureStorage3DEXT; +const GLMessage_Function GLMessage::glUseProgramStagesEXT; +const GLMessage_Function GLMessage::glValidateProgramPipelineEXT; +const GLMessage_Function GLMessage::eglGetDisplay; +const GLMessage_Function GLMessage::eglInitialize; +const GLMessage_Function GLMessage::eglTerminate; +const GLMessage_Function GLMessage::eglGetConfigs; +const GLMessage_Function GLMessage::eglChooseConfig; +const GLMessage_Function GLMessage::eglGetConfigAttrib; +const GLMessage_Function GLMessage::eglCreateWindowSurface; +const GLMessage_Function GLMessage::eglCreatePixmapSurface; +const GLMessage_Function GLMessage::eglCreatePbufferSurface; +const GLMessage_Function GLMessage::eglDestroySurface; +const GLMessage_Function GLMessage::eglQuerySurface; +const GLMessage_Function GLMessage::eglCreateContext; +const GLMessage_Function GLMessage::eglDestroyContext; +const GLMessage_Function GLMessage::eglMakeCurrent; +const GLMessage_Function GLMessage::eglGetCurrentContext; +const GLMessage_Function GLMessage::eglGetCurrentSurface; +const GLMessage_Function GLMessage::eglGetCurrentDisplay; +const GLMessage_Function GLMessage::eglQueryContext; +const GLMessage_Function GLMessage::eglWaitGL; +const GLMessage_Function GLMessage::eglWaitNative; +const GLMessage_Function GLMessage::eglSwapBuffers; +const GLMessage_Function GLMessage::eglCopyBuffers; +const GLMessage_Function GLMessage::eglGetError; +const GLMessage_Function GLMessage::eglQueryString; +const GLMessage_Function GLMessage::eglGetProcAddress; +const GLMessage_Function GLMessage::eglSurfaceAttrib; +const GLMessage_Function GLMessage::eglBindTexImage; +const GLMessage_Function GLMessage::eglReleaseTexImage; +const GLMessage_Function GLMessage::eglSwapInterval; +const GLMessage_Function GLMessage::eglBindAPI; +const GLMessage_Function GLMessage::eglQueryAPI; +const GLMessage_Function GLMessage::eglWaitClient; +const GLMessage_Function GLMessage::eglReleaseThread; +const GLMessage_Function GLMessage::eglCreatePbufferFromClientBuffer; +const GLMessage_Function GLMessage::eglLockSurfaceKHR; +const GLMessage_Function GLMessage::eglUnlockSurfaceKHR; +const GLMessage_Function GLMessage::eglCreateImageKHR; +const GLMessage_Function GLMessage::eglDestroyImageKHR; +const GLMessage_Function GLMessage::eglCreateSyncKHR; +const GLMessage_Function GLMessage::eglDestroySyncKHR; +const GLMessage_Function GLMessage::eglClientWaitSyncKHR; +const GLMessage_Function GLMessage::eglGetSyncAttribKHR; +const GLMessage_Function GLMessage::eglSetSwapRectangleANDROID; +const GLMessage_Function GLMessage::eglGetRenderBufferANDROID; +const GLMessage_Function GLMessage::eglGetSystemTimeFrequencyNV; +const GLMessage_Function GLMessage::eglGetSystemTimeNV; +const GLMessage_Function GLMessage::invalid; +const GLMessage_Function GLMessage::frameBufferContents; +const GLMessage_Function GLMessage::Function_MIN; +const GLMessage_Function GLMessage::Function_MAX; +const int GLMessage::Function_ARRAYSIZE; +#endif // _MSC_VER +bool GLMessage_DataType_Type_IsValid(int value) { + switch(value) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 6: + case 7: + return true; + default: + return false; + } +} + +#ifndef _MSC_VER +const GLMessage_DataType_Type GLMessage_DataType::VOID; +const GLMessage_DataType_Type GLMessage_DataType::CHAR; +const GLMessage_DataType_Type GLMessage_DataType::BYTE; +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::Type_MIN; +const GLMessage_DataType_Type GLMessage_DataType::Type_MAX; +const int GLMessage_DataType::Type_ARRAYSIZE; +#endif // _MSC_VER +#ifndef _MSC_VER +const int GLMessage_DataType::kTypeFieldNumber; +const int GLMessage_DataType::kIsArrayFieldNumber; +const int GLMessage_DataType::kIntValueFieldNumber; +const int GLMessage_DataType::kFloatValueFieldNumber; +const int GLMessage_DataType::kCharValueFieldNumber; +const int GLMessage_DataType::kRawBytesFieldNumber; +const int GLMessage_DataType::kBoolValueFieldNumber; +#endif // !_MSC_VER + +GLMessage_DataType::GLMessage_DataType() + : ::google::protobuf::MessageLite() { + SharedCtor(); +} + +void GLMessage_DataType::InitAsDefaultInstance() { +} + +GLMessage_DataType::GLMessage_DataType(const GLMessage_DataType& from) + : ::google::protobuf::MessageLite() { + SharedCtor(); + MergeFrom(from); +} + +void GLMessage_DataType::SharedCtor() { + _cached_size_ = 0; + type_ = 1; + isarray_ = false; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +GLMessage_DataType::~GLMessage_DataType() { + SharedDtor(); +} + +void GLMessage_DataType::SharedDtor() { + if (this != default_instance_) { + } +} + +void GLMessage_DataType::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const GLMessage_DataType& GLMessage_DataType::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_gltrace_2eproto(); return *default_instance_; +} + +GLMessage_DataType* GLMessage_DataType::default_instance_ = NULL; + +GLMessage_DataType* GLMessage_DataType::New() const { + return new GLMessage_DataType; +} + +void GLMessage_DataType::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + type_ = 1; + isarray_ = false; + } + intvalue_.Clear(); + floatvalue_.Clear(); + charvalue_.Clear(); + rawbytes_.Clear(); + boolvalue_.Clear(); + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +bool GLMessage_DataType::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // required .android.gltrace.GLMessage.DataType.Type type = 1 [default = VOID]; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + int value; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::android::gltrace::GLMessage_DataType_Type_IsValid(value)) { + set_type(static_cast< ::android::gltrace::GLMessage_DataType_Type >(value)); + } + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(16)) goto parse_isArray; + break; + } + + // required bool isArray = 2 [default = false]; + case 2: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_isArray: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + input, &isarray_))); + _set_bit(1); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(24)) goto parse_intValue; + break; + } + + // repeated int32 intValue = 3; + case 3: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_intValue: + DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + 1, 24, input, this->mutable_intvalue()))); + } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) + == ::google::protobuf::internal::WireFormatLite:: + WIRETYPE_LENGTH_DELIMITED) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, this->mutable_intvalue()))); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(24)) goto parse_intValue; + if (input->ExpectTag(37)) goto parse_floatValue; + break; + } + + // repeated float floatValue = 4; + case 4: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_FIXED32) { + parse_floatValue: + DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive< + float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( + 1, 37, input, this->mutable_floatvalue()))); + } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) + == ::google::protobuf::internal::WireFormatLite:: + WIRETYPE_LENGTH_DELIMITED) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline< + float, ::google::protobuf::internal::WireFormatLite::TYPE_FLOAT>( + input, this->mutable_floatvalue()))); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(37)) goto parse_floatValue; + if (input->ExpectTag(42)) goto parse_charValue; + break; + } + + // repeated bytes charValue = 5; + case 5: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_charValue: + DO_(::google::protobuf::internal::WireFormatLite::ReadBytes( + input, this->add_charvalue())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(42)) goto parse_charValue; + if (input->ExpectTag(50)) goto parse_rawBytes; + break; + } + + // repeated bytes rawBytes = 6; + case 6: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_rawBytes: + DO_(::google::protobuf::internal::WireFormatLite::ReadBytes( + input, this->add_rawbytes())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(50)) goto parse_rawBytes; + if (input->ExpectTag(56)) goto parse_boolValue; + break; + } + + // repeated bool boolValue = 7; + case 7: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_boolValue: + DO_((::google::protobuf::internal::WireFormatLite::ReadRepeatedPrimitive< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + 1, 56, input, this->mutable_boolvalue()))); + } else if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) + == ::google::protobuf::internal::WireFormatLite:: + WIRETYPE_LENGTH_DELIMITED) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline< + bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>( + input, this->mutable_boolvalue()))); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(56)) goto parse_boolValue; + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag)); + break; + } + } + } + return true; +#undef DO_ +} + +void GLMessage_DataType::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // required .android.gltrace.GLMessage.DataType.Type type = 1 [default = VOID]; + if (_has_bit(0)) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 1, this->type(), output); + } + + // required bool isArray = 2 [default = false]; + if (_has_bit(1)) { + ::google::protobuf::internal::WireFormatLite::WriteBool(2, this->isarray(), output); + } + + // repeated int32 intValue = 3; + for (int i = 0; i < this->intvalue_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteInt32( + 3, this->intvalue(i), output); + } + + // repeated float floatValue = 4; + for (int i = 0; i < this->floatvalue_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteFloat( + 4, this->floatvalue(i), output); + } + + // repeated bytes charValue = 5; + for (int i = 0; i < this->charvalue_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteBytes( + 5, this->charvalue(i), output); + } + + // repeated bytes rawBytes = 6; + for (int i = 0; i < this->rawbytes_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteBytes( + 6, this->rawbytes(i), output); + } + + // repeated bool boolValue = 7; + for (int i = 0; i < this->boolvalue_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteBool( + 7, this->boolvalue(i), output); + } + +} + +int GLMessage_DataType::ByteSize() const { + int total_size = 0; + + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // required .android.gltrace.GLMessage.DataType.Type type = 1 [default = VOID]; + if (has_type()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->type()); + } + + // required bool isArray = 2 [default = false]; + if (has_isarray()) { + total_size += 1 + 1; + } + + } + // repeated int32 intValue = 3; + { + int data_size = 0; + for (int i = 0; i < this->intvalue_size(); i++) { + data_size += ::google::protobuf::internal::WireFormatLite:: + Int32Size(this->intvalue(i)); + } + total_size += 1 * this->intvalue_size() + data_size; + } + + // repeated float floatValue = 4; + { + int data_size = 0; + data_size = 4 * this->floatvalue_size(); + total_size += 1 * this->floatvalue_size() + data_size; + } + + // repeated bytes charValue = 5; + total_size += 1 * this->charvalue_size(); + for (int i = 0; i < this->charvalue_size(); i++) { + total_size += ::google::protobuf::internal::WireFormatLite::BytesSize( + this->charvalue(i)); + } + + // repeated bytes rawBytes = 6; + total_size += 1 * this->rawbytes_size(); + for (int i = 0; i < this->rawbytes_size(); i++) { + total_size += ::google::protobuf::internal::WireFormatLite::BytesSize( + this->rawbytes(i)); + } + + // repeated bool boolValue = 7; + { + int data_size = 0; + data_size = 1 * this->boolvalue_size(); + total_size += 1 * this->boolvalue_size() + data_size; + } + + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void GLMessage_DataType::CheckTypeAndMergeFrom( + const ::google::protobuf::MessageLite& from) { + MergeFrom(*::google::protobuf::down_cast<const GLMessage_DataType*>(&from)); +} + +void GLMessage_DataType::MergeFrom(const GLMessage_DataType& from) { + GOOGLE_CHECK_NE(&from, this); + intvalue_.MergeFrom(from.intvalue_); + floatvalue_.MergeFrom(from.floatvalue_); + charvalue_.MergeFrom(from.charvalue_); + rawbytes_.MergeFrom(from.rawbytes_); + boolvalue_.MergeFrom(from.boolvalue_); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from._has_bit(0)) { + set_type(from.type()); + } + if (from._has_bit(1)) { + set_isarray(from.isarray()); + } + } +} + +void GLMessage_DataType::CopyFrom(const GLMessage_DataType& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GLMessage_DataType::IsInitialized() const { + if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false; + + return true; +} + +void GLMessage_DataType::Swap(GLMessage_DataType* other) { + if (other != this) { + std::swap(type_, other->type_); + std::swap(isarray_, other->isarray_); + intvalue_.Swap(&other->intvalue_); + floatvalue_.Swap(&other->floatvalue_); + charvalue_.Swap(&other->charvalue_); + rawbytes_.Swap(&other->rawbytes_); + boolvalue_.Swap(&other->boolvalue_); + std::swap(_has_bits_[0], other->_has_bits_[0]); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::std::string GLMessage_DataType::GetTypeName() const { + return "android.gltrace.GLMessage.DataType"; +} + + +// ------------------------------------------------------------------- + +#ifndef _MSC_VER +const int GLMessage_FrameBuffer::kWidthFieldNumber; +const int GLMessage_FrameBuffer::kHeightFieldNumber; +const int GLMessage_FrameBuffer::kContentsFieldNumber; +#endif // !_MSC_VER + +GLMessage_FrameBuffer::GLMessage_FrameBuffer() + : ::google::protobuf::MessageLite() { + SharedCtor(); +} + +void GLMessage_FrameBuffer::InitAsDefaultInstance() { +} + +GLMessage_FrameBuffer::GLMessage_FrameBuffer(const GLMessage_FrameBuffer& from) + : ::google::protobuf::MessageLite() { + SharedCtor(); + MergeFrom(from); +} + +void GLMessage_FrameBuffer::SharedCtor() { + _cached_size_ = 0; + width_ = 0; + height_ = 0; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +GLMessage_FrameBuffer::~GLMessage_FrameBuffer() { + SharedDtor(); +} + +void GLMessage_FrameBuffer::SharedDtor() { + if (this != default_instance_) { + } +} + +void GLMessage_FrameBuffer::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const GLMessage_FrameBuffer& GLMessage_FrameBuffer::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_gltrace_2eproto(); return *default_instance_; +} + +GLMessage_FrameBuffer* GLMessage_FrameBuffer::default_instance_ = NULL; + +GLMessage_FrameBuffer* GLMessage_FrameBuffer::New() const { + return new GLMessage_FrameBuffer; +} + +void GLMessage_FrameBuffer::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + width_ = 0; + height_ = 0; + } + contents_.Clear(); + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +bool GLMessage_FrameBuffer::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // required int32 width = 1; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &width_))); + _set_bit(0); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(16)) goto parse_height; + break; + } + + // required int32 height = 2; + case 2: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_height: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &height_))); + _set_bit(1); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(26)) goto parse_contents; + break; + } + + // repeated bytes contents = 3; + case 3: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_contents: + DO_(::google::protobuf::internal::WireFormatLite::ReadBytes( + input, this->add_contents())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(26)) goto parse_contents; + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag)); + break; + } + } + } + return true; +#undef DO_ +} + +void GLMessage_FrameBuffer::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // required int32 width = 1; + if (_has_bit(0)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->width(), output); + } + + // required int32 height = 2; + if (_has_bit(1)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(2, this->height(), output); + } + + // repeated bytes contents = 3; + for (int i = 0; i < this->contents_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteBytes( + 3, this->contents(i), output); + } + +} + +int GLMessage_FrameBuffer::ByteSize() const { + int total_size = 0; + + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // required int32 width = 1; + if (has_width()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->width()); + } + + // required int32 height = 2; + if (has_height()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->height()); + } + + } + // repeated bytes contents = 3; + total_size += 1 * this->contents_size(); + for (int i = 0; i < this->contents_size(); i++) { + total_size += ::google::protobuf::internal::WireFormatLite::BytesSize( + this->contents(i)); + } + + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void GLMessage_FrameBuffer::CheckTypeAndMergeFrom( + const ::google::protobuf::MessageLite& from) { + MergeFrom(*::google::protobuf::down_cast<const GLMessage_FrameBuffer*>(&from)); +} + +void GLMessage_FrameBuffer::MergeFrom(const GLMessage_FrameBuffer& from) { + GOOGLE_CHECK_NE(&from, this); + contents_.MergeFrom(from.contents_); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from._has_bit(0)) { + set_width(from.width()); + } + if (from._has_bit(1)) { + set_height(from.height()); + } + } +} + +void GLMessage_FrameBuffer::CopyFrom(const GLMessage_FrameBuffer& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GLMessage_FrameBuffer::IsInitialized() const { + if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false; + + return true; +} + +void GLMessage_FrameBuffer::Swap(GLMessage_FrameBuffer* other) { + if (other != this) { + std::swap(width_, other->width_); + std::swap(height_, other->height_); + contents_.Swap(&other->contents_); + std::swap(_has_bits_[0], other->_has_bits_[0]); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::std::string GLMessage_FrameBuffer::GetTypeName() const { + return "android.gltrace.GLMessage.FrameBuffer"; +} + + +// ------------------------------------------------------------------- + +#ifndef _MSC_VER +const int GLMessage::kContextIdFieldNumber; +const int GLMessage::kStartTimeFieldNumber; +const int GLMessage::kDurationFieldNumber; +const int GLMessage::kFunctionFieldNumber; +const int GLMessage::kArgsFieldNumber; +const int GLMessage::kReturnValueFieldNumber; +const int GLMessage::kFbFieldNumber; +#endif // !_MSC_VER + +GLMessage::GLMessage() + : ::google::protobuf::MessageLite() { + SharedCtor(); +} + +void GLMessage::InitAsDefaultInstance() { + returnvalue_ = const_cast< ::android::gltrace::GLMessage_DataType*>(&::android::gltrace::GLMessage_DataType::default_instance()); + fb_ = const_cast< ::android::gltrace::GLMessage_FrameBuffer*>(&::android::gltrace::GLMessage_FrameBuffer::default_instance()); +} + +GLMessage::GLMessage(const GLMessage& from) + : ::google::protobuf::MessageLite() { + SharedCtor(); + MergeFrom(from); +} + +void GLMessage::SharedCtor() { + _cached_size_ = 0; + context_id_ = 0; + start_time_ = GOOGLE_LONGLONG(0); + duration_ = 0; + function_ = 3000; + returnvalue_ = NULL; + fb_ = NULL; + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +GLMessage::~GLMessage() { + SharedDtor(); +} + +void GLMessage::SharedDtor() { + if (this != default_instance_) { + delete returnvalue_; + delete fb_; + } +} + +void GLMessage::SetCachedSize(int size) const { + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); +} +const GLMessage& GLMessage::default_instance() { + if (default_instance_ == NULL) protobuf_AddDesc_gltrace_2eproto(); return *default_instance_; +} + +GLMessage* GLMessage::default_instance_ = NULL; + +GLMessage* GLMessage::New() const { + return new GLMessage; +} + +void GLMessage::Clear() { + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + context_id_ = 0; + start_time_ = GOOGLE_LONGLONG(0); + duration_ = 0; + function_ = 3000; + if (_has_bit(5)) { + if (returnvalue_ != NULL) returnvalue_->::android::gltrace::GLMessage_DataType::Clear(); + } + if (_has_bit(6)) { + if (fb_ != NULL) fb_->::android::gltrace::GLMessage_FrameBuffer::Clear(); + } + } + args_.Clear(); + ::memset(_has_bits_, 0, sizeof(_has_bits_)); +} + +bool GLMessage::MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input) { +#define DO_(EXPRESSION) if (!(EXPRESSION)) return false + ::google::protobuf::uint32 tag; + while ((tag = input->ReadTag()) != 0) { + switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) { + // required int32 context_id = 1; + case 1: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &context_id_))); + _set_bit(0); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(16)) goto parse_start_time; + break; + } + + // required int64 start_time = 2; + case 2: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_start_time: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>( + input, &start_time_))); + _set_bit(1); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(24)) goto parse_duration; + break; + } + + // required int32 duration = 3; + case 3: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_duration: + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_INT32>( + input, &duration_))); + _set_bit(2); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(32)) goto parse_function; + break; + } + + // required .android.gltrace.GLMessage.Function function = 4 [default = invalid]; + case 4: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) { + parse_function: + int value; + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>( + input, &value))); + if (::android::gltrace::GLMessage_Function_IsValid(value)) { + set_function(static_cast< ::android::gltrace::GLMessage_Function >(value)); + } + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(42)) goto parse_args; + break; + } + + // repeated .android.gltrace.GLMessage.DataType args = 5; + case 5: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_args: + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, add_args())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(42)) goto parse_args; + if (input->ExpectTag(50)) goto parse_returnValue; + break; + } + + // optional .android.gltrace.GLMessage.DataType returnValue = 6; + case 6: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_returnValue: + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, mutable_returnvalue())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectTag(58)) goto parse_fb; + break; + } + + // optional .android.gltrace.GLMessage.FrameBuffer fb = 7; + case 7: { + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) { + parse_fb: + DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual( + input, mutable_fb())); + } else { + goto handle_uninterpreted; + } + if (input->ExpectAtEnd()) return true; + break; + } + + default: { + handle_uninterpreted: + if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) == + ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) { + return true; + } + DO_(::google::protobuf::internal::WireFormatLite::SkipField(input, tag)); + break; + } + } + } + return true; +#undef DO_ +} + +void GLMessage::SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const { + // required int32 context_id = 1; + if (_has_bit(0)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(1, this->context_id(), output); + } + + // required int64 start_time = 2; + if (_has_bit(1)) { + ::google::protobuf::internal::WireFormatLite::WriteInt64(2, this->start_time(), output); + } + + // required int32 duration = 3; + if (_has_bit(2)) { + ::google::protobuf::internal::WireFormatLite::WriteInt32(3, this->duration(), output); + } + + // required .android.gltrace.GLMessage.Function function = 4 [default = invalid]; + if (_has_bit(3)) { + ::google::protobuf::internal::WireFormatLite::WriteEnum( + 4, this->function(), output); + } + + // repeated .android.gltrace.GLMessage.DataType args = 5; + for (int i = 0; i < this->args_size(); i++) { + ::google::protobuf::internal::WireFormatLite::WriteMessage( + 5, this->args(i), output); + } + + // optional .android.gltrace.GLMessage.DataType returnValue = 6; + if (_has_bit(5)) { + ::google::protobuf::internal::WireFormatLite::WriteMessage( + 6, this->returnvalue(), output); + } + + // optional .android.gltrace.GLMessage.FrameBuffer fb = 7; + if (_has_bit(6)) { + ::google::protobuf::internal::WireFormatLite::WriteMessage( + 7, this->fb(), output); + } + +} + +int GLMessage::ByteSize() const { + int total_size = 0; + + if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) { + // required int32 context_id = 1; + if (has_context_id()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->context_id()); + } + + // required int64 start_time = 2; + if (has_start_time()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int64Size( + this->start_time()); + } + + // required int32 duration = 3; + if (has_duration()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int32Size( + this->duration()); + } + + // required .android.gltrace.GLMessage.Function function = 4 [default = invalid]; + if (has_function()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::EnumSize(this->function()); + } + + // optional .android.gltrace.GLMessage.DataType returnValue = 6; + if (has_returnvalue()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( + this->returnvalue()); + } + + // optional .android.gltrace.GLMessage.FrameBuffer fb = 7; + if (has_fb()) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( + this->fb()); + } + + } + // repeated .android.gltrace.GLMessage.DataType args = 5; + total_size += 1 * this->args_size(); + for (int i = 0; i < this->args_size(); i++) { + total_size += + ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual( + this->args(i)); + } + + GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN(); + _cached_size_ = total_size; + GOOGLE_SAFE_CONCURRENT_WRITES_END(); + return total_size; +} + +void GLMessage::CheckTypeAndMergeFrom( + const ::google::protobuf::MessageLite& from) { + MergeFrom(*::google::protobuf::down_cast<const GLMessage*>(&from)); +} + +void GLMessage::MergeFrom(const GLMessage& from) { + GOOGLE_CHECK_NE(&from, this); + args_.MergeFrom(from.args_); + if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) { + if (from._has_bit(0)) { + set_context_id(from.context_id()); + } + if (from._has_bit(1)) { + set_start_time(from.start_time()); + } + if (from._has_bit(2)) { + set_duration(from.duration()); + } + if (from._has_bit(3)) { + set_function(from.function()); + } + if (from._has_bit(5)) { + mutable_returnvalue()->::android::gltrace::GLMessage_DataType::MergeFrom(from.returnvalue()); + } + if (from._has_bit(6)) { + mutable_fb()->::android::gltrace::GLMessage_FrameBuffer::MergeFrom(from.fb()); + } + } +} + +void GLMessage::CopyFrom(const GLMessage& from) { + if (&from == this) return; + Clear(); + MergeFrom(from); +} + +bool GLMessage::IsInitialized() const { + if ((_has_bits_[0] & 0x0000000f) != 0x0000000f) return false; + + for (int i = 0; i < args_size(); i++) { + if (!this->args(i).IsInitialized()) return false; + } + if (has_returnvalue()) { + if (!this->returnvalue().IsInitialized()) return false; + } + if (has_fb()) { + if (!this->fb().IsInitialized()) return false; + } + return true; +} + +void GLMessage::Swap(GLMessage* other) { + if (other != this) { + std::swap(context_id_, other->context_id_); + std::swap(start_time_, other->start_time_); + std::swap(duration_, other->duration_); + std::swap(function_, other->function_); + args_.Swap(&other->args_); + std::swap(returnvalue_, other->returnvalue_); + std::swap(fb_, other->fb_); + std::swap(_has_bits_[0], other->_has_bits_[0]); + std::swap(_cached_size_, other->_cached_size_); + } +} + +::std::string GLMessage::GetTypeName() const { + return "android.gltrace.GLMessage"; +} + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace gltrace +} // namespace android + +// @@protoc_insertion_point(global_scope) diff --git a/opengl/libs/GLES_trace/src/gltrace.pb.h b/opengl/libs/GLES_trace/src/gltrace.pb.h new file mode 100644 index 0000000..e3b8990 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace.pb.h @@ -0,0 +1,1871 @@ +// Generated by the protocol buffer compiler. DO NOT EDIT! +// source: gltrace.proto + +#ifndef PROTOBUF_gltrace_2eproto__INCLUDED +#define PROTOBUF_gltrace_2eproto__INCLUDED + +#include <string> + +#include <google/protobuf/stubs/common.h> + +#if GOOGLE_PROTOBUF_VERSION < 2003000 +#error This file was generated by a newer version of protoc which is +#error incompatible with your Protocol Buffer headers. Please update +#error your headers. +#endif +#if 2003000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION +#error This file was generated by an older version of protoc which is +#error incompatible with your Protocol Buffer headers. Please +#error regenerate this file with a newer version of protoc. +#endif + +#include <google/protobuf/generated_message_util.h> +#include <google/protobuf/repeated_field.h> +#include <google/protobuf/extension_set.h> +// @@protoc_insertion_point(includes) + +namespace android { +namespace gltrace { + +// Internal implementation detail -- do not call these. +void protobuf_AddDesc_gltrace_2eproto(); +void protobuf_AssignDesc_gltrace_2eproto(); +void protobuf_ShutdownFile_gltrace_2eproto(); + +class GLMessage; +class GLMessage_DataType; +class GLMessage_FrameBuffer; + +enum GLMessage_DataType_Type { + GLMessage_DataType_Type_VOID = 1, + GLMessage_DataType_Type_CHAR = 2, + GLMessage_DataType_Type_BYTE = 3, + GLMessage_DataType_Type_INT = 4, + GLMessage_DataType_Type_FLOAT = 5, + GLMessage_DataType_Type_BOOL = 6, + GLMessage_DataType_Type_ENUM = 7 +}; +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 int GLMessage_DataType_Type_Type_ARRAYSIZE = GLMessage_DataType_Type_Type_MAX + 1; + +enum GLMessage_Function { + GLMessage_Function_glActiveTexture = 0, + GLMessage_Function_glAlphaFunc = 1, + GLMessage_Function_glAlphaFuncx = 2, + GLMessage_Function_glAlphaFuncxOES = 3, + GLMessage_Function_glAttachShader = 4, + GLMessage_Function_glBeginPerfMonitorAMD = 5, + GLMessage_Function_glBindAttribLocation = 6, + GLMessage_Function_glBindBuffer = 7, + GLMessage_Function_glBindFramebuffer = 8, + GLMessage_Function_glBindFramebufferOES = 9, + GLMessage_Function_glBindRenderbuffer = 10, + GLMessage_Function_glBindRenderbufferOES = 11, + GLMessage_Function_glBindTexture = 12, + GLMessage_Function_glBindVertexArrayOES = 13, + GLMessage_Function_glBlendColor = 14, + GLMessage_Function_glBlendEquation = 15, + GLMessage_Function_glBlendEquationOES = 16, + GLMessage_Function_glBlendEquationSeparate = 17, + GLMessage_Function_glBlendEquationSeparateOES = 18, + GLMessage_Function_glBlendFunc = 19, + GLMessage_Function_glBlendFuncSeparate = 20, + GLMessage_Function_glBlendFuncSeparateOES = 21, + GLMessage_Function_glBufferData = 22, + GLMessage_Function_glBufferSubData = 23, + GLMessage_Function_glCheckFramebufferStatus = 24, + GLMessage_Function_glCheckFramebufferStatusOES = 25, + GLMessage_Function_glClearColor = 26, + GLMessage_Function_glClearColorx = 27, + GLMessage_Function_glClearColorxOES = 28, + GLMessage_Function_glClearDepthf = 29, + GLMessage_Function_glClearDepthfOES = 30, + GLMessage_Function_glClearDepthx = 31, + GLMessage_Function_glClearDepthxOES = 32, + GLMessage_Function_glClear = 33, + GLMessage_Function_glClearStencil = 34, + GLMessage_Function_glClientActiveTexture = 35, + GLMessage_Function_glClipPlanef = 36, + GLMessage_Function_glClipPlanefIMG = 37, + GLMessage_Function_glClipPlanefOES = 38, + GLMessage_Function_glClipPlanex = 39, + GLMessage_Function_glClipPlanexIMG = 40, + GLMessage_Function_glClipPlanexOES = 41, + GLMessage_Function_glColor4f = 42, + GLMessage_Function_glColor4ub = 43, + GLMessage_Function_glColor4x = 44, + GLMessage_Function_glColor4xOES = 45, + GLMessage_Function_glColorMask = 46, + GLMessage_Function_glColorPointer = 47, + GLMessage_Function_glCompileShader = 48, + GLMessage_Function_glCompressedTexImage2D = 49, + GLMessage_Function_glCompressedTexImage3DOES = 50, + GLMessage_Function_glCompressedTexSubImage2D = 51, + GLMessage_Function_glCompressedTexSubImage3DOES = 52, + GLMessage_Function_glCopyTexImage2D = 53, + GLMessage_Function_glCopyTexSubImage2D = 54, + GLMessage_Function_glCopyTexSubImage3DOES = 55, + GLMessage_Function_glCoverageMaskNV = 56, + GLMessage_Function_glCoverageOperationNV = 57, + GLMessage_Function_glCreateProgram = 58, + GLMessage_Function_glCreateShader = 59, + GLMessage_Function_glCullFace = 60, + GLMessage_Function_glCurrentPaletteMatrixOES = 61, + GLMessage_Function_glDeleteBuffers = 62, + GLMessage_Function_glDeleteFencesNV = 63, + GLMessage_Function_glDeleteFramebuffers = 64, + GLMessage_Function_glDeleteFramebuffersOES = 65, + GLMessage_Function_glDeletePerfMonitorsAMD = 66, + GLMessage_Function_glDeleteProgram = 67, + GLMessage_Function_glDeleteRenderbuffers = 68, + GLMessage_Function_glDeleteRenderbuffersOES = 69, + GLMessage_Function_glDeleteShader = 70, + GLMessage_Function_glDeleteTextures = 71, + GLMessage_Function_glDeleteVertexArraysOES = 72, + GLMessage_Function_glDepthFunc = 73, + GLMessage_Function_glDepthMask = 74, + GLMessage_Function_glDepthRangef = 75, + GLMessage_Function_glDepthRangefOES = 76, + GLMessage_Function_glDepthRangex = 77, + GLMessage_Function_glDepthRangexOES = 78, + GLMessage_Function_glDetachShader = 79, + GLMessage_Function_glDisableClientState = 80, + GLMessage_Function_glDisableDriverControlQCOM = 81, + GLMessage_Function_glDisable = 82, + GLMessage_Function_glDisableVertexAttribArray = 83, + GLMessage_Function_glDiscardFramebufferEXT = 84, + GLMessage_Function_glDrawArrays = 85, + GLMessage_Function_glDrawElements = 86, + GLMessage_Function_glDrawTexfOES = 87, + GLMessage_Function_glDrawTexfvOES = 88, + GLMessage_Function_glDrawTexiOES = 89, + GLMessage_Function_glDrawTexivOES = 90, + GLMessage_Function_glDrawTexsOES = 91, + GLMessage_Function_glDrawTexsvOES = 92, + GLMessage_Function_glDrawTexxOES = 93, + GLMessage_Function_glDrawTexxvOES = 94, + GLMessage_Function_glEGLImageTargetRenderbufferStorageOES = 95, + GLMessage_Function_glEGLImageTargetTexture2DOES = 96, + GLMessage_Function_glEnableClientState = 97, + GLMessage_Function_glEnableDriverControlQCOM = 98, + GLMessage_Function_glEnable = 99, + GLMessage_Function_glEnableVertexAttribArray = 100, + GLMessage_Function_glEndPerfMonitorAMD = 101, + GLMessage_Function_glEndTilingQCOM = 102, + GLMessage_Function_glExtGetBufferPointervQCOM = 103, + GLMessage_Function_glExtGetBuffersQCOM = 104, + GLMessage_Function_glExtGetFramebuffersQCOM = 105, + GLMessage_Function_glExtGetProgramBinarySourceQCOM = 106, + GLMessage_Function_glExtGetProgramsQCOM = 107, + GLMessage_Function_glExtGetRenderbuffersQCOM = 108, + GLMessage_Function_glExtGetShadersQCOM = 109, + GLMessage_Function_glExtGetTexLevelParameterivQCOM = 110, + GLMessage_Function_glExtGetTexSubImageQCOM = 111, + GLMessage_Function_glExtGetTexturesQCOM = 112, + GLMessage_Function_glExtIsProgramBinaryQCOM = 113, + GLMessage_Function_glExtTexObjectStateOverrideiQCOM = 114, + GLMessage_Function_glFinishFenceNV = 115, + GLMessage_Function_glFinish = 116, + GLMessage_Function_glFlush = 117, + GLMessage_Function_glFogf = 118, + GLMessage_Function_glFogfv = 119, + GLMessage_Function_glFogx = 120, + GLMessage_Function_glFogxOES = 121, + GLMessage_Function_glFogxv = 122, + GLMessage_Function_glFogxvOES = 123, + GLMessage_Function_glFramebufferRenderbuffer = 124, + GLMessage_Function_glFramebufferRenderbufferOES = 125, + GLMessage_Function_glFramebufferTexture2D = 126, + GLMessage_Function_glFramebufferTexture2DMultisampleIMG = 127, + GLMessage_Function_glFramebufferTexture2DOES = 128, + GLMessage_Function_glFramebufferTexture3DOES = 129, + GLMessage_Function_glFrontFace = 130, + GLMessage_Function_glFrustumf = 131, + GLMessage_Function_glFrustumfOES = 132, + GLMessage_Function_glFrustumx = 133, + GLMessage_Function_glFrustumxOES = 134, + GLMessage_Function_glGenBuffers = 135, + GLMessage_Function_glGenerateMipmap = 136, + GLMessage_Function_glGenerateMipmapOES = 137, + GLMessage_Function_glGenFencesNV = 138, + GLMessage_Function_glGenFramebuffers = 139, + GLMessage_Function_glGenFramebuffersOES = 140, + GLMessage_Function_glGenPerfMonitorsAMD = 141, + GLMessage_Function_glGenRenderbuffers = 142, + GLMessage_Function_glGenRenderbuffersOES = 143, + GLMessage_Function_glGenTextures = 144, + GLMessage_Function_glGenVertexArraysOES = 145, + GLMessage_Function_glGetActiveAttrib = 146, + GLMessage_Function_glGetActiveUniform = 147, + GLMessage_Function_glGetAttachedShaders = 148, + GLMessage_Function_glGetAttribLocation = 149, + GLMessage_Function_glGetBooleanv = 150, + GLMessage_Function_glGetBufferParameteriv = 151, + GLMessage_Function_glGetBufferPointervOES = 152, + GLMessage_Function_glGetClipPlanef = 153, + GLMessage_Function_glGetClipPlanefOES = 154, + GLMessage_Function_glGetClipPlanex = 155, + GLMessage_Function_glGetClipPlanexOES = 156, + GLMessage_Function_glGetDriverControlsQCOM = 157, + GLMessage_Function_glGetDriverControlStringQCOM = 158, + GLMessage_Function_glGetError = 159, + GLMessage_Function_glGetFenceivNV = 160, + GLMessage_Function_glGetFixedv = 161, + GLMessage_Function_glGetFixedvOES = 162, + GLMessage_Function_glGetFloatv = 163, + GLMessage_Function_glGetFramebufferAttachmentParameteriv = 164, + GLMessage_Function_glGetFramebufferAttachmentParameterivOES = 165, + GLMessage_Function_glGetIntegerv = 166, + GLMessage_Function_glGetLightfv = 167, + GLMessage_Function_glGetLightxv = 168, + GLMessage_Function_glGetLightxvOES = 169, + GLMessage_Function_glGetMaterialfv = 170, + GLMessage_Function_glGetMaterialxv = 171, + GLMessage_Function_glGetMaterialxvOES = 172, + GLMessage_Function_glGetPerfMonitorCounterDataAMD = 173, + GLMessage_Function_glGetPerfMonitorCounterInfoAMD = 174, + GLMessage_Function_glGetPerfMonitorCountersAMD = 175, + GLMessage_Function_glGetPerfMonitorCounterStringAMD = 176, + GLMessage_Function_glGetPerfMonitorGroupsAMD = 177, + GLMessage_Function_glGetPerfMonitorGroupStringAMD = 178, + GLMessage_Function_glGetPointerv = 179, + GLMessage_Function_glGetProgramBinaryOES = 180, + GLMessage_Function_glGetProgramInfoLog = 181, + GLMessage_Function_glGetProgramiv = 182, + GLMessage_Function_glGetRenderbufferParameteriv = 183, + GLMessage_Function_glGetRenderbufferParameterivOES = 184, + GLMessage_Function_glGetShaderInfoLog = 185, + GLMessage_Function_glGetShaderiv = 186, + GLMessage_Function_glGetShaderPrecisionFormat = 187, + GLMessage_Function_glGetShaderSource = 188, + GLMessage_Function_glGetString = 189, + GLMessage_Function_glGetTexEnvfv = 190, + GLMessage_Function_glGetTexEnviv = 191, + GLMessage_Function_glGetTexEnvxv = 192, + GLMessage_Function_glGetTexEnvxvOES = 193, + GLMessage_Function_glGetTexGenfvOES = 194, + GLMessage_Function_glGetTexGenivOES = 195, + GLMessage_Function_glGetTexGenxvOES = 196, + GLMessage_Function_glGetTexParameterfv = 197, + GLMessage_Function_glGetTexParameteriv = 198, + GLMessage_Function_glGetTexParameterxv = 199, + GLMessage_Function_glGetTexParameterxvOES = 200, + GLMessage_Function_glGetUniformfv = 201, + GLMessage_Function_glGetUniformiv = 202, + GLMessage_Function_glGetUniformLocation = 203, + GLMessage_Function_glGetVertexAttribfv = 204, + GLMessage_Function_glGetVertexAttribiv = 205, + GLMessage_Function_glGetVertexAttribPointerv = 206, + GLMessage_Function_glHint = 207, + GLMessage_Function_glIsBuffer = 208, + GLMessage_Function_glIsEnabled = 209, + GLMessage_Function_glIsFenceNV = 210, + GLMessage_Function_glIsFramebuffer = 211, + GLMessage_Function_glIsFramebufferOES = 212, + GLMessage_Function_glIsProgram = 213, + GLMessage_Function_glIsRenderbuffer = 214, + GLMessage_Function_glIsRenderbufferOES = 215, + GLMessage_Function_glIsShader = 216, + GLMessage_Function_glIsTexture = 217, + GLMessage_Function_glIsVertexArrayOES = 218, + GLMessage_Function_glLightf = 219, + GLMessage_Function_glLightfv = 220, + GLMessage_Function_glLightModelf = 221, + GLMessage_Function_glLightModelfv = 222, + GLMessage_Function_glLightModelx = 223, + GLMessage_Function_glLightModelxOES = 224, + GLMessage_Function_glLightModelxv = 225, + GLMessage_Function_glLightModelxvOES = 226, + GLMessage_Function_glLightx = 227, + GLMessage_Function_glLightxOES = 228, + GLMessage_Function_glLightxv = 229, + GLMessage_Function_glLightxvOES = 230, + GLMessage_Function_glLineWidth = 231, + GLMessage_Function_glLineWidthx = 232, + GLMessage_Function_glLineWidthxOES = 233, + GLMessage_Function_glLinkProgram = 234, + GLMessage_Function_glLoadIdentity = 235, + GLMessage_Function_glLoadMatrixf = 236, + GLMessage_Function_glLoadMatrixx = 237, + GLMessage_Function_glLoadMatrixxOES = 238, + GLMessage_Function_glLoadPaletteFromModelViewMatrixOES = 239, + GLMessage_Function_glLogicOp = 240, + GLMessage_Function_glMapBufferOES = 241, + GLMessage_Function_glMaterialf = 242, + GLMessage_Function_glMaterialfv = 243, + GLMessage_Function_glMaterialx = 244, + GLMessage_Function_glMaterialxOES = 245, + GLMessage_Function_glMaterialxv = 246, + GLMessage_Function_glMaterialxvOES = 247, + GLMessage_Function_glMatrixIndexPointerOES = 248, + GLMessage_Function_glMatrixMode = 249, + GLMessage_Function_glMultiDrawArraysEXT = 250, + GLMessage_Function_glMultiDrawElementsEXT = 251, + GLMessage_Function_glMultiTexCoord4f = 252, + GLMessage_Function_glMultiTexCoord4x = 253, + GLMessage_Function_glMultiTexCoord4xOES = 254, + GLMessage_Function_glMultMatrixf = 255, + GLMessage_Function_glMultMatrixx = 256, + GLMessage_Function_glMultMatrixxOES = 257, + GLMessage_Function_glNormal3f = 258, + GLMessage_Function_glNormal3x = 259, + GLMessage_Function_glNormal3xOES = 260, + GLMessage_Function_glNormalPointer = 261, + GLMessage_Function_glOrthof = 262, + GLMessage_Function_glOrthofOES = 263, + GLMessage_Function_glOrthox = 264, + GLMessage_Function_glOrthoxOES = 265, + GLMessage_Function_glPixelStorei = 266, + GLMessage_Function_glPointParameterf = 267, + GLMessage_Function_glPointParameterfv = 268, + GLMessage_Function_glPointParameterx = 269, + GLMessage_Function_glPointParameterxOES = 270, + GLMessage_Function_glPointParameterxv = 271, + GLMessage_Function_glPointParameterxvOES = 272, + GLMessage_Function_glPointSize = 273, + GLMessage_Function_glPointSizePointerOES = 274, + GLMessage_Function_glPointSizex = 275, + GLMessage_Function_glPointSizexOES = 276, + GLMessage_Function_glPolygonOffset = 277, + GLMessage_Function_glPolygonOffsetx = 278, + GLMessage_Function_glPolygonOffsetxOES = 279, + GLMessage_Function_glPopMatrix = 280, + GLMessage_Function_glProgramBinaryOES = 281, + GLMessage_Function_glPushMatrix = 282, + GLMessage_Function_glQueryMatrixxOES = 283, + GLMessage_Function_glReadPixels = 284, + GLMessage_Function_glReleaseShaderCompiler = 285, + GLMessage_Function_glRenderbufferStorage = 286, + GLMessage_Function_glRenderbufferStorageMultisampleIMG = 287, + GLMessage_Function_glRenderbufferStorageOES = 288, + GLMessage_Function_glRotatef = 289, + GLMessage_Function_glRotatex = 290, + GLMessage_Function_glRotatexOES = 291, + GLMessage_Function_glSampleCoverage = 292, + GLMessage_Function_glSampleCoveragex = 293, + GLMessage_Function_glSampleCoveragexOES = 294, + GLMessage_Function_glScalef = 295, + GLMessage_Function_glScalex = 296, + GLMessage_Function_glScalexOES = 297, + GLMessage_Function_glScissor = 298, + GLMessage_Function_glSelectPerfMonitorCountersAMD = 299, + GLMessage_Function_glSetFenceNV = 300, + GLMessage_Function_glShadeModel = 301, + GLMessage_Function_glShaderBinary = 302, + GLMessage_Function_glShaderSource = 303, + GLMessage_Function_glStartTilingQCOM = 304, + GLMessage_Function_glStencilFunc = 305, + GLMessage_Function_glStencilFuncSeparate = 306, + GLMessage_Function_glStencilMask = 307, + GLMessage_Function_glStencilMaskSeparate = 308, + GLMessage_Function_glStencilOp = 309, + GLMessage_Function_glStencilOpSeparate = 310, + GLMessage_Function_glTestFenceNV = 311, + GLMessage_Function_glTexCoordPointer = 312, + GLMessage_Function_glTexEnvf = 313, + GLMessage_Function_glTexEnvfv = 314, + GLMessage_Function_glTexEnvi = 315, + GLMessage_Function_glTexEnviv = 316, + GLMessage_Function_glTexEnvx = 317, + GLMessage_Function_glTexEnvxOES = 318, + GLMessage_Function_glTexEnvxv = 319, + GLMessage_Function_glTexEnvxvOES = 320, + GLMessage_Function_glTexGenfOES = 321, + GLMessage_Function_glTexGenfvOES = 322, + GLMessage_Function_glTexGeniOES = 323, + GLMessage_Function_glTexGenivOES = 324, + GLMessage_Function_glTexGenxOES = 325, + GLMessage_Function_glTexGenxvOES = 326, + GLMessage_Function_glTexImage2D = 327, + GLMessage_Function_glTexImage3DOES = 328, + GLMessage_Function_glTexParameterf = 329, + GLMessage_Function_glTexParameterfv = 330, + GLMessage_Function_glTexParameteri = 331, + GLMessage_Function_glTexParameteriv = 332, + GLMessage_Function_glTexParameterx = 333, + GLMessage_Function_glTexParameterxOES = 334, + GLMessage_Function_glTexParameterxv = 335, + GLMessage_Function_glTexParameterxvOES = 336, + GLMessage_Function_glTexSubImage2D = 337, + GLMessage_Function_glTexSubImage3DOES = 338, + GLMessage_Function_glTranslatef = 339, + GLMessage_Function_glTranslatex = 340, + GLMessage_Function_glTranslatexOES = 341, + GLMessage_Function_glUniform1f = 342, + GLMessage_Function_glUniform1fv = 343, + GLMessage_Function_glUniform1i = 344, + GLMessage_Function_glUniform1iv = 345, + GLMessage_Function_glUniform2f = 346, + GLMessage_Function_glUniform2fv = 347, + GLMessage_Function_glUniform2i = 348, + GLMessage_Function_glUniform2iv = 349, + GLMessage_Function_glUniform3f = 350, + GLMessage_Function_glUniform3fv = 351, + GLMessage_Function_glUniform3i = 352, + GLMessage_Function_glUniform3iv = 353, + GLMessage_Function_glUniform4f = 354, + GLMessage_Function_glUniform4fv = 355, + GLMessage_Function_glUniform4i = 356, + GLMessage_Function_glUniform4iv = 357, + GLMessage_Function_glUniformMatrix2fv = 358, + GLMessage_Function_glUniformMatrix3fv = 359, + GLMessage_Function_glUniformMatrix4fv = 360, + GLMessage_Function_glUnmapBufferOES = 361, + GLMessage_Function_glUseProgram = 362, + GLMessage_Function_glValidateProgram = 363, + GLMessage_Function_glVertexAttrib1f = 364, + GLMessage_Function_glVertexAttrib1fv = 365, + GLMessage_Function_glVertexAttrib2f = 366, + GLMessage_Function_glVertexAttrib2fv = 367, + GLMessage_Function_glVertexAttrib3f = 368, + GLMessage_Function_glVertexAttrib3fv = 369, + GLMessage_Function_glVertexAttrib4f = 370, + GLMessage_Function_glVertexAttrib4fv = 371, + GLMessage_Function_glVertexAttribPointer = 372, + GLMessage_Function_glVertexPointer = 373, + GLMessage_Function_glViewport = 374, + GLMessage_Function_glWeightPointerOES = 375, + GLMessage_Function_glActiveShaderProgramEXT = 502, + GLMessage_Function_glAlphaFuncQCOM = 503, + GLMessage_Function_glBeginQueryEXT = 504, + GLMessage_Function_glBindProgramPipelineEXT = 505, + GLMessage_Function_glBlitFramebufferANGLE = 506, + GLMessage_Function_glCreateShaderProgramvEXT = 507, + GLMessage_Function_glDeleteProgramPipelinesEXT = 508, + GLMessage_Function_glDeleteQueriesEXT = 509, + GLMessage_Function_glDrawBuffersNV = 510, + GLMessage_Function_glEndQueryEXT = 511, + GLMessage_Function_glFramebufferTexture2DMultisampleEXT = 512, + GLMessage_Function_glGenProgramPipelinesEXT = 513, + GLMessage_Function_glGenQueriesEXT = 514, + GLMessage_Function_glGetGraphicsResetStatusEXT = 515, + GLMessage_Function_glGetObjectLabelEXT = 516, + GLMessage_Function_glGetProgramPipelineInfoLogEXT = 517, + GLMessage_Function_glGetProgramPipelineivEXT = 518, + GLMessage_Function_glGetQueryObjectuivEXT = 519, + GLMessage_Function_glGetQueryivEXT = 520, + GLMessage_Function_glGetnUniformfvEXT = 521, + GLMessage_Function_glGetnUniformivEXT = 521, + GLMessage_Function_glInsertEventMarkerEXT = 522, + GLMessage_Function_glIsProgramPipelineEXT = 523, + GLMessage_Function_glIsQueryEXT = 524, + GLMessage_Function_glLabelObjectEXT = 525, + GLMessage_Function_glPopGroupMarkerEXT = 526, + GLMessage_Function_glProgramParameteriEXT = 527, + GLMessage_Function_glProgramUniform1fEXT = 528, + GLMessage_Function_glProgramUniform1fvEXT = 529, + GLMessage_Function_glProgramUniform1iEXT = 530, + GLMessage_Function_glProgramUniform1ivEXT = 531, + GLMessage_Function_glProgramUniform2fEXT = 532, + GLMessage_Function_glProgramUniform2fvEXT = 533, + GLMessage_Function_glProgramUniform2iEXT = 534, + GLMessage_Function_glProgramUniform2ivEXT = 535, + GLMessage_Function_glProgramUniform3fEXT = 536, + GLMessage_Function_glProgramUniform3fvEXT = 537, + GLMessage_Function_glProgramUniform3iEXT = 538, + GLMessage_Function_glProgramUniform3ivEXT = 539, + GLMessage_Function_glProgramUniform4fEXT = 540, + GLMessage_Function_glProgramUniform4fvEXT = 541, + GLMessage_Function_glProgramUniform4iEXT = 542, + GLMessage_Function_glProgramUniform4ivEXT = 543, + GLMessage_Function_glProgramUniformMatrix2fvEXT = 544, + GLMessage_Function_glProgramUniformMatrix3fvEXT = 545, + GLMessage_Function_glProgramUniformMatrix4fvEXT = 546, + GLMessage_Function_glPushGroupMarkerEXT = 547, + GLMessage_Function_glReadBufferNV = 548, + GLMessage_Function_glReadnPixelsEXT = 549, + GLMessage_Function_glRenderbufferStorageMultisampleANGLE = 550, + GLMessage_Function_glRenderbufferStorageMultisampleAPPLE = 551, + GLMessage_Function_glRenderbufferStorageMultisampleEXT = 552, + GLMessage_Function_glResolveMultisampleFramebufferAPPLE = 553, + GLMessage_Function_glTexStorage1DEXT = 554, + GLMessage_Function_glTexStorage2DEXT = 555, + GLMessage_Function_glTexStorage3DEXT = 556, + GLMessage_Function_glTextureStorage1DEXT = 557, + GLMessage_Function_glTextureStorage2DEXT = 558, + GLMessage_Function_glTextureStorage3DEXT = 559, + GLMessage_Function_glUseProgramStagesEXT = 560, + GLMessage_Function_glValidateProgramPipelineEXT = 561, + GLMessage_Function_eglGetDisplay = 2000, + GLMessage_Function_eglInitialize = 2001, + GLMessage_Function_eglTerminate = 2002, + GLMessage_Function_eglGetConfigs = 2003, + GLMessage_Function_eglChooseConfig = 2004, + GLMessage_Function_eglGetConfigAttrib = 2005, + GLMessage_Function_eglCreateWindowSurface = 2006, + GLMessage_Function_eglCreatePixmapSurface = 2007, + GLMessage_Function_eglCreatePbufferSurface = 2008, + GLMessage_Function_eglDestroySurface = 2009, + GLMessage_Function_eglQuerySurface = 2010, + GLMessage_Function_eglCreateContext = 2011, + GLMessage_Function_eglDestroyContext = 2012, + GLMessage_Function_eglMakeCurrent = 2013, + GLMessage_Function_eglGetCurrentContext = 2014, + GLMessage_Function_eglGetCurrentSurface = 2015, + GLMessage_Function_eglGetCurrentDisplay = 2016, + GLMessage_Function_eglQueryContext = 2017, + GLMessage_Function_eglWaitGL = 2018, + GLMessage_Function_eglWaitNative = 2019, + GLMessage_Function_eglSwapBuffers = 2020, + GLMessage_Function_eglCopyBuffers = 2021, + GLMessage_Function_eglGetError = 2022, + GLMessage_Function_eglQueryString = 2023, + GLMessage_Function_eglGetProcAddress = 2024, + GLMessage_Function_eglSurfaceAttrib = 2025, + GLMessage_Function_eglBindTexImage = 2026, + GLMessage_Function_eglReleaseTexImage = 2027, + GLMessage_Function_eglSwapInterval = 2028, + GLMessage_Function_eglBindAPI = 2029, + GLMessage_Function_eglQueryAPI = 2030, + GLMessage_Function_eglWaitClient = 2031, + GLMessage_Function_eglReleaseThread = 2032, + GLMessage_Function_eglCreatePbufferFromClientBuffer = 2033, + GLMessage_Function_eglLockSurfaceKHR = 2034, + GLMessage_Function_eglUnlockSurfaceKHR = 2035, + GLMessage_Function_eglCreateImageKHR = 2036, + GLMessage_Function_eglDestroyImageKHR = 2037, + GLMessage_Function_eglCreateSyncKHR = 2038, + GLMessage_Function_eglDestroySyncKHR = 2039, + GLMessage_Function_eglClientWaitSyncKHR = 2040, + GLMessage_Function_eglGetSyncAttribKHR = 2041, + GLMessage_Function_eglSetSwapRectangleANDROID = 2042, + GLMessage_Function_eglGetRenderBufferANDROID = 2043, + GLMessage_Function_eglGetSystemTimeFrequencyNV = 2044, + GLMessage_Function_eglGetSystemTimeNV = 2045, + GLMessage_Function_invalid = 3000, + GLMessage_Function_frameBufferContents = 3001 +}; +bool GLMessage_Function_IsValid(int value); +const GLMessage_Function GLMessage_Function_Function_MIN = GLMessage_Function_glActiveTexture; +const GLMessage_Function GLMessage_Function_Function_MAX = GLMessage_Function_frameBufferContents; +const int GLMessage_Function_Function_ARRAYSIZE = GLMessage_Function_Function_MAX + 1; + +// =================================================================== + +class GLMessage_DataType : public ::google::protobuf::MessageLite { + public: + GLMessage_DataType(); + virtual ~GLMessage_DataType(); + + GLMessage_DataType(const GLMessage_DataType& from); + + inline GLMessage_DataType& operator=(const GLMessage_DataType& from) { + CopyFrom(from); + return *this; + } + + static const GLMessage_DataType& default_instance(); + + void Swap(GLMessage_DataType* other); + + // implements Message ---------------------------------------------- + + GLMessage_DataType* New() const; + void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from); + void CopyFrom(const GLMessage_DataType& from); + void MergeFrom(const GLMessage_DataType& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + int GetCachedSize() const { return _cached_size_; } + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; + public: + + ::std::string GetTypeName() const; + + // nested types ---------------------------------------------------- + + typedef GLMessage_DataType_Type Type; + static const Type VOID = GLMessage_DataType_Type_VOID; + static const Type CHAR = GLMessage_DataType_Type_CHAR; + static const Type BYTE = GLMessage_DataType_Type_BYTE; + static const Type INT = GLMessage_DataType_Type_INT; + 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 inline bool Type_IsValid(int value) { + return GLMessage_DataType_Type_IsValid(value); + } + static const Type Type_MIN = + GLMessage_DataType_Type_Type_MIN; + static const Type Type_MAX = + GLMessage_DataType_Type_Type_MAX; + static const int Type_ARRAYSIZE = + GLMessage_DataType_Type_Type_ARRAYSIZE; + + // accessors ------------------------------------------------------- + + // required .android.gltrace.GLMessage.DataType.Type type = 1 [default = VOID]; + inline bool has_type() const; + inline void clear_type(); + static const int kTypeFieldNumber = 1; + inline ::android::gltrace::GLMessage_DataType_Type type() const; + inline void set_type(::android::gltrace::GLMessage_DataType_Type value); + + // required bool isArray = 2 [default = false]; + inline bool has_isarray() const; + inline void clear_isarray(); + static const int kIsArrayFieldNumber = 2; + inline bool isarray() const; + inline void set_isarray(bool value); + + // repeated int32 intValue = 3; + inline int intvalue_size() const; + inline void clear_intvalue(); + static const int kIntValueFieldNumber = 3; + inline ::google::protobuf::int32 intvalue(int index) const; + inline void set_intvalue(int index, ::google::protobuf::int32 value); + inline void add_intvalue(::google::protobuf::int32 value); + inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >& + intvalue() const; + inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >* + mutable_intvalue(); + + // repeated float floatValue = 4; + inline int floatvalue_size() const; + inline void clear_floatvalue(); + static const int kFloatValueFieldNumber = 4; + inline float floatvalue(int index) const; + inline void set_floatvalue(int index, float value); + inline void add_floatvalue(float value); + inline const ::google::protobuf::RepeatedField< float >& + floatvalue() const; + inline ::google::protobuf::RepeatedField< float >* + mutable_floatvalue(); + + // repeated bytes charValue = 5; + inline int charvalue_size() const; + inline void clear_charvalue(); + static const int kCharValueFieldNumber = 5; + inline const ::std::string& charvalue(int index) const; + inline ::std::string* mutable_charvalue(int index); + inline void set_charvalue(int index, const ::std::string& value); + inline void set_charvalue(int index, const char* value); + inline void set_charvalue(int index, const void* value, size_t size); + inline ::std::string* add_charvalue(); + inline void add_charvalue(const ::std::string& value); + inline void add_charvalue(const char* value); + inline void add_charvalue(const void* value, size_t size); + inline const ::google::protobuf::RepeatedPtrField< ::std::string>& charvalue() const; + inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_charvalue(); + + // repeated bytes rawBytes = 6; + inline int rawbytes_size() const; + inline void clear_rawbytes(); + static const int kRawBytesFieldNumber = 6; + inline const ::std::string& rawbytes(int index) const; + inline ::std::string* mutable_rawbytes(int index); + inline void set_rawbytes(int index, const ::std::string& value); + inline void set_rawbytes(int index, const char* value); + inline void set_rawbytes(int index, const void* value, size_t size); + inline ::std::string* add_rawbytes(); + inline void add_rawbytes(const ::std::string& value); + inline void add_rawbytes(const char* value); + inline void add_rawbytes(const void* value, size_t size); + inline const ::google::protobuf::RepeatedPtrField< ::std::string>& rawbytes() const; + inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_rawbytes(); + + // repeated bool boolValue = 7; + inline int boolvalue_size() const; + inline void clear_boolvalue(); + static const int kBoolValueFieldNumber = 7; + inline bool boolvalue(int index) const; + inline void set_boolvalue(int index, bool value); + inline void add_boolvalue(bool value); + inline const ::google::protobuf::RepeatedField< bool >& + boolvalue() const; + inline ::google::protobuf::RepeatedField< bool >* + mutable_boolvalue(); + + // @@protoc_insertion_point(class_scope:android.gltrace.GLMessage.DataType) + private: + mutable int _cached_size_; + + int type_; + bool isarray_; + ::google::protobuf::RepeatedField< ::google::protobuf::int32 > intvalue_; + ::google::protobuf::RepeatedField< float > floatvalue_; + ::google::protobuf::RepeatedPtrField< ::std::string> charvalue_; + ::google::protobuf::RepeatedPtrField< ::std::string> rawbytes_; + ::google::protobuf::RepeatedField< bool > boolvalue_; + 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]; + + // WHY DOES & HAVE LOWER PRECEDENCE THAN != !? + inline bool _has_bit(int index) const { + return (_has_bits_[index / 32] & (1u << (index % 32))) != 0; + } + inline void _set_bit(int index) { + _has_bits_[index / 32] |= (1u << (index % 32)); + } + inline void _clear_bit(int index) { + _has_bits_[index / 32] &= ~(1u << (index % 32)); + } + + void InitAsDefaultInstance(); + static GLMessage_DataType* default_instance_; +}; +// ------------------------------------------------------------------- + +class GLMessage_FrameBuffer : public ::google::protobuf::MessageLite { + public: + GLMessage_FrameBuffer(); + virtual ~GLMessage_FrameBuffer(); + + GLMessage_FrameBuffer(const GLMessage_FrameBuffer& from); + + inline GLMessage_FrameBuffer& operator=(const GLMessage_FrameBuffer& from) { + CopyFrom(from); + return *this; + } + + static const GLMessage_FrameBuffer& default_instance(); + + void Swap(GLMessage_FrameBuffer* other); + + // implements Message ---------------------------------------------- + + GLMessage_FrameBuffer* New() const; + void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from); + void CopyFrom(const GLMessage_FrameBuffer& from); + void MergeFrom(const GLMessage_FrameBuffer& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + int GetCachedSize() const { return _cached_size_; } + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; + public: + + ::std::string GetTypeName() const; + + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + + // required int32 width = 1; + inline bool has_width() const; + inline void clear_width(); + static const int kWidthFieldNumber = 1; + inline ::google::protobuf::int32 width() const; + inline void set_width(::google::protobuf::int32 value); + + // required int32 height = 2; + inline bool has_height() const; + inline void clear_height(); + static const int kHeightFieldNumber = 2; + inline ::google::protobuf::int32 height() const; + inline void set_height(::google::protobuf::int32 value); + + // repeated bytes contents = 3; + inline int contents_size() const; + inline void clear_contents(); + static const int kContentsFieldNumber = 3; + inline const ::std::string& contents(int index) const; + inline ::std::string* mutable_contents(int index); + inline void set_contents(int index, const ::std::string& value); + inline void set_contents(int index, const char* value); + inline void set_contents(int index, const void* value, size_t size); + inline ::std::string* add_contents(); + inline void add_contents(const ::std::string& value); + inline void add_contents(const char* value); + inline void add_contents(const void* value, size_t size); + inline const ::google::protobuf::RepeatedPtrField< ::std::string>& contents() const; + inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_contents(); + + // @@protoc_insertion_point(class_scope:android.gltrace.GLMessage.FrameBuffer) + private: + mutable int _cached_size_; + + ::google::protobuf::int32 width_; + ::google::protobuf::int32 height_; + ::google::protobuf::RepeatedPtrField< ::std::string> contents_; + friend void protobuf_AddDesc_gltrace_2eproto(); + friend void protobuf_AssignDesc_gltrace_2eproto(); + friend void protobuf_ShutdownFile_gltrace_2eproto(); + + ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32]; + + // WHY DOES & HAVE LOWER PRECEDENCE THAN != !? + inline bool _has_bit(int index) const { + return (_has_bits_[index / 32] & (1u << (index % 32))) != 0; + } + inline void _set_bit(int index) { + _has_bits_[index / 32] |= (1u << (index % 32)); + } + inline void _clear_bit(int index) { + _has_bits_[index / 32] &= ~(1u << (index % 32)); + } + + void InitAsDefaultInstance(); + static GLMessage_FrameBuffer* default_instance_; +}; +// ------------------------------------------------------------------- + +class GLMessage : public ::google::protobuf::MessageLite { + public: + GLMessage(); + virtual ~GLMessage(); + + GLMessage(const GLMessage& from); + + inline GLMessage& operator=(const GLMessage& from) { + CopyFrom(from); + return *this; + } + + static const GLMessage& default_instance(); + + void Swap(GLMessage* other); + + // implements Message ---------------------------------------------- + + GLMessage* New() const; + void CheckTypeAndMergeFrom(const ::google::protobuf::MessageLite& from); + void CopyFrom(const GLMessage& from); + void MergeFrom(const GLMessage& from); + void Clear(); + bool IsInitialized() const; + + int ByteSize() const; + bool MergePartialFromCodedStream( + ::google::protobuf::io::CodedInputStream* input); + void SerializeWithCachedSizes( + ::google::protobuf::io::CodedOutputStream* output) const; + int GetCachedSize() const { return _cached_size_; } + private: + void SharedCtor(); + void SharedDtor(); + void SetCachedSize(int size) const; + public: + + ::std::string GetTypeName() const; + + // nested types ---------------------------------------------------- + + typedef GLMessage_DataType DataType; + typedef GLMessage_FrameBuffer FrameBuffer; + + typedef GLMessage_Function Function; + static const Function glActiveTexture = GLMessage_Function_glActiveTexture; + static const Function glAlphaFunc = GLMessage_Function_glAlphaFunc; + static const Function glAlphaFuncx = GLMessage_Function_glAlphaFuncx; + static const Function glAlphaFuncxOES = GLMessage_Function_glAlphaFuncxOES; + static const Function glAttachShader = GLMessage_Function_glAttachShader; + static const Function glBeginPerfMonitorAMD = GLMessage_Function_glBeginPerfMonitorAMD; + static const Function glBindAttribLocation = GLMessage_Function_glBindAttribLocation; + static const Function glBindBuffer = GLMessage_Function_glBindBuffer; + static const Function glBindFramebuffer = GLMessage_Function_glBindFramebuffer; + static const Function glBindFramebufferOES = GLMessage_Function_glBindFramebufferOES; + static const Function glBindRenderbuffer = GLMessage_Function_glBindRenderbuffer; + static const Function glBindRenderbufferOES = GLMessage_Function_glBindRenderbufferOES; + static const Function glBindTexture = GLMessage_Function_glBindTexture; + static const Function glBindVertexArrayOES = GLMessage_Function_glBindVertexArrayOES; + static const Function glBlendColor = GLMessage_Function_glBlendColor; + static const Function glBlendEquation = GLMessage_Function_glBlendEquation; + static const Function glBlendEquationOES = GLMessage_Function_glBlendEquationOES; + static const Function glBlendEquationSeparate = GLMessage_Function_glBlendEquationSeparate; + static const Function glBlendEquationSeparateOES = GLMessage_Function_glBlendEquationSeparateOES; + static const Function glBlendFunc = GLMessage_Function_glBlendFunc; + static const Function glBlendFuncSeparate = GLMessage_Function_glBlendFuncSeparate; + static const Function glBlendFuncSeparateOES = GLMessage_Function_glBlendFuncSeparateOES; + static const Function glBufferData = GLMessage_Function_glBufferData; + static const Function glBufferSubData = GLMessage_Function_glBufferSubData; + static const Function glCheckFramebufferStatus = GLMessage_Function_glCheckFramebufferStatus; + static const Function glCheckFramebufferStatusOES = GLMessage_Function_glCheckFramebufferStatusOES; + static const Function glClearColor = GLMessage_Function_glClearColor; + static const Function glClearColorx = GLMessage_Function_glClearColorx; + static const Function glClearColorxOES = GLMessage_Function_glClearColorxOES; + static const Function glClearDepthf = GLMessage_Function_glClearDepthf; + static const Function glClearDepthfOES = GLMessage_Function_glClearDepthfOES; + static const Function glClearDepthx = GLMessage_Function_glClearDepthx; + static const Function glClearDepthxOES = GLMessage_Function_glClearDepthxOES; + static const Function glClear = GLMessage_Function_glClear; + static const Function glClearStencil = GLMessage_Function_glClearStencil; + static const Function glClientActiveTexture = GLMessage_Function_glClientActiveTexture; + static const Function glClipPlanef = GLMessage_Function_glClipPlanef; + static const Function glClipPlanefIMG = GLMessage_Function_glClipPlanefIMG; + static const Function glClipPlanefOES = GLMessage_Function_glClipPlanefOES; + static const Function glClipPlanex = GLMessage_Function_glClipPlanex; + static const Function glClipPlanexIMG = GLMessage_Function_glClipPlanexIMG; + static const Function glClipPlanexOES = GLMessage_Function_glClipPlanexOES; + static const Function glColor4f = GLMessage_Function_glColor4f; + static const Function glColor4ub = GLMessage_Function_glColor4ub; + static const Function glColor4x = GLMessage_Function_glColor4x; + static const Function glColor4xOES = GLMessage_Function_glColor4xOES; + static const Function glColorMask = GLMessage_Function_glColorMask; + static const Function glColorPointer = GLMessage_Function_glColorPointer; + static const Function glCompileShader = GLMessage_Function_glCompileShader; + static const Function glCompressedTexImage2D = GLMessage_Function_glCompressedTexImage2D; + static const Function glCompressedTexImage3DOES = GLMessage_Function_glCompressedTexImage3DOES; + static const Function glCompressedTexSubImage2D = GLMessage_Function_glCompressedTexSubImage2D; + static const Function glCompressedTexSubImage3DOES = GLMessage_Function_glCompressedTexSubImage3DOES; + static const Function glCopyTexImage2D = GLMessage_Function_glCopyTexImage2D; + static const Function glCopyTexSubImage2D = GLMessage_Function_glCopyTexSubImage2D; + static const Function glCopyTexSubImage3DOES = GLMessage_Function_glCopyTexSubImage3DOES; + static const Function glCoverageMaskNV = GLMessage_Function_glCoverageMaskNV; + static const Function glCoverageOperationNV = GLMessage_Function_glCoverageOperationNV; + static const Function glCreateProgram = GLMessage_Function_glCreateProgram; + static const Function glCreateShader = GLMessage_Function_glCreateShader; + static const Function glCullFace = GLMessage_Function_glCullFace; + static const Function glCurrentPaletteMatrixOES = GLMessage_Function_glCurrentPaletteMatrixOES; + static const Function glDeleteBuffers = GLMessage_Function_glDeleteBuffers; + static const Function glDeleteFencesNV = GLMessage_Function_glDeleteFencesNV; + static const Function glDeleteFramebuffers = GLMessage_Function_glDeleteFramebuffers; + static const Function glDeleteFramebuffersOES = GLMessage_Function_glDeleteFramebuffersOES; + static const Function glDeletePerfMonitorsAMD = GLMessage_Function_glDeletePerfMonitorsAMD; + static const Function glDeleteProgram = GLMessage_Function_glDeleteProgram; + static const Function glDeleteRenderbuffers = GLMessage_Function_glDeleteRenderbuffers; + static const Function glDeleteRenderbuffersOES = GLMessage_Function_glDeleteRenderbuffersOES; + static const Function glDeleteShader = GLMessage_Function_glDeleteShader; + static const Function glDeleteTextures = GLMessage_Function_glDeleteTextures; + static const Function glDeleteVertexArraysOES = GLMessage_Function_glDeleteVertexArraysOES; + static const Function glDepthFunc = GLMessage_Function_glDepthFunc; + static const Function glDepthMask = GLMessage_Function_glDepthMask; + static const Function glDepthRangef = GLMessage_Function_glDepthRangef; + static const Function glDepthRangefOES = GLMessage_Function_glDepthRangefOES; + static const Function glDepthRangex = GLMessage_Function_glDepthRangex; + static const Function glDepthRangexOES = GLMessage_Function_glDepthRangexOES; + static const Function glDetachShader = GLMessage_Function_glDetachShader; + static const Function glDisableClientState = GLMessage_Function_glDisableClientState; + static const Function glDisableDriverControlQCOM = GLMessage_Function_glDisableDriverControlQCOM; + static const Function glDisable = GLMessage_Function_glDisable; + static const Function glDisableVertexAttribArray = GLMessage_Function_glDisableVertexAttribArray; + static const Function glDiscardFramebufferEXT = GLMessage_Function_glDiscardFramebufferEXT; + static const Function glDrawArrays = GLMessage_Function_glDrawArrays; + static const Function glDrawElements = GLMessage_Function_glDrawElements; + static const Function glDrawTexfOES = GLMessage_Function_glDrawTexfOES; + static const Function glDrawTexfvOES = GLMessage_Function_glDrawTexfvOES; + static const Function glDrawTexiOES = GLMessage_Function_glDrawTexiOES; + static const Function glDrawTexivOES = GLMessage_Function_glDrawTexivOES; + static const Function glDrawTexsOES = GLMessage_Function_glDrawTexsOES; + static const Function glDrawTexsvOES = GLMessage_Function_glDrawTexsvOES; + static const Function glDrawTexxOES = GLMessage_Function_glDrawTexxOES; + static const Function glDrawTexxvOES = GLMessage_Function_glDrawTexxvOES; + static const Function glEGLImageTargetRenderbufferStorageOES = GLMessage_Function_glEGLImageTargetRenderbufferStorageOES; + static const Function glEGLImageTargetTexture2DOES = GLMessage_Function_glEGLImageTargetTexture2DOES; + static const Function glEnableClientState = GLMessage_Function_glEnableClientState; + static const Function glEnableDriverControlQCOM = GLMessage_Function_glEnableDriverControlQCOM; + static const Function glEnable = GLMessage_Function_glEnable; + static const Function glEnableVertexAttribArray = GLMessage_Function_glEnableVertexAttribArray; + static const Function glEndPerfMonitorAMD = GLMessage_Function_glEndPerfMonitorAMD; + static const Function glEndTilingQCOM = GLMessage_Function_glEndTilingQCOM; + static const Function glExtGetBufferPointervQCOM = GLMessage_Function_glExtGetBufferPointervQCOM; + static const Function glExtGetBuffersQCOM = GLMessage_Function_glExtGetBuffersQCOM; + static const Function glExtGetFramebuffersQCOM = GLMessage_Function_glExtGetFramebuffersQCOM; + static const Function glExtGetProgramBinarySourceQCOM = GLMessage_Function_glExtGetProgramBinarySourceQCOM; + static const Function glExtGetProgramsQCOM = GLMessage_Function_glExtGetProgramsQCOM; + static const Function glExtGetRenderbuffersQCOM = GLMessage_Function_glExtGetRenderbuffersQCOM; + static const Function glExtGetShadersQCOM = GLMessage_Function_glExtGetShadersQCOM; + static const Function glExtGetTexLevelParameterivQCOM = GLMessage_Function_glExtGetTexLevelParameterivQCOM; + static const Function glExtGetTexSubImageQCOM = GLMessage_Function_glExtGetTexSubImageQCOM; + static const Function glExtGetTexturesQCOM = GLMessage_Function_glExtGetTexturesQCOM; + static const Function glExtIsProgramBinaryQCOM = GLMessage_Function_glExtIsProgramBinaryQCOM; + static const Function glExtTexObjectStateOverrideiQCOM = GLMessage_Function_glExtTexObjectStateOverrideiQCOM; + static const Function glFinishFenceNV = GLMessage_Function_glFinishFenceNV; + static const Function glFinish = GLMessage_Function_glFinish; + static const Function glFlush = GLMessage_Function_glFlush; + static const Function glFogf = GLMessage_Function_glFogf; + static const Function glFogfv = GLMessage_Function_glFogfv; + static const Function glFogx = GLMessage_Function_glFogx; + static const Function glFogxOES = GLMessage_Function_glFogxOES; + static const Function glFogxv = GLMessage_Function_glFogxv; + static const Function glFogxvOES = GLMessage_Function_glFogxvOES; + static const Function glFramebufferRenderbuffer = GLMessage_Function_glFramebufferRenderbuffer; + static const Function glFramebufferRenderbufferOES = GLMessage_Function_glFramebufferRenderbufferOES; + static const Function glFramebufferTexture2D = GLMessage_Function_glFramebufferTexture2D; + static const Function glFramebufferTexture2DMultisampleIMG = GLMessage_Function_glFramebufferTexture2DMultisampleIMG; + static const Function glFramebufferTexture2DOES = GLMessage_Function_glFramebufferTexture2DOES; + static const Function glFramebufferTexture3DOES = GLMessage_Function_glFramebufferTexture3DOES; + static const Function glFrontFace = GLMessage_Function_glFrontFace; + static const Function glFrustumf = GLMessage_Function_glFrustumf; + static const Function glFrustumfOES = GLMessage_Function_glFrustumfOES; + static const Function glFrustumx = GLMessage_Function_glFrustumx; + static const Function glFrustumxOES = GLMessage_Function_glFrustumxOES; + static const Function glGenBuffers = GLMessage_Function_glGenBuffers; + static const Function glGenerateMipmap = GLMessage_Function_glGenerateMipmap; + static const Function glGenerateMipmapOES = GLMessage_Function_glGenerateMipmapOES; + static const Function glGenFencesNV = GLMessage_Function_glGenFencesNV; + static const Function glGenFramebuffers = GLMessage_Function_glGenFramebuffers; + static const Function glGenFramebuffersOES = GLMessage_Function_glGenFramebuffersOES; + static const Function glGenPerfMonitorsAMD = GLMessage_Function_glGenPerfMonitorsAMD; + static const Function glGenRenderbuffers = GLMessage_Function_glGenRenderbuffers; + static const Function glGenRenderbuffersOES = GLMessage_Function_glGenRenderbuffersOES; + static const Function glGenTextures = GLMessage_Function_glGenTextures; + static const Function glGenVertexArraysOES = GLMessage_Function_glGenVertexArraysOES; + static const Function glGetActiveAttrib = GLMessage_Function_glGetActiveAttrib; + static const Function glGetActiveUniform = GLMessage_Function_glGetActiveUniform; + static const Function glGetAttachedShaders = GLMessage_Function_glGetAttachedShaders; + static const Function glGetAttribLocation = GLMessage_Function_glGetAttribLocation; + static const Function glGetBooleanv = GLMessage_Function_glGetBooleanv; + static const Function glGetBufferParameteriv = GLMessage_Function_glGetBufferParameteriv; + static const Function glGetBufferPointervOES = GLMessage_Function_glGetBufferPointervOES; + static const Function glGetClipPlanef = GLMessage_Function_glGetClipPlanef; + static const Function glGetClipPlanefOES = GLMessage_Function_glGetClipPlanefOES; + static const Function glGetClipPlanex = GLMessage_Function_glGetClipPlanex; + static const Function glGetClipPlanexOES = GLMessage_Function_glGetClipPlanexOES; + static const Function glGetDriverControlsQCOM = GLMessage_Function_glGetDriverControlsQCOM; + static const Function glGetDriverControlStringQCOM = GLMessage_Function_glGetDriverControlStringQCOM; + static const Function glGetError = GLMessage_Function_glGetError; + static const Function glGetFenceivNV = GLMessage_Function_glGetFenceivNV; + static const Function glGetFixedv = GLMessage_Function_glGetFixedv; + static const Function glGetFixedvOES = GLMessage_Function_glGetFixedvOES; + static const Function glGetFloatv = GLMessage_Function_glGetFloatv; + static const Function glGetFramebufferAttachmentParameteriv = GLMessage_Function_glGetFramebufferAttachmentParameteriv; + static const Function glGetFramebufferAttachmentParameterivOES = GLMessage_Function_glGetFramebufferAttachmentParameterivOES; + static const Function glGetIntegerv = GLMessage_Function_glGetIntegerv; + static const Function glGetLightfv = GLMessage_Function_glGetLightfv; + static const Function glGetLightxv = GLMessage_Function_glGetLightxv; + static const Function glGetLightxvOES = GLMessage_Function_glGetLightxvOES; + static const Function glGetMaterialfv = GLMessage_Function_glGetMaterialfv; + static const Function glGetMaterialxv = GLMessage_Function_glGetMaterialxv; + static const Function glGetMaterialxvOES = GLMessage_Function_glGetMaterialxvOES; + static const Function glGetPerfMonitorCounterDataAMD = GLMessage_Function_glGetPerfMonitorCounterDataAMD; + static const Function glGetPerfMonitorCounterInfoAMD = GLMessage_Function_glGetPerfMonitorCounterInfoAMD; + static const Function glGetPerfMonitorCountersAMD = GLMessage_Function_glGetPerfMonitorCountersAMD; + static const Function glGetPerfMonitorCounterStringAMD = GLMessage_Function_glGetPerfMonitorCounterStringAMD; + static const Function glGetPerfMonitorGroupsAMD = GLMessage_Function_glGetPerfMonitorGroupsAMD; + static const Function glGetPerfMonitorGroupStringAMD = GLMessage_Function_glGetPerfMonitorGroupStringAMD; + static const Function glGetPointerv = GLMessage_Function_glGetPointerv; + static const Function glGetProgramBinaryOES = GLMessage_Function_glGetProgramBinaryOES; + static const Function glGetProgramInfoLog = GLMessage_Function_glGetProgramInfoLog; + static const Function glGetProgramiv = GLMessage_Function_glGetProgramiv; + static const Function glGetRenderbufferParameteriv = GLMessage_Function_glGetRenderbufferParameteriv; + static const Function glGetRenderbufferParameterivOES = GLMessage_Function_glGetRenderbufferParameterivOES; + static const Function glGetShaderInfoLog = GLMessage_Function_glGetShaderInfoLog; + static const Function glGetShaderiv = GLMessage_Function_glGetShaderiv; + static const Function glGetShaderPrecisionFormat = GLMessage_Function_glGetShaderPrecisionFormat; + static const Function glGetShaderSource = GLMessage_Function_glGetShaderSource; + static const Function glGetString = GLMessage_Function_glGetString; + static const Function glGetTexEnvfv = GLMessage_Function_glGetTexEnvfv; + static const Function glGetTexEnviv = GLMessage_Function_glGetTexEnviv; + static const Function glGetTexEnvxv = GLMessage_Function_glGetTexEnvxv; + static const Function glGetTexEnvxvOES = GLMessage_Function_glGetTexEnvxvOES; + static const Function glGetTexGenfvOES = GLMessage_Function_glGetTexGenfvOES; + static const Function glGetTexGenivOES = GLMessage_Function_glGetTexGenivOES; + static const Function glGetTexGenxvOES = GLMessage_Function_glGetTexGenxvOES; + static const Function glGetTexParameterfv = GLMessage_Function_glGetTexParameterfv; + static const Function glGetTexParameteriv = GLMessage_Function_glGetTexParameteriv; + static const Function glGetTexParameterxv = GLMessage_Function_glGetTexParameterxv; + static const Function glGetTexParameterxvOES = GLMessage_Function_glGetTexParameterxvOES; + static const Function glGetUniformfv = GLMessage_Function_glGetUniformfv; + static const Function glGetUniformiv = GLMessage_Function_glGetUniformiv; + static const Function glGetUniformLocation = GLMessage_Function_glGetUniformLocation; + static const Function glGetVertexAttribfv = GLMessage_Function_glGetVertexAttribfv; + static const Function glGetVertexAttribiv = GLMessage_Function_glGetVertexAttribiv; + static const Function glGetVertexAttribPointerv = GLMessage_Function_glGetVertexAttribPointerv; + static const Function glHint = GLMessage_Function_glHint; + static const Function glIsBuffer = GLMessage_Function_glIsBuffer; + static const Function glIsEnabled = GLMessage_Function_glIsEnabled; + static const Function glIsFenceNV = GLMessage_Function_glIsFenceNV; + static const Function glIsFramebuffer = GLMessage_Function_glIsFramebuffer; + static const Function glIsFramebufferOES = GLMessage_Function_glIsFramebufferOES; + static const Function glIsProgram = GLMessage_Function_glIsProgram; + static const Function glIsRenderbuffer = GLMessage_Function_glIsRenderbuffer; + static const Function glIsRenderbufferOES = GLMessage_Function_glIsRenderbufferOES; + static const Function glIsShader = GLMessage_Function_glIsShader; + static const Function glIsTexture = GLMessage_Function_glIsTexture; + static const Function glIsVertexArrayOES = GLMessage_Function_glIsVertexArrayOES; + static const Function glLightf = GLMessage_Function_glLightf; + static const Function glLightfv = GLMessage_Function_glLightfv; + static const Function glLightModelf = GLMessage_Function_glLightModelf; + static const Function glLightModelfv = GLMessage_Function_glLightModelfv; + static const Function glLightModelx = GLMessage_Function_glLightModelx; + static const Function glLightModelxOES = GLMessage_Function_glLightModelxOES; + static const Function glLightModelxv = GLMessage_Function_glLightModelxv; + static const Function glLightModelxvOES = GLMessage_Function_glLightModelxvOES; + static const Function glLightx = GLMessage_Function_glLightx; + static const Function glLightxOES = GLMessage_Function_glLightxOES; + static const Function glLightxv = GLMessage_Function_glLightxv; + static const Function glLightxvOES = GLMessage_Function_glLightxvOES; + static const Function glLineWidth = GLMessage_Function_glLineWidth; + static const Function glLineWidthx = GLMessage_Function_glLineWidthx; + static const Function glLineWidthxOES = GLMessage_Function_glLineWidthxOES; + static const Function glLinkProgram = GLMessage_Function_glLinkProgram; + static const Function glLoadIdentity = GLMessage_Function_glLoadIdentity; + static const Function glLoadMatrixf = GLMessage_Function_glLoadMatrixf; + static const Function glLoadMatrixx = GLMessage_Function_glLoadMatrixx; + static const Function glLoadMatrixxOES = GLMessage_Function_glLoadMatrixxOES; + static const Function glLoadPaletteFromModelViewMatrixOES = GLMessage_Function_glLoadPaletteFromModelViewMatrixOES; + static const Function glLogicOp = GLMessage_Function_glLogicOp; + static const Function glMapBufferOES = GLMessage_Function_glMapBufferOES; + static const Function glMaterialf = GLMessage_Function_glMaterialf; + static const Function glMaterialfv = GLMessage_Function_glMaterialfv; + static const Function glMaterialx = GLMessage_Function_glMaterialx; + static const Function glMaterialxOES = GLMessage_Function_glMaterialxOES; + static const Function glMaterialxv = GLMessage_Function_glMaterialxv; + static const Function glMaterialxvOES = GLMessage_Function_glMaterialxvOES; + static const Function glMatrixIndexPointerOES = GLMessage_Function_glMatrixIndexPointerOES; + static const Function glMatrixMode = GLMessage_Function_glMatrixMode; + static const Function glMultiDrawArraysEXT = GLMessage_Function_glMultiDrawArraysEXT; + static const Function glMultiDrawElementsEXT = GLMessage_Function_glMultiDrawElementsEXT; + static const Function glMultiTexCoord4f = GLMessage_Function_glMultiTexCoord4f; + static const Function glMultiTexCoord4x = GLMessage_Function_glMultiTexCoord4x; + static const Function glMultiTexCoord4xOES = GLMessage_Function_glMultiTexCoord4xOES; + static const Function glMultMatrixf = GLMessage_Function_glMultMatrixf; + static const Function glMultMatrixx = GLMessage_Function_glMultMatrixx; + static const Function glMultMatrixxOES = GLMessage_Function_glMultMatrixxOES; + static const Function glNormal3f = GLMessage_Function_glNormal3f; + static const Function glNormal3x = GLMessage_Function_glNormal3x; + static const Function glNormal3xOES = GLMessage_Function_glNormal3xOES; + static const Function glNormalPointer = GLMessage_Function_glNormalPointer; + static const Function glOrthof = GLMessage_Function_glOrthof; + static const Function glOrthofOES = GLMessage_Function_glOrthofOES; + static const Function glOrthox = GLMessage_Function_glOrthox; + static const Function glOrthoxOES = GLMessage_Function_glOrthoxOES; + static const Function glPixelStorei = GLMessage_Function_glPixelStorei; + static const Function glPointParameterf = GLMessage_Function_glPointParameterf; + static const Function glPointParameterfv = GLMessage_Function_glPointParameterfv; + static const Function glPointParameterx = GLMessage_Function_glPointParameterx; + static const Function glPointParameterxOES = GLMessage_Function_glPointParameterxOES; + static const Function glPointParameterxv = GLMessage_Function_glPointParameterxv; + static const Function glPointParameterxvOES = GLMessage_Function_glPointParameterxvOES; + static const Function glPointSize = GLMessage_Function_glPointSize; + static const Function glPointSizePointerOES = GLMessage_Function_glPointSizePointerOES; + static const Function glPointSizex = GLMessage_Function_glPointSizex; + static const Function glPointSizexOES = GLMessage_Function_glPointSizexOES; + static const Function glPolygonOffset = GLMessage_Function_glPolygonOffset; + static const Function glPolygonOffsetx = GLMessage_Function_glPolygonOffsetx; + static const Function glPolygonOffsetxOES = GLMessage_Function_glPolygonOffsetxOES; + static const Function glPopMatrix = GLMessage_Function_glPopMatrix; + static const Function glProgramBinaryOES = GLMessage_Function_glProgramBinaryOES; + static const Function glPushMatrix = GLMessage_Function_glPushMatrix; + static const Function glQueryMatrixxOES = GLMessage_Function_glQueryMatrixxOES; + static const Function glReadPixels = GLMessage_Function_glReadPixels; + static const Function glReleaseShaderCompiler = GLMessage_Function_glReleaseShaderCompiler; + static const Function glRenderbufferStorage = GLMessage_Function_glRenderbufferStorage; + static const Function glRenderbufferStorageMultisampleIMG = GLMessage_Function_glRenderbufferStorageMultisampleIMG; + static const Function glRenderbufferStorageOES = GLMessage_Function_glRenderbufferStorageOES; + static const Function glRotatef = GLMessage_Function_glRotatef; + static const Function glRotatex = GLMessage_Function_glRotatex; + static const Function glRotatexOES = GLMessage_Function_glRotatexOES; + static const Function glSampleCoverage = GLMessage_Function_glSampleCoverage; + static const Function glSampleCoveragex = GLMessage_Function_glSampleCoveragex; + static const Function glSampleCoveragexOES = GLMessage_Function_glSampleCoveragexOES; + static const Function glScalef = GLMessage_Function_glScalef; + static const Function glScalex = GLMessage_Function_glScalex; + static const Function glScalexOES = GLMessage_Function_glScalexOES; + static const Function glScissor = GLMessage_Function_glScissor; + static const Function glSelectPerfMonitorCountersAMD = GLMessage_Function_glSelectPerfMonitorCountersAMD; + static const Function glSetFenceNV = GLMessage_Function_glSetFenceNV; + static const Function glShadeModel = GLMessage_Function_glShadeModel; + static const Function glShaderBinary = GLMessage_Function_glShaderBinary; + static const Function glShaderSource = GLMessage_Function_glShaderSource; + static const Function glStartTilingQCOM = GLMessage_Function_glStartTilingQCOM; + static const Function glStencilFunc = GLMessage_Function_glStencilFunc; + static const Function glStencilFuncSeparate = GLMessage_Function_glStencilFuncSeparate; + static const Function glStencilMask = GLMessage_Function_glStencilMask; + static const Function glStencilMaskSeparate = GLMessage_Function_glStencilMaskSeparate; + static const Function glStencilOp = GLMessage_Function_glStencilOp; + static const Function glStencilOpSeparate = GLMessage_Function_glStencilOpSeparate; + static const Function glTestFenceNV = GLMessage_Function_glTestFenceNV; + static const Function glTexCoordPointer = GLMessage_Function_glTexCoordPointer; + static const Function glTexEnvf = GLMessage_Function_glTexEnvf; + static const Function glTexEnvfv = GLMessage_Function_glTexEnvfv; + static const Function glTexEnvi = GLMessage_Function_glTexEnvi; + static const Function glTexEnviv = GLMessage_Function_glTexEnviv; + static const Function glTexEnvx = GLMessage_Function_glTexEnvx; + static const Function glTexEnvxOES = GLMessage_Function_glTexEnvxOES; + static const Function glTexEnvxv = GLMessage_Function_glTexEnvxv; + static const Function glTexEnvxvOES = GLMessage_Function_glTexEnvxvOES; + static const Function glTexGenfOES = GLMessage_Function_glTexGenfOES; + static const Function glTexGenfvOES = GLMessage_Function_glTexGenfvOES; + static const Function glTexGeniOES = GLMessage_Function_glTexGeniOES; + static const Function glTexGenivOES = GLMessage_Function_glTexGenivOES; + static const Function glTexGenxOES = GLMessage_Function_glTexGenxOES; + static const Function glTexGenxvOES = GLMessage_Function_glTexGenxvOES; + static const Function glTexImage2D = GLMessage_Function_glTexImage2D; + static const Function glTexImage3DOES = GLMessage_Function_glTexImage3DOES; + static const Function glTexParameterf = GLMessage_Function_glTexParameterf; + static const Function glTexParameterfv = GLMessage_Function_glTexParameterfv; + static const Function glTexParameteri = GLMessage_Function_glTexParameteri; + static const Function glTexParameteriv = GLMessage_Function_glTexParameteriv; + static const Function glTexParameterx = GLMessage_Function_glTexParameterx; + static const Function glTexParameterxOES = GLMessage_Function_glTexParameterxOES; + static const Function glTexParameterxv = GLMessage_Function_glTexParameterxv; + static const Function glTexParameterxvOES = GLMessage_Function_glTexParameterxvOES; + static const Function glTexSubImage2D = GLMessage_Function_glTexSubImage2D; + static const Function glTexSubImage3DOES = GLMessage_Function_glTexSubImage3DOES; + static const Function glTranslatef = GLMessage_Function_glTranslatef; + static const Function glTranslatex = GLMessage_Function_glTranslatex; + static const Function glTranslatexOES = GLMessage_Function_glTranslatexOES; + static const Function glUniform1f = GLMessage_Function_glUniform1f; + static const Function glUniform1fv = GLMessage_Function_glUniform1fv; + static const Function glUniform1i = GLMessage_Function_glUniform1i; + static const Function glUniform1iv = GLMessage_Function_glUniform1iv; + static const Function glUniform2f = GLMessage_Function_glUniform2f; + static const Function glUniform2fv = GLMessage_Function_glUniform2fv; + static const Function glUniform2i = GLMessage_Function_glUniform2i; + static const Function glUniform2iv = GLMessage_Function_glUniform2iv; + static const Function glUniform3f = GLMessage_Function_glUniform3f; + static const Function glUniform3fv = GLMessage_Function_glUniform3fv; + static const Function glUniform3i = GLMessage_Function_glUniform3i; + static const Function glUniform3iv = GLMessage_Function_glUniform3iv; + static const Function glUniform4f = GLMessage_Function_glUniform4f; + static const Function glUniform4fv = GLMessage_Function_glUniform4fv; + static const Function glUniform4i = GLMessage_Function_glUniform4i; + static const Function glUniform4iv = GLMessage_Function_glUniform4iv; + static const Function glUniformMatrix2fv = GLMessage_Function_glUniformMatrix2fv; + static const Function glUniformMatrix3fv = GLMessage_Function_glUniformMatrix3fv; + static const Function glUniformMatrix4fv = GLMessage_Function_glUniformMatrix4fv; + static const Function glUnmapBufferOES = GLMessage_Function_glUnmapBufferOES; + static const Function glUseProgram = GLMessage_Function_glUseProgram; + static const Function glValidateProgram = GLMessage_Function_glValidateProgram; + static const Function glVertexAttrib1f = GLMessage_Function_glVertexAttrib1f; + static const Function glVertexAttrib1fv = GLMessage_Function_glVertexAttrib1fv; + static const Function glVertexAttrib2f = GLMessage_Function_glVertexAttrib2f; + static const Function glVertexAttrib2fv = GLMessage_Function_glVertexAttrib2fv; + static const Function glVertexAttrib3f = GLMessage_Function_glVertexAttrib3f; + static const Function glVertexAttrib3fv = GLMessage_Function_glVertexAttrib3fv; + static const Function glVertexAttrib4f = GLMessage_Function_glVertexAttrib4f; + static const Function glVertexAttrib4fv = GLMessage_Function_glVertexAttrib4fv; + static const Function glVertexAttribPointer = GLMessage_Function_glVertexAttribPointer; + static const Function glVertexPointer = GLMessage_Function_glVertexPointer; + static const Function glViewport = GLMessage_Function_glViewport; + static const Function glWeightPointerOES = GLMessage_Function_glWeightPointerOES; + static const Function glActiveShaderProgramEXT = GLMessage_Function_glActiveShaderProgramEXT; + static const Function glAlphaFuncQCOM = GLMessage_Function_glAlphaFuncQCOM; + static const Function glBeginQueryEXT = GLMessage_Function_glBeginQueryEXT; + static const Function glBindProgramPipelineEXT = GLMessage_Function_glBindProgramPipelineEXT; + static const Function glBlitFramebufferANGLE = GLMessage_Function_glBlitFramebufferANGLE; + static const Function glCreateShaderProgramvEXT = GLMessage_Function_glCreateShaderProgramvEXT; + static const Function glDeleteProgramPipelinesEXT = GLMessage_Function_glDeleteProgramPipelinesEXT; + static const Function glDeleteQueriesEXT = GLMessage_Function_glDeleteQueriesEXT; + static const Function glDrawBuffersNV = GLMessage_Function_glDrawBuffersNV; + static const Function glEndQueryEXT = GLMessage_Function_glEndQueryEXT; + static const Function glFramebufferTexture2DMultisampleEXT = GLMessage_Function_glFramebufferTexture2DMultisampleEXT; + static const Function glGenProgramPipelinesEXT = GLMessage_Function_glGenProgramPipelinesEXT; + static const Function glGenQueriesEXT = GLMessage_Function_glGenQueriesEXT; + static const Function glGetGraphicsResetStatusEXT = GLMessage_Function_glGetGraphicsResetStatusEXT; + static const Function glGetObjectLabelEXT = GLMessage_Function_glGetObjectLabelEXT; + static const Function glGetProgramPipelineInfoLogEXT = GLMessage_Function_glGetProgramPipelineInfoLogEXT; + static const Function glGetProgramPipelineivEXT = GLMessage_Function_glGetProgramPipelineivEXT; + static const Function glGetQueryObjectuivEXT = GLMessage_Function_glGetQueryObjectuivEXT; + static const Function glGetQueryivEXT = GLMessage_Function_glGetQueryivEXT; + static const Function glGetnUniformfvEXT = GLMessage_Function_glGetnUniformfvEXT; + static const Function glGetnUniformivEXT = GLMessage_Function_glGetnUniformivEXT; + static const Function glInsertEventMarkerEXT = GLMessage_Function_glInsertEventMarkerEXT; + static const Function glIsProgramPipelineEXT = GLMessage_Function_glIsProgramPipelineEXT; + static const Function glIsQueryEXT = GLMessage_Function_glIsQueryEXT; + static const Function glLabelObjectEXT = GLMessage_Function_glLabelObjectEXT; + static const Function glPopGroupMarkerEXT = GLMessage_Function_glPopGroupMarkerEXT; + static const Function glProgramParameteriEXT = GLMessage_Function_glProgramParameteriEXT; + static const Function glProgramUniform1fEXT = GLMessage_Function_glProgramUniform1fEXT; + static const Function glProgramUniform1fvEXT = GLMessage_Function_glProgramUniform1fvEXT; + static const Function glProgramUniform1iEXT = GLMessage_Function_glProgramUniform1iEXT; + static const Function glProgramUniform1ivEXT = GLMessage_Function_glProgramUniform1ivEXT; + static const Function glProgramUniform2fEXT = GLMessage_Function_glProgramUniform2fEXT; + static const Function glProgramUniform2fvEXT = GLMessage_Function_glProgramUniform2fvEXT; + static const Function glProgramUniform2iEXT = GLMessage_Function_glProgramUniform2iEXT; + static const Function glProgramUniform2ivEXT = GLMessage_Function_glProgramUniform2ivEXT; + static const Function glProgramUniform3fEXT = GLMessage_Function_glProgramUniform3fEXT; + static const Function glProgramUniform3fvEXT = GLMessage_Function_glProgramUniform3fvEXT; + static const Function glProgramUniform3iEXT = GLMessage_Function_glProgramUniform3iEXT; + static const Function glProgramUniform3ivEXT = GLMessage_Function_glProgramUniform3ivEXT; + static const Function glProgramUniform4fEXT = GLMessage_Function_glProgramUniform4fEXT; + static const Function glProgramUniform4fvEXT = GLMessage_Function_glProgramUniform4fvEXT; + static const Function glProgramUniform4iEXT = GLMessage_Function_glProgramUniform4iEXT; + static const Function glProgramUniform4ivEXT = GLMessage_Function_glProgramUniform4ivEXT; + static const Function glProgramUniformMatrix2fvEXT = GLMessage_Function_glProgramUniformMatrix2fvEXT; + static const Function glProgramUniformMatrix3fvEXT = GLMessage_Function_glProgramUniformMatrix3fvEXT; + static const Function glProgramUniformMatrix4fvEXT = GLMessage_Function_glProgramUniformMatrix4fvEXT; + static const Function glPushGroupMarkerEXT = GLMessage_Function_glPushGroupMarkerEXT; + static const Function glReadBufferNV = GLMessage_Function_glReadBufferNV; + static const Function glReadnPixelsEXT = GLMessage_Function_glReadnPixelsEXT; + static const Function glRenderbufferStorageMultisampleANGLE = GLMessage_Function_glRenderbufferStorageMultisampleANGLE; + static const Function glRenderbufferStorageMultisampleAPPLE = GLMessage_Function_glRenderbufferStorageMultisampleAPPLE; + static const Function glRenderbufferStorageMultisampleEXT = GLMessage_Function_glRenderbufferStorageMultisampleEXT; + static const Function glResolveMultisampleFramebufferAPPLE = GLMessage_Function_glResolveMultisampleFramebufferAPPLE; + static const Function glTexStorage1DEXT = GLMessage_Function_glTexStorage1DEXT; + static const Function glTexStorage2DEXT = GLMessage_Function_glTexStorage2DEXT; + static const Function glTexStorage3DEXT = GLMessage_Function_glTexStorage3DEXT; + static const Function glTextureStorage1DEXT = GLMessage_Function_glTextureStorage1DEXT; + static const Function glTextureStorage2DEXT = GLMessage_Function_glTextureStorage2DEXT; + static const Function glTextureStorage3DEXT = GLMessage_Function_glTextureStorage3DEXT; + static const Function glUseProgramStagesEXT = GLMessage_Function_glUseProgramStagesEXT; + static const Function glValidateProgramPipelineEXT = GLMessage_Function_glValidateProgramPipelineEXT; + static const Function eglGetDisplay = GLMessage_Function_eglGetDisplay; + static const Function eglInitialize = GLMessage_Function_eglInitialize; + static const Function eglTerminate = GLMessage_Function_eglTerminate; + static const Function eglGetConfigs = GLMessage_Function_eglGetConfigs; + static const Function eglChooseConfig = GLMessage_Function_eglChooseConfig; + static const Function eglGetConfigAttrib = GLMessage_Function_eglGetConfigAttrib; + static const Function eglCreateWindowSurface = GLMessage_Function_eglCreateWindowSurface; + static const Function eglCreatePixmapSurface = GLMessage_Function_eglCreatePixmapSurface; + static const Function eglCreatePbufferSurface = GLMessage_Function_eglCreatePbufferSurface; + static const Function eglDestroySurface = GLMessage_Function_eglDestroySurface; + static const Function eglQuerySurface = GLMessage_Function_eglQuerySurface; + static const Function eglCreateContext = GLMessage_Function_eglCreateContext; + static const Function eglDestroyContext = GLMessage_Function_eglDestroyContext; + static const Function eglMakeCurrent = GLMessage_Function_eglMakeCurrent; + static const Function eglGetCurrentContext = GLMessage_Function_eglGetCurrentContext; + static const Function eglGetCurrentSurface = GLMessage_Function_eglGetCurrentSurface; + static const Function eglGetCurrentDisplay = GLMessage_Function_eglGetCurrentDisplay; + static const Function eglQueryContext = GLMessage_Function_eglQueryContext; + static const Function eglWaitGL = GLMessage_Function_eglWaitGL; + static const Function eglWaitNative = GLMessage_Function_eglWaitNative; + static const Function eglSwapBuffers = GLMessage_Function_eglSwapBuffers; + static const Function eglCopyBuffers = GLMessage_Function_eglCopyBuffers; + static const Function eglGetError = GLMessage_Function_eglGetError; + static const Function eglQueryString = GLMessage_Function_eglQueryString; + static const Function eglGetProcAddress = GLMessage_Function_eglGetProcAddress; + static const Function eglSurfaceAttrib = GLMessage_Function_eglSurfaceAttrib; + static const Function eglBindTexImage = GLMessage_Function_eglBindTexImage; + static const Function eglReleaseTexImage = GLMessage_Function_eglReleaseTexImage; + static const Function eglSwapInterval = GLMessage_Function_eglSwapInterval; + static const Function eglBindAPI = GLMessage_Function_eglBindAPI; + static const Function eglQueryAPI = GLMessage_Function_eglQueryAPI; + static const Function eglWaitClient = GLMessage_Function_eglWaitClient; + static const Function eglReleaseThread = GLMessage_Function_eglReleaseThread; + static const Function eglCreatePbufferFromClientBuffer = GLMessage_Function_eglCreatePbufferFromClientBuffer; + static const Function eglLockSurfaceKHR = GLMessage_Function_eglLockSurfaceKHR; + static const Function eglUnlockSurfaceKHR = GLMessage_Function_eglUnlockSurfaceKHR; + static const Function eglCreateImageKHR = GLMessage_Function_eglCreateImageKHR; + static const Function eglDestroyImageKHR = GLMessage_Function_eglDestroyImageKHR; + static const Function eglCreateSyncKHR = GLMessage_Function_eglCreateSyncKHR; + static const Function eglDestroySyncKHR = GLMessage_Function_eglDestroySyncKHR; + static const Function eglClientWaitSyncKHR = GLMessage_Function_eglClientWaitSyncKHR; + static const Function eglGetSyncAttribKHR = GLMessage_Function_eglGetSyncAttribKHR; + static const Function eglSetSwapRectangleANDROID = GLMessage_Function_eglSetSwapRectangleANDROID; + static const Function eglGetRenderBufferANDROID = GLMessage_Function_eglGetRenderBufferANDROID; + static const Function eglGetSystemTimeFrequencyNV = GLMessage_Function_eglGetSystemTimeFrequencyNV; + static const Function eglGetSystemTimeNV = GLMessage_Function_eglGetSystemTimeNV; + static const Function invalid = GLMessage_Function_invalid; + static const Function frameBufferContents = GLMessage_Function_frameBufferContents; + static inline bool Function_IsValid(int value) { + return GLMessage_Function_IsValid(value); + } + static const Function Function_MIN = + GLMessage_Function_Function_MIN; + static const Function Function_MAX = + GLMessage_Function_Function_MAX; + static const int Function_ARRAYSIZE = + GLMessage_Function_Function_ARRAYSIZE; + + // accessors ------------------------------------------------------- + + // required int32 context_id = 1; + inline bool has_context_id() const; + inline void clear_context_id(); + static const int kContextIdFieldNumber = 1; + inline ::google::protobuf::int32 context_id() const; + inline void set_context_id(::google::protobuf::int32 value); + + // required int64 start_time = 2; + inline bool has_start_time() const; + inline void clear_start_time(); + static const int kStartTimeFieldNumber = 2; + inline ::google::protobuf::int64 start_time() const; + inline void set_start_time(::google::protobuf::int64 value); + + // required int32 duration = 3; + inline bool has_duration() const; + inline void clear_duration(); + static const int kDurationFieldNumber = 3; + inline ::google::protobuf::int32 duration() const; + inline void set_duration(::google::protobuf::int32 value); + + // required .android.gltrace.GLMessage.Function function = 4 [default = invalid]; + inline bool has_function() const; + inline void clear_function(); + static const int kFunctionFieldNumber = 4; + inline ::android::gltrace::GLMessage_Function function() const; + inline void set_function(::android::gltrace::GLMessage_Function value); + + // repeated .android.gltrace.GLMessage.DataType args = 5; + inline int args_size() const; + inline void clear_args(); + static const int kArgsFieldNumber = 5; + inline const ::android::gltrace::GLMessage_DataType& args(int index) const; + inline ::android::gltrace::GLMessage_DataType* mutable_args(int index); + inline ::android::gltrace::GLMessage_DataType* add_args(); + inline const ::google::protobuf::RepeatedPtrField< ::android::gltrace::GLMessage_DataType >& + args() const; + inline ::google::protobuf::RepeatedPtrField< ::android::gltrace::GLMessage_DataType >* + mutable_args(); + + // optional .android.gltrace.GLMessage.DataType returnValue = 6; + inline bool has_returnvalue() const; + inline void clear_returnvalue(); + static const int kReturnValueFieldNumber = 6; + inline const ::android::gltrace::GLMessage_DataType& returnvalue() const; + inline ::android::gltrace::GLMessage_DataType* mutable_returnvalue(); + + // optional .android.gltrace.GLMessage.FrameBuffer fb = 7; + inline bool has_fb() const; + inline void clear_fb(); + static const int kFbFieldNumber = 7; + inline const ::android::gltrace::GLMessage_FrameBuffer& fb() const; + inline ::android::gltrace::GLMessage_FrameBuffer* mutable_fb(); + + // @@protoc_insertion_point(class_scope:android.gltrace.GLMessage) + private: + mutable int _cached_size_; + + ::google::protobuf::int32 context_id_; + ::google::protobuf::int64 start_time_; + ::google::protobuf::int32 duration_; + int function_; + ::google::protobuf::RepeatedPtrField< ::android::gltrace::GLMessage_DataType > args_; + ::android::gltrace::GLMessage_DataType* returnvalue_; + ::android::gltrace::GLMessage_FrameBuffer* fb_; + 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]; + + // WHY DOES & HAVE LOWER PRECEDENCE THAN != !? + inline bool _has_bit(int index) const { + return (_has_bits_[index / 32] & (1u << (index % 32))) != 0; + } + inline void _set_bit(int index) { + _has_bits_[index / 32] |= (1u << (index % 32)); + } + inline void _clear_bit(int index) { + _has_bits_[index / 32] &= ~(1u << (index % 32)); + } + + void InitAsDefaultInstance(); + static GLMessage* default_instance_; +}; +// =================================================================== + + +// =================================================================== + +// GLMessage_DataType + +// required .android.gltrace.GLMessage.DataType.Type type = 1 [default = VOID]; +inline bool GLMessage_DataType::has_type() const { + return _has_bit(0); +} +inline void GLMessage_DataType::clear_type() { + type_ = 1; + _clear_bit(0); +} +inline ::android::gltrace::GLMessage_DataType_Type GLMessage_DataType::type() const { + return static_cast< ::android::gltrace::GLMessage_DataType_Type >(type_); +} +inline void GLMessage_DataType::set_type(::android::gltrace::GLMessage_DataType_Type value) { + GOOGLE_DCHECK(::android::gltrace::GLMessage_DataType_Type_IsValid(value)); + _set_bit(0); + type_ = value; +} + +// required bool isArray = 2 [default = false]; +inline bool GLMessage_DataType::has_isarray() const { + return _has_bit(1); +} +inline void GLMessage_DataType::clear_isarray() { + isarray_ = false; + _clear_bit(1); +} +inline bool GLMessage_DataType::isarray() const { + return isarray_; +} +inline void GLMessage_DataType::set_isarray(bool value) { + _set_bit(1); + isarray_ = value; +} + +// repeated int32 intValue = 3; +inline int GLMessage_DataType::intvalue_size() const { + return intvalue_.size(); +} +inline void GLMessage_DataType::clear_intvalue() { + intvalue_.Clear(); +} +inline ::google::protobuf::int32 GLMessage_DataType::intvalue(int index) const { + return intvalue_.Get(index); +} +inline void GLMessage_DataType::set_intvalue(int index, ::google::protobuf::int32 value) { + intvalue_.Set(index, value); +} +inline void GLMessage_DataType::add_intvalue(::google::protobuf::int32 value) { + intvalue_.Add(value); +} +inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >& +GLMessage_DataType::intvalue() const { + return intvalue_; +} +inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >* +GLMessage_DataType::mutable_intvalue() { + return &intvalue_; +} + +// repeated float floatValue = 4; +inline int GLMessage_DataType::floatvalue_size() const { + return floatvalue_.size(); +} +inline void GLMessage_DataType::clear_floatvalue() { + floatvalue_.Clear(); +} +inline float GLMessage_DataType::floatvalue(int index) const { + return floatvalue_.Get(index); +} +inline void GLMessage_DataType::set_floatvalue(int index, float value) { + floatvalue_.Set(index, value); +} +inline void GLMessage_DataType::add_floatvalue(float value) { + floatvalue_.Add(value); +} +inline const ::google::protobuf::RepeatedField< float >& +GLMessage_DataType::floatvalue() const { + return floatvalue_; +} +inline ::google::protobuf::RepeatedField< float >* +GLMessage_DataType::mutable_floatvalue() { + return &floatvalue_; +} + +// repeated bytes charValue = 5; +inline int GLMessage_DataType::charvalue_size() const { + return charvalue_.size(); +} +inline void GLMessage_DataType::clear_charvalue() { + charvalue_.Clear(); +} +inline const ::std::string& GLMessage_DataType::charvalue(int index) const { + return charvalue_.Get(index); +} +inline ::std::string* GLMessage_DataType::mutable_charvalue(int index) { + return charvalue_.Mutable(index); +} +inline void GLMessage_DataType::set_charvalue(int index, const ::std::string& value) { + charvalue_.Mutable(index)->assign(value); +} +inline void GLMessage_DataType::set_charvalue(int index, const char* value) { + charvalue_.Mutable(index)->assign(value); +} +inline void GLMessage_DataType::set_charvalue(int index, const void* value, size_t size) { + charvalue_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); +} +inline ::std::string* GLMessage_DataType::add_charvalue() { + return charvalue_.Add(); +} +inline void GLMessage_DataType::add_charvalue(const ::std::string& value) { + charvalue_.Add()->assign(value); +} +inline void GLMessage_DataType::add_charvalue(const char* value) { + charvalue_.Add()->assign(value); +} +inline void GLMessage_DataType::add_charvalue(const void* value, size_t size) { + charvalue_.Add()->assign(reinterpret_cast<const char*>(value), size); +} +inline const ::google::protobuf::RepeatedPtrField< ::std::string>& +GLMessage_DataType::charvalue() const { + return charvalue_; +} +inline ::google::protobuf::RepeatedPtrField< ::std::string>* +GLMessage_DataType::mutable_charvalue() { + return &charvalue_; +} + +// repeated bytes rawBytes = 6; +inline int GLMessage_DataType::rawbytes_size() const { + return rawbytes_.size(); +} +inline void GLMessage_DataType::clear_rawbytes() { + rawbytes_.Clear(); +} +inline const ::std::string& GLMessage_DataType::rawbytes(int index) const { + return rawbytes_.Get(index); +} +inline ::std::string* GLMessage_DataType::mutable_rawbytes(int index) { + return rawbytes_.Mutable(index); +} +inline void GLMessage_DataType::set_rawbytes(int index, const ::std::string& value) { + rawbytes_.Mutable(index)->assign(value); +} +inline void GLMessage_DataType::set_rawbytes(int index, const char* value) { + rawbytes_.Mutable(index)->assign(value); +} +inline void GLMessage_DataType::set_rawbytes(int index, const void* value, size_t size) { + rawbytes_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); +} +inline ::std::string* GLMessage_DataType::add_rawbytes() { + return rawbytes_.Add(); +} +inline void GLMessage_DataType::add_rawbytes(const ::std::string& value) { + rawbytes_.Add()->assign(value); +} +inline void GLMessage_DataType::add_rawbytes(const char* value) { + rawbytes_.Add()->assign(value); +} +inline void GLMessage_DataType::add_rawbytes(const void* value, size_t size) { + rawbytes_.Add()->assign(reinterpret_cast<const char*>(value), size); +} +inline const ::google::protobuf::RepeatedPtrField< ::std::string>& +GLMessage_DataType::rawbytes() const { + return rawbytes_; +} +inline ::google::protobuf::RepeatedPtrField< ::std::string>* +GLMessage_DataType::mutable_rawbytes() { + return &rawbytes_; +} + +// repeated bool boolValue = 7; +inline int GLMessage_DataType::boolvalue_size() const { + return boolvalue_.size(); +} +inline void GLMessage_DataType::clear_boolvalue() { + boolvalue_.Clear(); +} +inline bool GLMessage_DataType::boolvalue(int index) const { + return boolvalue_.Get(index); +} +inline void GLMessage_DataType::set_boolvalue(int index, bool value) { + boolvalue_.Set(index, value); +} +inline void GLMessage_DataType::add_boolvalue(bool value) { + boolvalue_.Add(value); +} +inline const ::google::protobuf::RepeatedField< bool >& +GLMessage_DataType::boolvalue() const { + return boolvalue_; +} +inline ::google::protobuf::RepeatedField< bool >* +GLMessage_DataType::mutable_boolvalue() { + return &boolvalue_; +} + +// ------------------------------------------------------------------- + +// GLMessage_FrameBuffer + +// required int32 width = 1; +inline bool GLMessage_FrameBuffer::has_width() const { + return _has_bit(0); +} +inline void GLMessage_FrameBuffer::clear_width() { + width_ = 0; + _clear_bit(0); +} +inline ::google::protobuf::int32 GLMessage_FrameBuffer::width() const { + return width_; +} +inline void GLMessage_FrameBuffer::set_width(::google::protobuf::int32 value) { + _set_bit(0); + width_ = value; +} + +// required int32 height = 2; +inline bool GLMessage_FrameBuffer::has_height() const { + return _has_bit(1); +} +inline void GLMessage_FrameBuffer::clear_height() { + height_ = 0; + _clear_bit(1); +} +inline ::google::protobuf::int32 GLMessage_FrameBuffer::height() const { + return height_; +} +inline void GLMessage_FrameBuffer::set_height(::google::protobuf::int32 value) { + _set_bit(1); + height_ = value; +} + +// repeated bytes contents = 3; +inline int GLMessage_FrameBuffer::contents_size() const { + return contents_.size(); +} +inline void GLMessage_FrameBuffer::clear_contents() { + contents_.Clear(); +} +inline const ::std::string& GLMessage_FrameBuffer::contents(int index) const { + return contents_.Get(index); +} +inline ::std::string* GLMessage_FrameBuffer::mutable_contents(int index) { + return contents_.Mutable(index); +} +inline void GLMessage_FrameBuffer::set_contents(int index, const ::std::string& value) { + contents_.Mutable(index)->assign(value); +} +inline void GLMessage_FrameBuffer::set_contents(int index, const char* value) { + contents_.Mutable(index)->assign(value); +} +inline void GLMessage_FrameBuffer::set_contents(int index, const void* value, size_t size) { + contents_.Mutable(index)->assign( + reinterpret_cast<const char*>(value), size); +} +inline ::std::string* GLMessage_FrameBuffer::add_contents() { + return contents_.Add(); +} +inline void GLMessage_FrameBuffer::add_contents(const ::std::string& value) { + contents_.Add()->assign(value); +} +inline void GLMessage_FrameBuffer::add_contents(const char* value) { + contents_.Add()->assign(value); +} +inline void GLMessage_FrameBuffer::add_contents(const void* value, size_t size) { + contents_.Add()->assign(reinterpret_cast<const char*>(value), size); +} +inline const ::google::protobuf::RepeatedPtrField< ::std::string>& +GLMessage_FrameBuffer::contents() const { + return contents_; +} +inline ::google::protobuf::RepeatedPtrField< ::std::string>* +GLMessage_FrameBuffer::mutable_contents() { + return &contents_; +} + +// ------------------------------------------------------------------- + +// GLMessage + +// required int32 context_id = 1; +inline bool GLMessage::has_context_id() const { + return _has_bit(0); +} +inline void GLMessage::clear_context_id() { + context_id_ = 0; + _clear_bit(0); +} +inline ::google::protobuf::int32 GLMessage::context_id() const { + return context_id_; +} +inline void GLMessage::set_context_id(::google::protobuf::int32 value) { + _set_bit(0); + context_id_ = value; +} + +// required int64 start_time = 2; +inline bool GLMessage::has_start_time() const { + return _has_bit(1); +} +inline void GLMessage::clear_start_time() { + start_time_ = GOOGLE_LONGLONG(0); + _clear_bit(1); +} +inline ::google::protobuf::int64 GLMessage::start_time() const { + return start_time_; +} +inline void GLMessage::set_start_time(::google::protobuf::int64 value) { + _set_bit(1); + start_time_ = value; +} + +// required int32 duration = 3; +inline bool GLMessage::has_duration() const { + return _has_bit(2); +} +inline void GLMessage::clear_duration() { + duration_ = 0; + _clear_bit(2); +} +inline ::google::protobuf::int32 GLMessage::duration() const { + return duration_; +} +inline void GLMessage::set_duration(::google::protobuf::int32 value) { + _set_bit(2); + duration_ = value; +} + +// required .android.gltrace.GLMessage.Function function = 4 [default = invalid]; +inline bool GLMessage::has_function() const { + return _has_bit(3); +} +inline void GLMessage::clear_function() { + function_ = 3000; + _clear_bit(3); +} +inline ::android::gltrace::GLMessage_Function GLMessage::function() const { + return static_cast< ::android::gltrace::GLMessage_Function >(function_); +} +inline void GLMessage::set_function(::android::gltrace::GLMessage_Function value) { + GOOGLE_DCHECK(::android::gltrace::GLMessage_Function_IsValid(value)); + _set_bit(3); + function_ = value; +} + +// repeated .android.gltrace.GLMessage.DataType args = 5; +inline int GLMessage::args_size() const { + return args_.size(); +} +inline void GLMessage::clear_args() { + args_.Clear(); +} +inline const ::android::gltrace::GLMessage_DataType& GLMessage::args(int index) const { + return args_.Get(index); +} +inline ::android::gltrace::GLMessage_DataType* GLMessage::mutable_args(int index) { + return args_.Mutable(index); +} +inline ::android::gltrace::GLMessage_DataType* GLMessage::add_args() { + return args_.Add(); +} +inline const ::google::protobuf::RepeatedPtrField< ::android::gltrace::GLMessage_DataType >& +GLMessage::args() const { + return args_; +} +inline ::google::protobuf::RepeatedPtrField< ::android::gltrace::GLMessage_DataType >* +GLMessage::mutable_args() { + return &args_; +} + +// optional .android.gltrace.GLMessage.DataType returnValue = 6; +inline bool GLMessage::has_returnvalue() const { + return _has_bit(5); +} +inline void GLMessage::clear_returnvalue() { + if (returnvalue_ != NULL) returnvalue_->::android::gltrace::GLMessage_DataType::Clear(); + _clear_bit(5); +} +inline const ::android::gltrace::GLMessage_DataType& GLMessage::returnvalue() const { + return returnvalue_ != NULL ? *returnvalue_ : *default_instance_->returnvalue_; +} +inline ::android::gltrace::GLMessage_DataType* GLMessage::mutable_returnvalue() { + _set_bit(5); + if (returnvalue_ == NULL) returnvalue_ = new ::android::gltrace::GLMessage_DataType; + return returnvalue_; +} + +// optional .android.gltrace.GLMessage.FrameBuffer fb = 7; +inline bool GLMessage::has_fb() const { + return _has_bit(6); +} +inline void GLMessage::clear_fb() { + if (fb_ != NULL) fb_->::android::gltrace::GLMessage_FrameBuffer::Clear(); + _clear_bit(6); +} +inline const ::android::gltrace::GLMessage_FrameBuffer& GLMessage::fb() const { + return fb_ != NULL ? *fb_ : *default_instance_->fb_; +} +inline ::android::gltrace::GLMessage_FrameBuffer* GLMessage::mutable_fb() { + _set_bit(6); + if (fb_ == NULL) fb_ = new ::android::gltrace::GLMessage_FrameBuffer; + return fb_; +} + + +// @@protoc_insertion_point(namespace_scope) + +} // namespace gltrace +} // namespace android + +// @@protoc_insertion_point(global_scope) + +#endif // PROTOBUF_gltrace_2eproto__INCLUDED diff --git a/opengl/libs/GLES_trace/src/gltrace_api.cpp b/opengl/libs/GLES_trace/src/gltrace_api.cpp new file mode 100644 index 0000000..a2366ac --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_api.cpp @@ -0,0 +1,14563 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * THIS FILE WAS GENERATED BY A SCRIPT. DO NOT EDIT. + */ + +#include <cutils/log.h> +#include <utils/Timers.h> +#include <GLES2/gl2.h> + +#include "gltrace.pb.h" +#include "gltrace_context.h" +#include "gltrace_fixup.h" +#include "gltrace_transport.h" + +namespace android { +namespace gltrace { + +// Definitions for GL2 APIs + +void GLTrace_glActiveTexture(GLenum texture) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glActiveTexture); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::ENUM); + arg_texture->add_intvalue((int)texture); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glActiveTexture(texture); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glAttachShader(GLuint program, GLuint shader) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glAttachShader); + + // 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 shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glAttachShader(program, shader); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindAttribLocation(GLuint program, GLuint index, const GLchar* name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindAttribLocation); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glBindAttribLocation(program, index, name); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindBuffer(GLenum target, GLuint buffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindBuffer); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glBindBuffer(target, buffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindFramebuffer(GLenum target, GLuint framebuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindFramebuffer); + + // 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 framebuffer + GLMessage_DataType *arg_framebuffer = glmsg.add_args(); + arg_framebuffer->set_isarray(false); + arg_framebuffer->set_type(GLMessage::DataType::INT); + arg_framebuffer->add_intvalue(framebuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindFramebuffer(target, framebuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindRenderbuffer(GLenum target, GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindRenderbuffer); + + // 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 renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindRenderbuffer(target, renderbuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindTexture(GLenum target, GLuint texture) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindTexture); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindTexture(target, texture); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendColor); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::FLOAT); + arg_red->add_floatvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::FLOAT); + arg_green->add_floatvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::FLOAT); + arg_blue->add_floatvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::FLOAT); + arg_alpha->add_floatvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendColor(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendEquation(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendEquation); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendEquation(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendEquationSeparate); + + // copy argument modeRGB + GLMessage_DataType *arg_modeRGB = glmsg.add_args(); + arg_modeRGB->set_isarray(false); + arg_modeRGB->set_type(GLMessage::DataType::ENUM); + arg_modeRGB->add_intvalue((int)modeRGB); + + // copy argument modeAlpha + GLMessage_DataType *arg_modeAlpha = glmsg.add_args(); + arg_modeAlpha->set_isarray(false); + arg_modeAlpha->set_type(GLMessage::DataType::ENUM); + arg_modeAlpha->add_intvalue((int)modeAlpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendEquationSeparate(modeRGB, modeAlpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendFunc(GLenum sfactor, GLenum dfactor) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendFunc); + + // copy argument sfactor + GLMessage_DataType *arg_sfactor = glmsg.add_args(); + arg_sfactor->set_isarray(false); + arg_sfactor->set_type(GLMessage::DataType::ENUM); + arg_sfactor->add_intvalue((int)sfactor); + + // copy argument dfactor + GLMessage_DataType *arg_dfactor = glmsg.add_args(); + arg_dfactor->set_isarray(false); + arg_dfactor->set_type(GLMessage::DataType::ENUM); + arg_dfactor->add_intvalue((int)dfactor); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendFunc(sfactor, dfactor); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendFuncSeparate); + + // copy argument srcRGB + GLMessage_DataType *arg_srcRGB = glmsg.add_args(); + arg_srcRGB->set_isarray(false); + arg_srcRGB->set_type(GLMessage::DataType::ENUM); + arg_srcRGB->add_intvalue((int)srcRGB); + + // copy argument dstRGB + GLMessage_DataType *arg_dstRGB = glmsg.add_args(); + arg_dstRGB->set_isarray(false); + arg_dstRGB->set_type(GLMessage::DataType::ENUM); + arg_dstRGB->add_intvalue((int)dstRGB); + + // copy argument srcAlpha + GLMessage_DataType *arg_srcAlpha = glmsg.add_args(); + arg_srcAlpha->set_isarray(false); + arg_srcAlpha->set_type(GLMessage::DataType::ENUM); + arg_srcAlpha->add_intvalue((int)srcAlpha); + + // copy argument dstAlpha + GLMessage_DataType *arg_dstAlpha = glmsg.add_args(); + arg_dstAlpha->set_isarray(false); + arg_dstAlpha->set_type(GLMessage::DataType::ENUM); + arg_dstAlpha->add_intvalue((int)dstAlpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBufferData); + + // 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 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 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); + + // copy argument usage + GLMessage_DataType *arg_usage = glmsg.add_args(); + arg_usage->set_isarray(false); + arg_usage->set_type(GLMessage::DataType::ENUM); + arg_usage->add_intvalue((int)usage); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBufferData(target, size, data, usage); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid* data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBufferSubData); + + // 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((int)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((int)size); + + // copy argument data + GLMessage_DataType *arg_data = glmsg.add_args(); + arg_data->set_isarray(false); + arg_data->set_type(GLMessage::DataType::INT); + arg_data->add_intvalue((int)data); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBufferSubData(target, offset, size, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLenum GLTrace_glCheckFramebufferStatus(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCheckFramebufferStatus); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + GLenum retValue = glContext->hooks->gl.glCheckFramebufferStatus(target); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::ENUM); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glClear(GLbitfield mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClear); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClear(mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearColor); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::FLOAT); + arg_red->add_floatvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::FLOAT); + arg_green->add_floatvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::FLOAT); + arg_blue->add_floatvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::FLOAT); + arg_alpha->add_floatvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearColor(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearDepthf(GLclampf depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearDepthf); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearDepthf(depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearStencil(GLint s) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearStencil); + + // copy argument s + GLMessage_DataType *arg_s = glmsg.add_args(); + arg_s->set_isarray(false); + arg_s->set_type(GLMessage::DataType::INT); + arg_s->add_intvalue(s); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearStencil(s); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColorMask); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::BOOL); + arg_red->add_boolvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::BOOL); + arg_green->add_boolvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::BOOL); + arg_blue->add_boolvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::BOOL); + arg_alpha->add_boolvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glColorMask(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCompileShader(GLuint shader) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCompileShader); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCompileShader(shader); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCompressedTexImage2D); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCompressedTexSubImage2D); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument format + GLMessage_DataType *arg_format = glmsg.add_args(); + arg_format->set_isarray(false); + arg_format->set_type(GLMessage::DataType::ENUM); + arg_format->add_intvalue((int)format); + + // copy argument 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 start_time = systemTime(); + glContext->hooks->gl.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCopyTexImage2D); + + // 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 x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCopyTexImage2D(target, level, internalformat, x, y, width, height, border); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCopyTexSubImage2D); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLuint GLTrace_glCreateProgram(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCreateProgram); + + // call function + nsecs_t start_time = systemTime(); + GLuint retValue = glContext->hooks->gl.glCreateProgram(); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLuint GLTrace_glCreateShader(GLenum type) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCreateShader); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + GLuint retValue = glContext->hooks->gl.glCreateShader(type); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glCullFace(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCullFace); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCullFace(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteBuffers(GLsizei n, const GLuint* buffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteBuffers); + + // 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 buffers + GLMessage_DataType *arg_buffers = glmsg.add_args(); + arg_buffers->set_isarray(false); + arg_buffers->set_type(GLMessage::DataType::INT); + arg_buffers->add_intvalue((int)buffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteBuffers(n, buffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteFramebuffers); + + // 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 framebuffers + GLMessage_DataType *arg_framebuffers = glmsg.add_args(); + arg_framebuffers->set_isarray(false); + arg_framebuffers->set_type(GLMessage::DataType::INT); + arg_framebuffers->add_intvalue((int)framebuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteFramebuffers(n, framebuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteProgram(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteProgram); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteProgram(program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteRenderbuffers); + + // 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 renderbuffers + GLMessage_DataType *arg_renderbuffers = glmsg.add_args(); + arg_renderbuffers->set_isarray(false); + arg_renderbuffers->set_type(GLMessage::DataType::INT); + arg_renderbuffers->add_intvalue((int)renderbuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteRenderbuffers(n, renderbuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteShader(GLuint shader) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteShader); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteShader(shader); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteTextures(GLsizei n, const GLuint* textures) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteTextures); + + // 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 textures + GLMessage_DataType *arg_textures = glmsg.add_args(); + arg_textures->set_isarray(false); + arg_textures->set_type(GLMessage::DataType::INT); + arg_textures->add_intvalue((int)textures); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteTextures(n, textures); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDepthFunc(GLenum func) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDepthFunc); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthFunc(func); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDepthMask(GLboolean flag) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDepthMask); + + // copy argument flag + GLMessage_DataType *arg_flag = glmsg.add_args(); + arg_flag->set_isarray(false); + arg_flag->set_type(GLMessage::DataType::BOOL); + arg_flag->add_boolvalue(flag); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthMask(flag); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDepthRangef(GLclampf zNear, GLclampf zFar) { + 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthRangef(zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDetachShader(GLuint program, GLuint shader) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDetachShader); + + // 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 shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDetachShader(program, shader); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDisable(GLenum cap) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDisable); + + // copy argument cap + GLMessage_DataType *arg_cap = glmsg.add_args(); + arg_cap->set_isarray(false); + arg_cap->set_type(GLMessage::DataType::ENUM); + arg_cap->add_intvalue((int)cap); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDisable(cap); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDisableVertexAttribArray(GLuint index) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDisableVertexAttribArray); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glDisableVertexAttribArray(index); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawArrays(GLenum mode, GLint first, GLsizei count) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawArrays); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawArrays(mode, first, count); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawElements); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawElements(mode, count, type, indices); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEnable(GLenum cap) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEnable); + + // copy argument cap + GLMessage_DataType *arg_cap = glmsg.add_args(); + arg_cap->set_isarray(false); + arg_cap->set_type(GLMessage::DataType::ENUM); + arg_cap->add_intvalue((int)cap); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEnable(cap); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEnableVertexAttribArray(GLuint index) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEnableVertexAttribArray); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glEnableVertexAttribArray(index); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFinish(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFinish); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFinish(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFlush(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFlush); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFlush(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferRenderbuffer); + + // 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 renderbuffertarget + GLMessage_DataType *arg_renderbuffertarget = glmsg.add_args(); + arg_renderbuffertarget->set_isarray(false); + arg_renderbuffertarget->set_type(GLMessage::DataType::ENUM); + arg_renderbuffertarget->add_intvalue((int)renderbuffertarget); + + // copy argument renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture2D); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture2D(target, attachment, textarget, texture, level); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFrontFace(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFrontFace); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFrontFace(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenBuffers(GLsizei n, GLuint* buffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenBuffers); + + // 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 buffers + GLMessage_DataType *arg_buffers = glmsg.add_args(); + arg_buffers->set_isarray(false); + arg_buffers->set_type(GLMessage::DataType::INT); + arg_buffers->add_intvalue((int)buffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenBuffers(n, buffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenerateMipmap(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenerateMipmap); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenerateMipmap(target); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenFramebuffers(GLsizei n, GLuint* framebuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenFramebuffers); + + // 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 framebuffers + GLMessage_DataType *arg_framebuffers = glmsg.add_args(); + arg_framebuffers->set_isarray(false); + arg_framebuffers->set_type(GLMessage::DataType::INT); + arg_framebuffers->add_intvalue((int)framebuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenFramebuffers(n, framebuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenRenderbuffers); + + // 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 renderbuffers + GLMessage_DataType *arg_renderbuffers = glmsg.add_args(); + arg_renderbuffers->set_isarray(false); + arg_renderbuffers->set_type(GLMessage::DataType::INT); + arg_renderbuffers->add_intvalue((int)renderbuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenRenderbuffers(n, renderbuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenTextures(GLsizei n, GLuint* textures) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenTextures); + + // 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 textures + GLMessage_DataType *arg_textures = glmsg.add_args(); + arg_textures->set_isarray(false); + arg_textures->set_type(GLMessage::DataType::INT); + arg_textures->add_intvalue((int)textures); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenTextures(n, textures); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetActiveAttrib); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetActiveAttrib(program, index, bufsize, length, size, type, name); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetActiveUniform); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetActiveUniform(program, index, bufsize, length, size, type, name); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetAttachedShaders); + + // 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 maxcount + GLMessage_DataType *arg_maxcount = glmsg.add_args(); + arg_maxcount->set_isarray(false); + arg_maxcount->set_type(GLMessage::DataType::INT); + arg_maxcount->add_intvalue(maxcount); + + // 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((int)count); + + // copy argument shaders + GLMessage_DataType *arg_shaders = glmsg.add_args(); + arg_shaders->set_isarray(false); + arg_shaders->set_type(GLMessage::DataType::INT); + arg_shaders->add_intvalue((int)shaders); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetAttachedShaders(program, maxcount, count, shaders); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +int GLTrace_glGetAttribLocation(GLuint program, const GLchar* name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetAttribLocation); + + // 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 start_time = systemTime(); + int retValue = glContext->hooks->gl.glGetAttribLocation(program, name); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetBooleanv(GLenum pname, GLboolean* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetBooleanv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetBooleanv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetBufferParameteriv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetBufferParameteriv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLenum GLTrace_glGetError(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetError); + + // call function + nsecs_t start_time = systemTime(); + GLenum retValue = glContext->hooks->gl.glGetError(); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::ENUM); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetFloatv(GLenum pname, GLfloat* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFloatv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFloatv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFramebufferAttachmentParameteriv); + + // 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 pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFramebufferAttachmentParameteriv(target, attachment, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetIntegerv(GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetIntegerv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetIntegerv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramiv(GLuint program, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramiv); + + // 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 params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramiv(program, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramInfoLog); + + // 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 infolog + GLMessage_DataType *arg_infolog = glmsg.add_args(); + arg_infolog->set_isarray(false); + arg_infolog->set_type(GLMessage::DataType::INT); + arg_infolog->add_intvalue((int)infolog); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramInfoLog(program, bufsize, length, infolog); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetRenderbufferParameteriv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetRenderbufferParameteriv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetShaderiv(GLuint shader, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetShaderiv); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetShaderiv(shader, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetShaderInfoLog); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // copy argument bufsize + GLMessage_DataType *arg_bufsize = glmsg.add_args(); + arg_bufsize->set_isarray(false); + arg_bufsize->set_type(GLMessage::DataType::INT); + arg_bufsize->add_intvalue(bufsize); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue((int)length); + + // copy argument infolog + GLMessage_DataType *arg_infolog = glmsg.add_args(); + arg_infolog->set_isarray(false); + arg_infolog->set_type(GLMessage::DataType::INT); + arg_infolog->add_intvalue((int)infolog); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetShaderInfoLog(shader, bufsize, length, infolog); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetShaderPrecisionFormat); + + // copy argument shadertype + GLMessage_DataType *arg_shadertype = glmsg.add_args(); + arg_shadertype->set_isarray(false); + arg_shadertype->set_type(GLMessage::DataType::ENUM); + arg_shadertype->add_intvalue((int)shadertype); + + // copy argument precisiontype + GLMessage_DataType *arg_precisiontype = glmsg.add_args(); + arg_precisiontype->set_isarray(false); + arg_precisiontype->set_type(GLMessage::DataType::ENUM); + arg_precisiontype->add_intvalue((int)precisiontype); + + // copy argument range + GLMessage_DataType *arg_range = glmsg.add_args(); + arg_range->set_isarray(false); + arg_range->set_type(GLMessage::DataType::INT); + arg_range->add_intvalue((int)range); + + // copy argument precision + GLMessage_DataType *arg_precision = glmsg.add_args(); + arg_precision->set_isarray(false); + arg_precision->set_type(GLMessage::DataType::INT); + arg_precision->add_intvalue((int)precision); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetShaderPrecisionFormat(shadertype, precisiontype, range, precision); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetShaderSource); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // 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 source + GLMessage_DataType *arg_source = glmsg.add_args(); + arg_source->set_isarray(false); + arg_source->set_type(GLMessage::DataType::INT); + arg_source->add_intvalue((int)source); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetShaderSource(shader, bufsize, length, source); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +const GLubyte* GLTrace_glGetString(GLenum name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetString); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + const GLubyte* retValue = glContext->hooks->gl.glGetString(name); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexParameterfv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexParameterfv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexParameteriv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexParameteriv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetUniformfv(GLuint program, GLint location, GLfloat* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetUniformfv); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetUniformfv(program, location, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetUniformiv(GLuint program, GLint location, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetUniformiv); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetUniformiv(program, location, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +int GLTrace_glGetUniformLocation(GLuint program, const GLchar* name) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetUniformLocation); + + // 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 start_time = systemTime(); + int retValue = glContext->hooks->gl.glGetUniformLocation(program, name); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetVertexAttribfv); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetVertexAttribfv(index, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetVertexAttribiv); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetVertexAttribiv(index, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetVertexAttribPointerv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glGetVertexAttribPointerv(index, pname, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glHint(GLenum target, GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glHint); + + // 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 mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glHint(target, mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsBuffer(GLuint buffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsBuffer); + + // 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 start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsBuffer(buffer); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsEnabled(GLenum cap) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsEnabled); + + // copy argument cap + GLMessage_DataType *arg_cap = glmsg.add_args(); + arg_cap->set_isarray(false); + arg_cap->set_type(GLMessage::DataType::ENUM); + arg_cap->add_intvalue((int)cap); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsEnabled(cap); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsFramebuffer(GLuint framebuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsFramebuffer); + + // copy argument framebuffer + GLMessage_DataType *arg_framebuffer = glmsg.add_args(); + arg_framebuffer->set_isarray(false); + arg_framebuffer->set_type(GLMessage::DataType::INT); + arg_framebuffer->add_intvalue(framebuffer); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsFramebuffer(framebuffer); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsProgram(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsProgram); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsProgram(program); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsRenderbuffer(GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsRenderbuffer); + + // copy argument renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsRenderbuffer(renderbuffer); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsShader(GLuint shader) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsShader); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsShader(shader); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glIsTexture(GLuint texture) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsTexture); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsTexture(texture); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glLineWidth(GLfloat width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLineWidth); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::FLOAT); + arg_width->add_floatvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLineWidth(width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLinkProgram(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLinkProgram); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLinkProgram(program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPixelStorei(GLenum pname, GLint param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPixelStorei); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPixelStorei(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPolygonOffset(GLfloat factor, GLfloat units) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPolygonOffset); + + // copy argument factor + GLMessage_DataType *arg_factor = glmsg.add_args(); + arg_factor->set_isarray(false); + arg_factor->set_type(GLMessage::DataType::FLOAT); + arg_factor->add_floatvalue(factor); + + // copy argument units + GLMessage_DataType *arg_units = glmsg.add_args(); + arg_units->set_isarray(false); + arg_units->set_type(GLMessage::DataType::FLOAT); + arg_units->add_floatvalue(units); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPolygonOffset(factor, units); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid* pixels) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glReadPixels); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument format + GLMessage_DataType *arg_format = glmsg.add_args(); + arg_format->set_isarray(false); + arg_format->set_type(GLMessage::DataType::ENUM); + arg_format->add_intvalue((int)format); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument 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 start_time = systemTime(); + glContext->hooks->gl.glReadPixels(x, y, width, height, format, type, pixels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glReleaseShaderCompiler(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glReleaseShaderCompiler); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glReleaseShaderCompiler(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorage); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorage(target, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glSampleCoverage(GLclampf value, GLboolean invert) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glSampleCoverage); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::FLOAT); + arg_value->add_floatvalue(value); + + // copy argument invert + GLMessage_DataType *arg_invert = glmsg.add_args(); + arg_invert->set_isarray(false); + arg_invert->set_type(GLMessage::DataType::BOOL); + arg_invert->add_boolvalue(invert); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glSampleCoverage(value, invert); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glScissor(GLint x, GLint y, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glScissor); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glScissor(x, y, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glShaderBinary(GLsizei n, const GLuint* shaders, GLenum binaryformat, const GLvoid* binary, GLsizei length) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glShaderBinary); + + // 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 shaders + GLMessage_DataType *arg_shaders = glmsg.add_args(); + arg_shaders->set_isarray(false); + arg_shaders->set_type(GLMessage::DataType::INT); + arg_shaders->add_intvalue((int)shaders); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glShaderBinary(n, shaders, binaryformat, binary, length); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glShaderSource(GLuint shader, GLsizei count, const GLchar** string, const GLint* length) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glShaderSource); + + // copy argument shader + GLMessage_DataType *arg_shader = glmsg.add_args(); + arg_shader->set_isarray(false); + arg_shader->set_type(GLMessage::DataType::INT); + arg_shader->add_intvalue(shader); + + // 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 string + GLMessage_DataType *arg_string = glmsg.add_args(); + arg_string->set_isarray(false); + arg_string->set_type(GLMessage::DataType::INT); + arg_string->add_intvalue((int)string); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glShaderSource(shader, count, string, length); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilFunc(GLenum func, GLint ref, GLuint mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilFunc); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::INT); + arg_ref->add_intvalue(ref); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilFunc(func, ref, mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilFuncSeparate); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::INT); + arg_ref->add_intvalue(ref); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilFuncSeparate(face, func, ref, mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilMask(GLuint mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilMask); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilMask(mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilMaskSeparate(GLenum face, GLuint mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilMaskSeparate); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilMaskSeparate(face, mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilOp); + + // copy argument fail + GLMessage_DataType *arg_fail = glmsg.add_args(); + arg_fail->set_isarray(false); + arg_fail->set_type(GLMessage::DataType::ENUM); + arg_fail->add_intvalue((int)fail); + + // copy argument zfail + GLMessage_DataType *arg_zfail = glmsg.add_args(); + arg_zfail->set_isarray(false); + arg_zfail->set_type(GLMessage::DataType::ENUM); + arg_zfail->add_intvalue((int)zfail); + + // copy argument zpass + GLMessage_DataType *arg_zpass = glmsg.add_args(); + arg_zpass->set_isarray(false); + arg_zpass->set_type(GLMessage::DataType::ENUM); + arg_zpass->add_intvalue((int)zpass); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilOp(fail, zfail, zpass); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStencilOpSeparate); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument fail + GLMessage_DataType *arg_fail = glmsg.add_args(); + arg_fail->set_isarray(false); + arg_fail->set_type(GLMessage::DataType::ENUM); + arg_fail->add_intvalue((int)fail); + + // copy argument zfail + GLMessage_DataType *arg_zfail = glmsg.add_args(); + arg_zfail->set_isarray(false); + arg_zfail->set_type(GLMessage::DataType::ENUM); + arg_zfail->add_intvalue((int)zfail); + + // copy argument zpass + GLMessage_DataType *arg_zpass = glmsg.add_args(); + arg_zpass->set_isarray(false); + arg_zpass->set_type(GLMessage::DataType::ENUM); + arg_zpass->add_intvalue((int)zpass); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStencilOpSeparate(face, fail, zfail, zpass); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexImage2D); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterf(GLenum target, GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterf); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexParameterf(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterfv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexParameterfv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameteri(GLenum target, GLenum pname, GLint param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameteri); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexParameteri(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameteriv(GLenum target, GLenum pname, const GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameteriv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexParameteriv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexSubImage2D); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument format + GLMessage_DataType *arg_format = glmsg.add_args(); + arg_format->set_isarray(false); + arg_format->set_type(GLMessage::DataType::ENUM); + arg_format->add_intvalue((int)format); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument 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 start_time = systemTime(); + glContext->hooks->gl.glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform1f(GLint location, GLfloat x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform1f); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform1f(location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform1fv(GLint location, GLsizei count, const GLfloat* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform1fv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform1fv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform1i(GLint location, GLint x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform1i); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform1i(location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform1iv(GLint location, GLsizei count, const GLint* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform1iv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform1iv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform2f(GLint location, GLfloat x, GLfloat y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform2f); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform2f(location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform2fv(GLint location, GLsizei count, const GLfloat* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform2fv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform2fv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform2i(GLint location, GLint x, GLint y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform2i); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform2i(location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform2iv(GLint location, GLsizei count, const GLint* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform2iv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform2iv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform3f); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform3f(location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform3fv(GLint location, GLsizei count, const GLfloat* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform3fv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform3fv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform3i(GLint location, GLint x, GLint y, GLint z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform3i); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform3i(location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform3iv(GLint location, GLsizei count, const GLint* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform3iv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform3iv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform4f); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::FLOAT); + arg_w->add_floatvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform4f(location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform4fv(GLint location, GLsizei count, const GLfloat* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform4fv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform4fv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform4i); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::INT); + arg_w->add_intvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniform4i(location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniform4iv(GLint location, GLsizei count, const GLint* v) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniform4iv); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glUniform4iv(location, count, v); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniformMatrix2fv); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniformMatrix2fv(location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniformMatrix3fv); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniformMatrix3fv(location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUniformMatrix4fv); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUniformMatrix4fv(location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUseProgram(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUseProgram); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUseProgram(program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glValidateProgram(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glValidateProgram); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glValidateProgram(program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib1f(GLuint indx, GLfloat x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib1f); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib1f(indx, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib1fv(GLuint indx, const GLfloat* values) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib1fv); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib1fv(indx, values); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib2f); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib2f(indx, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib2fv(GLuint indx, const GLfloat* values) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib2fv); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib2fv(indx, values); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib3f); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib3f(indx, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib3fv(GLuint indx, const GLfloat* values) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib3fv); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib3fv(indx, values); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib4f); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::FLOAT); + arg_w->add_floatvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib4f(indx, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttrib4fv(GLuint indx, const GLfloat* values) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttrib4fv); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glVertexAttrib4fv(indx, values); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid* ptr) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexAttribPointer); + + // copy argument indx + GLMessage_DataType *arg_indx = glmsg.add_args(); + arg_indx->set_isarray(false); + arg_indx->set_type(GLMessage::DataType::INT); + arg_indx->add_intvalue(indx); + + // 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 normalized + GLMessage_DataType *arg_normalized = glmsg.add_args(); + arg_normalized->set_isarray(false); + arg_normalized->set_type(GLMessage::DataType::BOOL); + arg_normalized->add_boolvalue(normalized); + + // 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 ptr + GLMessage_DataType *arg_ptr = glmsg.add_args(); + arg_ptr->set_isarray(false); + arg_ptr->set_type(GLMessage::DataType::INT); + arg_ptr->add_intvalue((int)ptr); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glVertexAttribPointer(indx, size, type, normalized, stride, ptr); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glViewport(GLint x, GLint y, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glViewport); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glViewport(x, y, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + + +// Definitions for GL2Ext APIs + +void GLTrace_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEGLImageTargetTexture2DOES); + + // 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 image + GLMessage_DataType *arg_image = glmsg.add_args(); + arg_image->set_isarray(false); + arg_image->set_type(GLMessage::DataType::INT); + arg_image->add_intvalue((int)image); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEGLImageTargetTexture2DOES(target, image); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEGLImageTargetRenderbufferStorageOES); + + // 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 image + GLMessage_DataType *arg_image = glmsg.add_args(); + arg_image->set_isarray(false); + arg_image->set_type(GLMessage::DataType::INT); + arg_image->add_intvalue((int)image); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEGLImageTargetRenderbufferStorageOES(target, image); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramBinaryOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGetProgramBinaryOES(program, bufSize, length, binaryFormat, binary); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramBinaryOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glProgramBinaryOES(program, binaryFormat, binary, length); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void* GLTrace_glMapBufferOES(GLenum target, GLenum access) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMapBufferOES); + + // 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 access + GLMessage_DataType *arg_access = glmsg.add_args(); + arg_access->set_isarray(false); + arg_access->set_type(GLMessage::DataType::ENUM); + arg_access->add_intvalue((int)access); + + // call function + nsecs_t start_time = systemTime(); + void* retValue = glContext->hooks->gl.glMapBufferOES(target, access); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glUnmapBufferOES(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUnmapBufferOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glUnmapBufferOES(target); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid** params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetBufferPointervOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetBufferPointervOES(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexImage3DOES(GLenum target, GLint level, GLenum 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::glTexImage3DOES); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexImage3DOES(target, level, internalformat, width, height, depth, border, format, type, pixels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexSubImage3DOES(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::glTexSubImage3DOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCopyTexSubImage3DOES(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::glCopyTexSubImage3DOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glCopyTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, x, y, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCompressedTexImage3DOES(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::glCompressedTexImage3DOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glCompressedTexImage3DOES(target, level, internalformat, width, height, depth, border, imageSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCompressedTexSubImage3DOES(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::glCompressedTexSubImage3DOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glCompressedTexSubImage3DOES(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture3DOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // copy argument 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture3DOES(target, attachment, textarget, texture, level, zoffset); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBindVertexArrayOES(GLuint array) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindVertexArrayOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glBindVertexArrayOES(array); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteVertexArraysOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glDeleteVertexArraysOES(n, arrays); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenVertexArraysOES(GLsizei n, GLuint *arrays) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenVertexArraysOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glGenVertexArraysOES(n, arrays); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsVertexArrayOES(GLuint array) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsVertexArrayOES); + + // 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 start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsVertexArrayOES(array); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorGroupsAMD); + + // copy argument numGroups + GLMessage_DataType *arg_numGroups = glmsg.add_args(); + arg_numGroups->set_isarray(false); + arg_numGroups->set_type(GLMessage::DataType::INT); + arg_numGroups->add_intvalue((int)numGroups); + + // copy argument groupsSize + GLMessage_DataType *arg_groupsSize = glmsg.add_args(); + arg_groupsSize->set_isarray(false); + arg_groupsSize->set_type(GLMessage::DataType::INT); + arg_groupsSize->add_intvalue(groupsSize); + + // copy argument groups + GLMessage_DataType *arg_groups = glmsg.add_args(); + arg_groups->set_isarray(false); + arg_groups->set_type(GLMessage::DataType::INT); + arg_groups->add_intvalue((int)groups); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorGroupsAMD(numGroups, groupsSize, groups); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorCountersAMD); + + // copy argument group + GLMessage_DataType *arg_group = glmsg.add_args(); + arg_group->set_isarray(false); + arg_group->set_type(GLMessage::DataType::INT); + arg_group->add_intvalue(group); + + // copy argument numCounters + GLMessage_DataType *arg_numCounters = glmsg.add_args(); + arg_numCounters->set_isarray(false); + arg_numCounters->set_type(GLMessage::DataType::INT); + arg_numCounters->add_intvalue((int)numCounters); + + // copy argument maxActiveCounters + GLMessage_DataType *arg_maxActiveCounters = glmsg.add_args(); + arg_maxActiveCounters->set_isarray(false); + arg_maxActiveCounters->set_type(GLMessage::DataType::INT); + arg_maxActiveCounters->add_intvalue((int)maxActiveCounters); + + // copy argument counterSize + GLMessage_DataType *arg_counterSize = glmsg.add_args(); + arg_counterSize->set_isarray(false); + arg_counterSize->set_type(GLMessage::DataType::INT); + arg_counterSize->add_intvalue(counterSize); + + // copy argument counters + GLMessage_DataType *arg_counters = glmsg.add_args(); + arg_counters->set_isarray(false); + arg_counters->set_type(GLMessage::DataType::INT); + arg_counters->add_intvalue((int)counters); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorCountersAMD(group, numCounters, maxActiveCounters, counterSize, counters); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorGroupStringAMD); + + // copy argument group + GLMessage_DataType *arg_group = glmsg.add_args(); + arg_group->set_isarray(false); + arg_group->set_type(GLMessage::DataType::INT); + arg_group->add_intvalue(group); + + // 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 groupString + GLMessage_DataType *arg_groupString = glmsg.add_args(); + arg_groupString->set_isarray(false); + arg_groupString->set_type(GLMessage::DataType::INT); + arg_groupString->add_intvalue((int)groupString); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorGroupStringAMD(group, bufSize, length, groupString); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorCounterStringAMD); + + // copy argument group + GLMessage_DataType *arg_group = glmsg.add_args(); + arg_group->set_isarray(false); + arg_group->set_type(GLMessage::DataType::INT); + arg_group->add_intvalue(group); + + // copy argument counter + GLMessage_DataType *arg_counter = glmsg.add_args(); + arg_counter->set_isarray(false); + arg_counter->set_type(GLMessage::DataType::INT); + arg_counter->add_intvalue(counter); + + // 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 counterString + GLMessage_DataType *arg_counterString = glmsg.add_args(); + arg_counterString->set_isarray(false); + arg_counterString->set_type(GLMessage::DataType::INT); + arg_counterString->add_intvalue((int)counterString); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorCounterStringAMD(group, counter, bufSize, length, counterString); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorCounterInfoAMD); + + // copy argument group + GLMessage_DataType *arg_group = glmsg.add_args(); + arg_group->set_isarray(false); + arg_group->set_type(GLMessage::DataType::INT); + arg_group->add_intvalue(group); + + // copy argument counter + GLMessage_DataType *arg_counter = glmsg.add_args(); + arg_counter->set_isarray(false); + arg_counter->set_type(GLMessage::DataType::INT); + arg_counter->add_intvalue(counter); + + // 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 data + GLMessage_DataType *arg_data = glmsg.add_args(); + arg_data->set_isarray(false); + arg_data->set_type(GLMessage::DataType::INT); + arg_data->add_intvalue((int)data); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorCounterInfoAMD(group, counter, pname, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenPerfMonitorsAMD); + + // 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 monitors + GLMessage_DataType *arg_monitors = glmsg.add_args(); + arg_monitors->set_isarray(false); + arg_monitors->set_type(GLMessage::DataType::INT); + arg_monitors->add_intvalue((int)monitors); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenPerfMonitorsAMD(n, monitors); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeletePerfMonitorsAMD); + + // 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 monitors + GLMessage_DataType *arg_monitors = glmsg.add_args(); + arg_monitors->set_isarray(false); + arg_monitors->set_type(GLMessage::DataType::INT); + arg_monitors->add_intvalue((int)monitors); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeletePerfMonitorsAMD(n, monitors); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glSelectPerfMonitorCountersAMD); + + // copy argument monitor + GLMessage_DataType *arg_monitor = glmsg.add_args(); + arg_monitor->set_isarray(false); + arg_monitor->set_type(GLMessage::DataType::INT); + arg_monitor->add_intvalue(monitor); + + // copy argument enable + GLMessage_DataType *arg_enable = glmsg.add_args(); + arg_enable->set_isarray(false); + arg_enable->set_type(GLMessage::DataType::BOOL); + arg_enable->add_boolvalue(enable); + + // copy argument group + GLMessage_DataType *arg_group = glmsg.add_args(); + arg_group->set_isarray(false); + arg_group->set_type(GLMessage::DataType::INT); + arg_group->add_intvalue(group); + + // copy argument numCounters + GLMessage_DataType *arg_numCounters = glmsg.add_args(); + arg_numCounters->set_isarray(false); + arg_numCounters->set_type(GLMessage::DataType::INT); + arg_numCounters->add_intvalue(numCounters); + + // copy argument countersList + GLMessage_DataType *arg_countersList = glmsg.add_args(); + arg_countersList->set_isarray(false); + arg_countersList->set_type(GLMessage::DataType::INT); + arg_countersList->add_intvalue((int)countersList); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glSelectPerfMonitorCountersAMD(monitor, enable, group, numCounters, countersList); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBeginPerfMonitorAMD(GLuint monitor) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBeginPerfMonitorAMD); + + // copy argument monitor + GLMessage_DataType *arg_monitor = glmsg.add_args(); + arg_monitor->set_isarray(false); + arg_monitor->set_type(GLMessage::DataType::INT); + arg_monitor->add_intvalue(monitor); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBeginPerfMonitorAMD(monitor); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEndPerfMonitorAMD(GLuint monitor) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEndPerfMonitorAMD); + + // copy argument monitor + GLMessage_DataType *arg_monitor = glmsg.add_args(); + arg_monitor->set_isarray(false); + arg_monitor->set_type(GLMessage::DataType::INT); + arg_monitor->add_intvalue(monitor); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEndPerfMonitorAMD(monitor); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPerfMonitorCounterDataAMD); + + // copy argument monitor + GLMessage_DataType *arg_monitor = glmsg.add_args(); + arg_monitor->set_isarray(false); + arg_monitor->set_type(GLMessage::DataType::INT); + arg_monitor->add_intvalue(monitor); + + // 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 dataSize + GLMessage_DataType *arg_dataSize = glmsg.add_args(); + arg_dataSize->set_isarray(false); + arg_dataSize->set_type(GLMessage::DataType::INT); + arg_dataSize->add_intvalue(dataSize); + + // 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); + + // copy argument bytesWritten + GLMessage_DataType *arg_bytesWritten = glmsg.add_args(); + arg_bytesWritten->set_isarray(false); + arg_bytesWritten->set_type(GLMessage::DataType::INT); + arg_bytesWritten->add_intvalue((int)bytesWritten); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPerfMonitorCounterDataAMD(monitor, pname, dataSize, data, bytesWritten); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlitFramebufferANGLE); + + // copy argument srcX0 + GLMessage_DataType *arg_srcX0 = glmsg.add_args(); + arg_srcX0->set_isarray(false); + arg_srcX0->set_type(GLMessage::DataType::INT); + arg_srcX0->add_intvalue(srcX0); + + // copy argument srcY0 + GLMessage_DataType *arg_srcY0 = glmsg.add_args(); + arg_srcY0->set_isarray(false); + arg_srcY0->set_type(GLMessage::DataType::INT); + arg_srcY0->add_intvalue(srcY0); + + // copy argument srcX1 + GLMessage_DataType *arg_srcX1 = glmsg.add_args(); + arg_srcX1->set_isarray(false); + arg_srcX1->set_type(GLMessage::DataType::INT); + arg_srcX1->add_intvalue(srcX1); + + // copy argument srcY1 + GLMessage_DataType *arg_srcY1 = glmsg.add_args(); + arg_srcY1->set_isarray(false); + arg_srcY1->set_type(GLMessage::DataType::INT); + arg_srcY1->add_intvalue(srcY1); + + // copy argument dstX0 + GLMessage_DataType *arg_dstX0 = glmsg.add_args(); + arg_dstX0->set_isarray(false); + arg_dstX0->set_type(GLMessage::DataType::INT); + arg_dstX0->add_intvalue(dstX0); + + // copy argument dstY0 + GLMessage_DataType *arg_dstY0 = glmsg.add_args(); + arg_dstY0->set_isarray(false); + arg_dstY0->set_type(GLMessage::DataType::INT); + arg_dstY0->add_intvalue(dstY0); + + // copy argument dstX1 + GLMessage_DataType *arg_dstX1 = glmsg.add_args(); + arg_dstX1->set_isarray(false); + arg_dstX1->set_type(GLMessage::DataType::INT); + arg_dstX1->add_intvalue(dstX1); + + // copy argument dstY1 + GLMessage_DataType *arg_dstY1 = glmsg.add_args(); + arg_dstY1->set_isarray(false); + arg_dstY1->set_type(GLMessage::DataType::INT); + arg_dstY1->add_intvalue(dstY1); + + // copy argument mask + GLMessage_DataType *arg_mask = glmsg.add_args(); + arg_mask->set_isarray(false); + arg_mask->set_type(GLMessage::DataType::INT); + arg_mask->add_intvalue(mask); + + // copy argument filter + GLMessage_DataType *arg_filter = glmsg.add_args(); + arg_filter->set_isarray(false); + arg_filter->set_type(GLMessage::DataType::ENUM); + arg_filter->add_intvalue((int)filter); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlitFramebufferANGLE(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleANGLE); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleANGLE(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleAPPLE); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleAPPLE(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glResolveMultisampleFramebufferAPPLE(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glResolveMultisampleFramebufferAPPLE); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glResolveMultisampleFramebufferAPPLE(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLabelObjectEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument object + GLMessage_DataType *arg_object = glmsg.add_args(); + arg_object->set_isarray(false); + arg_object->set_type(GLMessage::DataType::INT); + arg_object->add_intvalue(object); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument label + GLMessage_DataType *arg_label = glmsg.add_args(); + arg_label->set_isarray(false); + arg_label->set_type(GLMessage::DataType::INT); + arg_label->add_intvalue((int)label); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLabelObjectEXT(type, object, length, label); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetObjectLabelEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument object + GLMessage_DataType *arg_object = glmsg.add_args(); + arg_object->set_isarray(false); + arg_object->set_type(GLMessage::DataType::INT); + arg_object->add_intvalue(object); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue((int)length); + + // copy argument label + GLMessage_DataType *arg_label = glmsg.add_args(); + arg_label->set_isarray(false); + arg_label->set_type(GLMessage::DataType::INT); + arg_label->add_intvalue((int)label); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetObjectLabelEXT(type, object, bufSize, length, label); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glInsertEventMarkerEXT(GLsizei length, const GLchar *marker) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glInsertEventMarkerEXT); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument marker + GLMessage_DataType *arg_marker = glmsg.add_args(); + arg_marker->set_isarray(false); + arg_marker->set_type(GLMessage::DataType::INT); + arg_marker->add_intvalue((int)marker); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glInsertEventMarkerEXT(length, marker); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPushGroupMarkerEXT(GLsizei length, const GLchar *marker) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPushGroupMarkerEXT); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue(length); + + // copy argument marker + GLMessage_DataType *arg_marker = glmsg.add_args(); + arg_marker->set_isarray(false); + arg_marker->set_type(GLMessage::DataType::INT); + arg_marker->add_intvalue((int)marker); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPushGroupMarkerEXT(length, marker); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPopGroupMarkerEXT(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPopGroupMarkerEXT); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPopGroupMarkerEXT(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDiscardFramebufferEXT); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glDiscardFramebufferEXT(target, numAttachments, attachments); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture2DMultisampleEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture2DMultisampleEXT(target, attachment, textarget, texture, level, samples); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultiDrawArraysEXT); + + // 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((int)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((int)count); + + // copy argument primcount + GLMessage_DataType *arg_primcount = glmsg.add_args(); + arg_primcount->set_isarray(false); + arg_primcount->set_type(GLMessage::DataType::INT); + arg_primcount->add_intvalue(primcount); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultiDrawArraysEXT(mode, first, count, primcount); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultiDrawElementsEXT); + + // 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((int)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 primcount + GLMessage_DataType *arg_primcount = glmsg.add_args(); + arg_primcount->set_isarray(false); + arg_primcount->set_type(GLMessage::DataType::INT); + arg_primcount->add_intvalue(primcount); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultiDrawElementsEXT(mode, count, type, indices, primcount); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenQueriesEXT(GLsizei n, GLuint *ids) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenQueriesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument ids + GLMessage_DataType *arg_ids = glmsg.add_args(); + arg_ids->set_isarray(false); + arg_ids->set_type(GLMessage::DataType::INT); + arg_ids->add_intvalue((int)ids); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenQueriesEXT(n, ids); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteQueriesEXT(GLsizei n, const GLuint *ids) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteQueriesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument ids + GLMessage_DataType *arg_ids = glmsg.add_args(); + arg_ids->set_isarray(false); + arg_ids->set_type(GLMessage::DataType::INT); + arg_ids->add_intvalue((int)ids); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteQueriesEXT(n, ids); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsQueryEXT(GLuint id) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsQueryEXT); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsQueryEXT(id); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBeginQueryEXT(GLenum target, GLuint id) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBeginQueryEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBeginQueryEXT(target, id); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEndQueryEXT(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEndQueryEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEndQueryEXT(target); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetQueryivEXT(GLenum target, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetQueryivEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetQueryivEXT(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetQueryObjectuivEXT); + + // copy argument id + GLMessage_DataType *arg_id = glmsg.add_args(); + arg_id->set_isarray(false); + arg_id->set_type(GLMessage::DataType::INT); + arg_id->add_intvalue(id); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetQueryObjectuivEXT(id, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLenum GLTrace_glGetGraphicsResetStatusEXT(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetGraphicsResetStatusEXT); + + // call function + nsecs_t start_time = systemTime(); + GLenum retValue = glContext->hooks->gl.glGetGraphicsResetStatusEXT(); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::ENUM); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glReadnPixelsEXT); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument format + GLMessage_DataType *arg_format = glmsg.add_args(); + arg_format->set_isarray(false); + arg_format->set_type(GLMessage::DataType::ENUM); + arg_format->add_intvalue((int)format); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument data + GLMessage_DataType *arg_data = glmsg.add_args(); + arg_data->set_isarray(false); + arg_data->set_type(GLMessage::DataType::INT); + arg_data->add_intvalue((int)data); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glReadnPixelsEXT(x, y, width, height, format, type, bufSize, data); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, float *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetnUniformfvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetnUniformfvEXT(program, location, bufSize, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetnUniformivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetnUniformivEXT(program, location, bufSize, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glUseProgramStagesEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument stages + GLMessage_DataType *arg_stages = glmsg.add_args(); + arg_stages->set_isarray(false); + arg_stages->set_type(GLMessage::DataType::INT); + arg_stages->add_intvalue(stages); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glUseProgramStagesEXT(pipeline, stages, program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glActiveShaderProgramEXT(GLuint pipeline, GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glActiveShaderProgramEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glActiveShaderProgramEXT(pipeline, program); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLuint GLTrace_glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar **strings) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCreateShaderProgramvEXT); + + // copy argument type + GLMessage_DataType *arg_type = glmsg.add_args(); + arg_type->set_isarray(false); + arg_type->set_type(GLMessage::DataType::ENUM); + arg_type->add_intvalue((int)type); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument strings + GLMessage_DataType *arg_strings = glmsg.add_args(); + arg_strings->set_isarray(false); + arg_strings->set_type(GLMessage::DataType::INT); + arg_strings->add_intvalue((int)strings); + + // call function + nsecs_t start_time = systemTime(); + GLuint retValue = glContext->hooks->gl.glCreateShaderProgramvEXT(type, count, strings); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBindProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteProgramPipelinesEXT(GLsizei n, const GLuint *pipelines) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteProgramPipelinesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument pipelines + GLMessage_DataType *arg_pipelines = glmsg.add_args(); + arg_pipelines->set_isarray(false); + arg_pipelines->set_type(GLMessage::DataType::INT); + arg_pipelines->add_intvalue((int)pipelines); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteProgramPipelinesEXT(n, pipelines); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenProgramPipelinesEXT(GLsizei n, GLuint *pipelines) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenProgramPipelinesEXT); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument pipelines + GLMessage_DataType *arg_pipelines = glmsg.add_args(); + arg_pipelines->set_isarray(false); + arg_pipelines->set_type(GLMessage::DataType::INT); + arg_pipelines->add_intvalue((int)pipelines); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenProgramPipelinesEXT(n, pipelines); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramParameteriEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue(value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramParameteriEXT(program, pname, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramPipelineivEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramPipelineivEXT(pipeline, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1iEXT(GLuint program, GLint location, GLint x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1iEXT(program, location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2iEXT(GLuint program, GLint location, GLint x, GLint y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2iEXT(program, location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3iEXT(program, location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4iEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::INT); + arg_w->add_intvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4iEXT(program, location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat x) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1fEXT(program, location, x); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat x, GLfloat y) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2fEXT(program, location, x, y); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3fEXT(program, location, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4fEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // copy argument w + GLMessage_DataType *arg_w = glmsg.add_args(); + arg_w->set_isarray(false); + arg_w->set_type(GLMessage::DataType::FLOAT); + arg_w->add_floatvalue(w); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4fEXT(program, location, x, y, z, w); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4ivEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4ivEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform1fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform1fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform2fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform2fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform3fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform3fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniform4fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniform4fvEXT(program, location, count, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix2fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix2fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix3fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix3fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glProgramUniformMatrix4fvEXT); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // copy argument location + GLMessage_DataType *arg_location = glmsg.add_args(); + arg_location->set_isarray(false); + arg_location->set_type(GLMessage::DataType::INT); + arg_location->add_intvalue(location); + + // copy argument count + GLMessage_DataType *arg_count = glmsg.add_args(); + arg_count->set_isarray(false); + arg_count->set_type(GLMessage::DataType::INT); + arg_count->add_intvalue(count); + + // copy argument transpose + GLMessage_DataType *arg_transpose = glmsg.add_args(); + arg_transpose->set_isarray(false); + arg_transpose->set_type(GLMessage::DataType::BOOL); + arg_transpose->add_boolvalue(transpose); + + // copy argument value + GLMessage_DataType *arg_value = glmsg.add_args(); + arg_value->set_isarray(false); + arg_value->set_type(GLMessage::DataType::INT); + arg_value->add_intvalue((int)value); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glProgramUniformMatrix4fvEXT(program, location, count, transpose, value); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glValidateProgramPipelineEXT(GLuint pipeline) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glValidateProgramPipelineEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glValidateProgramPipelineEXT(pipeline); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetProgramPipelineInfoLogEXT); + + // copy argument pipeline + GLMessage_DataType *arg_pipeline = glmsg.add_args(); + arg_pipeline->set_isarray(false); + arg_pipeline->set_type(GLMessage::DataType::INT); + arg_pipeline->add_intvalue(pipeline); + + // copy argument bufSize + GLMessage_DataType *arg_bufSize = glmsg.add_args(); + arg_bufSize->set_isarray(false); + arg_bufSize->set_type(GLMessage::DataType::INT); + arg_bufSize->add_intvalue(bufSize); + + // copy argument length + GLMessage_DataType *arg_length = glmsg.add_args(); + arg_length->set_isarray(false); + arg_length->set_type(GLMessage::DataType::INT); + arg_length->add_intvalue((int)length); + + // copy argument infoLog + GLMessage_DataType *arg_infoLog = glmsg.add_args(); + arg_infoLog->set_isarray(false); + arg_infoLog->set_type(GLMessage::DataType::INT); + arg_infoLog->add_intvalue((int)infoLog); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetProgramPipelineInfoLogEXT(pipeline, bufSize, length, infoLog); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage1DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage1DEXT(target, levels, internalformat, width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage2DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage2DEXT(target, levels, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexStorage3DEXT); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexStorage3DEXT(target, levels, internalformat, width, height, depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage1DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage1DEXT(texture, target, levels, internalformat, width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage2DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage2DEXT(texture, target, levels, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTextureStorage3DEXT); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument levels + GLMessage_DataType *arg_levels = glmsg.add_args(); + arg_levels->set_isarray(false); + arg_levels->set_type(GLMessage::DataType::INT); + arg_levels->add_intvalue(levels); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTextureStorage3DEXT(texture, target, levels, internalformat, width, height, depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageMultisampleIMG); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // copy argument internalformat + GLMessage_DataType *arg_internalformat = glmsg.add_args(); + arg_internalformat->set_isarray(false); + arg_internalformat->set_type(GLMessage::DataType::ENUM); + arg_internalformat->add_intvalue((int)internalformat); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageMultisampleIMG(target, samples, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture2DMultisampleIMG); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // copy argument samples + GLMessage_DataType *arg_samples = glmsg.add_args(); + arg_samples->set_isarray(false); + arg_samples->set_type(GLMessage::DataType::INT); + arg_samples->add_intvalue(samples); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture2DMultisampleIMG(target, attachment, textarget, texture, level, samples); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCoverageMaskNV(GLboolean mask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCoverageMaskNV); + + // copy argument mask + GLMessage_DataType *arg_mask = glmsg.add_args(); + arg_mask->set_isarray(false); + arg_mask->set_type(GLMessage::DataType::BOOL); + arg_mask->add_boolvalue(mask); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCoverageMaskNV(mask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCoverageOperationNV(GLenum operation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCoverageOperationNV); + + // copy argument operation + GLMessage_DataType *arg_operation = glmsg.add_args(); + arg_operation->set_isarray(false); + arg_operation->set_type(GLMessage::DataType::ENUM); + arg_operation->add_intvalue((int)operation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCoverageOperationNV(operation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawBuffersNV(GLsizei n, const GLenum *bufs) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawBuffersNV); + + // copy argument n + GLMessage_DataType *arg_n = glmsg.add_args(); + arg_n->set_isarray(false); + arg_n->set_type(GLMessage::DataType::INT); + arg_n->add_intvalue(n); + + // copy argument bufs + GLMessage_DataType *arg_bufs = glmsg.add_args(); + arg_bufs->set_isarray(false); + arg_bufs->set_type(GLMessage::DataType::INT); + arg_bufs->add_intvalue((int)bufs); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawBuffersNV(n, bufs); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteFencesNV(GLsizei n, const GLuint *fences) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteFencesNV); + + // 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 fences + GLMessage_DataType *arg_fences = glmsg.add_args(); + arg_fences->set_isarray(false); + arg_fences->set_type(GLMessage::DataType::INT); + arg_fences->add_intvalue((int)fences); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteFencesNV(n, fences); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenFencesNV(GLsizei n, GLuint *fences) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenFencesNV); + + // 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 fences + GLMessage_DataType *arg_fences = glmsg.add_args(); + arg_fences->set_isarray(false); + arg_fences->set_type(GLMessage::DataType::INT); + arg_fences->add_intvalue((int)fences); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenFencesNV(n, fences); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsFenceNV(GLuint fence) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsFenceNV); + + // copy argument fence + GLMessage_DataType *arg_fence = glmsg.add_args(); + arg_fence->set_isarray(false); + arg_fence->set_type(GLMessage::DataType::INT); + arg_fence->add_intvalue(fence); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsFenceNV(fence); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +GLboolean GLTrace_glTestFenceNV(GLuint fence) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTestFenceNV); + + // copy argument fence + GLMessage_DataType *arg_fence = glmsg.add_args(); + arg_fence->set_isarray(false); + arg_fence->set_type(GLMessage::DataType::INT); + arg_fence->add_intvalue(fence); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glTestFenceNV(fence); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glGetFenceivNV(GLuint fence, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFenceivNV); + + // copy argument fence + GLMessage_DataType *arg_fence = glmsg.add_args(); + arg_fence->set_isarray(false); + arg_fence->set_type(GLMessage::DataType::INT); + arg_fence->add_intvalue(fence); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFenceivNV(fence, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFinishFenceNV(GLuint fence) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFinishFenceNV); + + // copy argument fence + GLMessage_DataType *arg_fence = glmsg.add_args(); + arg_fence->set_isarray(false); + arg_fence->set_type(GLMessage::DataType::INT); + arg_fence->add_intvalue(fence); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFinishFenceNV(fence); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glSetFenceNV(GLuint fence, GLenum condition) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glSetFenceNV); + + // copy argument fence + GLMessage_DataType *arg_fence = glmsg.add_args(); + arg_fence->set_isarray(false); + arg_fence->set_type(GLMessage::DataType::INT); + arg_fence->add_intvalue(fence); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glSetFenceNV(fence, condition); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glReadBufferNV(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glReadBufferNV); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glReadBufferNV(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glAlphaFuncQCOM(GLenum func, GLclampf ref) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glAlphaFuncQCOM); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::FLOAT); + arg_ref->add_floatvalue(ref); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glAlphaFuncQCOM(func, ref); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetDriverControlsQCOM); + + // copy argument num + GLMessage_DataType *arg_num = glmsg.add_args(); + arg_num->set_isarray(false); + arg_num->set_type(GLMessage::DataType::INT); + arg_num->add_intvalue((int)num); + + // 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 driverControls + GLMessage_DataType *arg_driverControls = glmsg.add_args(); + arg_driverControls->set_isarray(false); + arg_driverControls->set_type(GLMessage::DataType::INT); + arg_driverControls->add_intvalue((int)driverControls); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetDriverControlsQCOM(num, size, driverControls); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetDriverControlStringQCOM); + + // copy argument driverControl + GLMessage_DataType *arg_driverControl = glmsg.add_args(); + arg_driverControl->set_isarray(false); + arg_driverControl->set_type(GLMessage::DataType::INT); + arg_driverControl->add_intvalue(driverControl); + + // 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 driverControlString + GLMessage_DataType *arg_driverControlString = glmsg.add_args(); + arg_driverControlString->set_isarray(false); + arg_driverControlString->set_type(GLMessage::DataType::INT); + arg_driverControlString->add_intvalue((int)driverControlString); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetDriverControlStringQCOM(driverControl, bufSize, length, driverControlString); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEnableDriverControlQCOM(GLuint driverControl) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEnableDriverControlQCOM); + + // copy argument driverControl + GLMessage_DataType *arg_driverControl = glmsg.add_args(); + arg_driverControl->set_isarray(false); + arg_driverControl->set_type(GLMessage::DataType::INT); + arg_driverControl->add_intvalue(driverControl); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEnableDriverControlQCOM(driverControl); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDisableDriverControlQCOM(GLuint driverControl) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDisableDriverControlQCOM); + + // copy argument driverControl + GLMessage_DataType *arg_driverControl = glmsg.add_args(); + arg_driverControl->set_isarray(false); + arg_driverControl->set_type(GLMessage::DataType::INT); + arg_driverControl->add_intvalue(driverControl); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDisableDriverControlQCOM(driverControl); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetTexturesQCOM); + + // copy argument textures + GLMessage_DataType *arg_textures = glmsg.add_args(); + arg_textures->set_isarray(false); + arg_textures->set_type(GLMessage::DataType::INT); + arg_textures->add_intvalue((int)textures); + + // copy argument maxTextures + GLMessage_DataType *arg_maxTextures = glmsg.add_args(); + arg_maxTextures->set_isarray(false); + arg_maxTextures->set_type(GLMessage::DataType::INT); + arg_maxTextures->add_intvalue(maxTextures); + + // copy argument numTextures + GLMessage_DataType *arg_numTextures = glmsg.add_args(); + arg_numTextures->set_isarray(false); + arg_numTextures->set_type(GLMessage::DataType::INT); + arg_numTextures->add_intvalue((int)numTextures); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetTexturesQCOM(textures, maxTextures, numTextures); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetBuffersQCOM); + + // copy argument buffers + GLMessage_DataType *arg_buffers = glmsg.add_args(); + arg_buffers->set_isarray(false); + arg_buffers->set_type(GLMessage::DataType::INT); + arg_buffers->add_intvalue((int)buffers); + + // copy argument maxBuffers + GLMessage_DataType *arg_maxBuffers = glmsg.add_args(); + arg_maxBuffers->set_isarray(false); + arg_maxBuffers->set_type(GLMessage::DataType::INT); + arg_maxBuffers->add_intvalue(maxBuffers); + + // copy argument numBuffers + GLMessage_DataType *arg_numBuffers = glmsg.add_args(); + arg_numBuffers->set_isarray(false); + arg_numBuffers->set_type(GLMessage::DataType::INT); + arg_numBuffers->add_intvalue((int)numBuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetBuffersQCOM(buffers, maxBuffers, numBuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetRenderbuffersQCOM); + + // copy argument renderbuffers + GLMessage_DataType *arg_renderbuffers = glmsg.add_args(); + arg_renderbuffers->set_isarray(false); + arg_renderbuffers->set_type(GLMessage::DataType::INT); + arg_renderbuffers->add_intvalue((int)renderbuffers); + + // copy argument maxRenderbuffers + GLMessage_DataType *arg_maxRenderbuffers = glmsg.add_args(); + arg_maxRenderbuffers->set_isarray(false); + arg_maxRenderbuffers->set_type(GLMessage::DataType::INT); + arg_maxRenderbuffers->add_intvalue(maxRenderbuffers); + + // copy argument numRenderbuffers + GLMessage_DataType *arg_numRenderbuffers = glmsg.add_args(); + arg_numRenderbuffers->set_isarray(false); + arg_numRenderbuffers->set_type(GLMessage::DataType::INT); + arg_numRenderbuffers->add_intvalue((int)numRenderbuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetRenderbuffersQCOM(renderbuffers, maxRenderbuffers, numRenderbuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetFramebuffersQCOM); + + // copy argument framebuffers + GLMessage_DataType *arg_framebuffers = glmsg.add_args(); + arg_framebuffers->set_isarray(false); + arg_framebuffers->set_type(GLMessage::DataType::INT); + arg_framebuffers->add_intvalue((int)framebuffers); + + // copy argument maxFramebuffers + GLMessage_DataType *arg_maxFramebuffers = glmsg.add_args(); + arg_maxFramebuffers->set_isarray(false); + arg_maxFramebuffers->set_type(GLMessage::DataType::INT); + arg_maxFramebuffers->add_intvalue(maxFramebuffers); + + // copy argument numFramebuffers + GLMessage_DataType *arg_numFramebuffers = glmsg.add_args(); + arg_numFramebuffers->set_isarray(false); + arg_numFramebuffers->set_type(GLMessage::DataType::INT); + arg_numFramebuffers->add_intvalue((int)numFramebuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetFramebuffersQCOM(framebuffers, maxFramebuffers, numFramebuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetTexLevelParameterivQCOM); + + // 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 face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // 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 pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetTexLevelParameterivQCOM(texture, face, level, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtTexObjectStateOverrideiQCOM); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glExtTexObjectStateOverrideiQCOM(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetTexSubImageQCOM); + + // 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 texels + GLMessage_DataType *arg_texels = glmsg.add_args(); + arg_texels->set_isarray(false); + arg_texels->set_type(GLMessage::DataType::INT); + arg_texels->add_intvalue((int)texels); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetTexSubImageQCOM(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetBufferPointervQCOM(GLenum target, GLvoid **params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetBufferPointervQCOM); + + // 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 params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetBufferPointervQCOM(target, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetShadersQCOM); + + // copy argument shaders + GLMessage_DataType *arg_shaders = glmsg.add_args(); + arg_shaders->set_isarray(false); + arg_shaders->set_type(GLMessage::DataType::INT); + arg_shaders->add_intvalue((int)shaders); + + // copy argument maxShaders + GLMessage_DataType *arg_maxShaders = glmsg.add_args(); + arg_maxShaders->set_isarray(false); + arg_maxShaders->set_type(GLMessage::DataType::INT); + arg_maxShaders->add_intvalue(maxShaders); + + // copy argument numShaders + GLMessage_DataType *arg_numShaders = glmsg.add_args(); + arg_numShaders->set_isarray(false); + arg_numShaders->set_type(GLMessage::DataType::INT); + arg_numShaders->add_intvalue((int)numShaders); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetShadersQCOM(shaders, maxShaders, numShaders); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetProgramsQCOM); + + // copy argument programs + GLMessage_DataType *arg_programs = glmsg.add_args(); + arg_programs->set_isarray(false); + arg_programs->set_type(GLMessage::DataType::INT); + arg_programs->add_intvalue((int)programs); + + // copy argument maxPrograms + GLMessage_DataType *arg_maxPrograms = glmsg.add_args(); + arg_maxPrograms->set_isarray(false); + arg_maxPrograms->set_type(GLMessage::DataType::INT); + arg_maxPrograms->add_intvalue(maxPrograms); + + // copy argument numPrograms + GLMessage_DataType *arg_numPrograms = glmsg.add_args(); + arg_numPrograms->set_isarray(false); + arg_numPrograms->set_type(GLMessage::DataType::INT); + arg_numPrograms->add_intvalue((int)numPrograms); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetProgramsQCOM(programs, maxPrograms, numPrograms); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glExtIsProgramBinaryQCOM(GLuint program) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtIsProgramBinaryQCOM); + + // copy argument program + GLMessage_DataType *arg_program = glmsg.add_args(); + arg_program->set_isarray(false); + arg_program->set_type(GLMessage::DataType::INT); + arg_program->add_intvalue(program); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glExtIsProgramBinaryQCOM(program); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glExtGetProgramBinarySourceQCOM); + + // 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 shadertype + GLMessage_DataType *arg_shadertype = glmsg.add_args(); + arg_shadertype->set_isarray(false); + arg_shadertype->set_type(GLMessage::DataType::ENUM); + arg_shadertype->add_intvalue((int)shadertype); + + // copy argument source + GLMessage_DataType *arg_source = glmsg.add_args(); + arg_source->set_isarray(false); + arg_source->set_type(GLMessage::DataType::INT); + arg_source->add_intvalue((int)source); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glExtGetProgramBinarySourceQCOM(program, shadertype, source, length); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glStartTilingQCOM); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // copy argument preserveMask + GLMessage_DataType *arg_preserveMask = glmsg.add_args(); + arg_preserveMask->set_isarray(false); + arg_preserveMask->set_type(GLMessage::DataType::INT); + arg_preserveMask->add_intvalue(preserveMask); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glStartTilingQCOM(x, y, width, height, preserveMask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEndTilingQCOM(GLbitfield preserveMask) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEndTilingQCOM); + + // copy argument preserveMask + GLMessage_DataType *arg_preserveMask = glmsg.add_args(); + arg_preserveMask->set_isarray(false); + arg_preserveMask->set_type(GLMessage::DataType::INT); + arg_preserveMask->add_intvalue(preserveMask); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEndTilingQCOM(preserveMask); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + + +// Definitions for GL1 APIs + +void GLTrace_glAlphaFunc(GLenum func, GLclampf ref) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glAlphaFunc); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::FLOAT); + arg_ref->add_floatvalue(ref); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glAlphaFunc(func, ref); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanef(GLenum plane, const GLfloat *equation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanef); + + // copy argument plane + GLMessage_DataType *arg_plane = glmsg.add_args(); + arg_plane->set_isarray(false); + arg_plane->set_type(GLMessage::DataType::ENUM); + arg_plane->add_intvalue((int)plane); + + // copy argument equation + GLMessage_DataType *arg_equation = glmsg.add_args(); + arg_equation->set_isarray(false); + arg_equation->set_type(GLMessage::DataType::INT); + arg_equation->add_intvalue((int)equation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanef(plane, equation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColor4f); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::FLOAT); + arg_red->add_floatvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::FLOAT); + arg_green->add_floatvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::FLOAT); + arg_blue->add_floatvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::FLOAT); + arg_alpha->add_floatvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glColor4f(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogf(GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogf); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glFogf(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogfv(GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogfv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFogfv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFrustumf); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::FLOAT); + arg_left->add_floatvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::FLOAT); + arg_right->add_floatvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::FLOAT); + arg_bottom->add_floatvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::FLOAT); + arg_top->add_floatvalue(top); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFrustumf(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetClipPlanef(GLenum pname, GLfloat eqn[4]) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetClipPlanef); + + // 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 eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetClipPlanef(pname, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetLightfv(GLenum light, GLenum pname, GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetLightfv); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetLightfv(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetMaterialfv); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetMaterialfv(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexEnvfv); + + // copy argument env + GLMessage_DataType *arg_env = glmsg.add_args(); + arg_env->set_isarray(false); + arg_env->set_type(GLMessage::DataType::ENUM); + arg_env->add_intvalue((int)env); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexEnvfv(env, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelf(GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelf); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightModelf(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelfv(GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelfv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightModelfv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightf(GLenum light, GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightf); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightf(light, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightfv(GLenum light, GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightfv); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightfv(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLoadMatrixf(const GLfloat *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLoadMatrixf); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLoadMatrixf(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialf(GLenum face, GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialf); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glMaterialf(face, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialfv); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMaterialfv(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultMatrixf(const GLfloat *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultMatrixf); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultMatrixf(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultiTexCoord4f); + + // 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 s + GLMessage_DataType *arg_s = glmsg.add_args(); + arg_s->set_isarray(false); + arg_s->set_type(GLMessage::DataType::FLOAT); + arg_s->add_floatvalue(s); + + // copy argument t + GLMessage_DataType *arg_t = glmsg.add_args(); + arg_t->set_isarray(false); + arg_t->set_type(GLMessage::DataType::FLOAT); + arg_t->add_floatvalue(t); + + // copy argument r + GLMessage_DataType *arg_r = glmsg.add_args(); + arg_r->set_isarray(false); + arg_r->set_type(GLMessage::DataType::FLOAT); + arg_r->add_floatvalue(r); + + // copy argument q + GLMessage_DataType *arg_q = glmsg.add_args(); + arg_q->set_isarray(false); + arg_q->set_type(GLMessage::DataType::FLOAT); + arg_q->add_floatvalue(q); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultiTexCoord4f(target, s, t, r, q); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glNormal3f); + + // copy argument nx + GLMessage_DataType *arg_nx = glmsg.add_args(); + arg_nx->set_isarray(false); + arg_nx->set_type(GLMessage::DataType::FLOAT); + arg_nx->add_floatvalue(nx); + + // copy argument ny + GLMessage_DataType *arg_ny = glmsg.add_args(); + arg_ny->set_isarray(false); + arg_ny->set_type(GLMessage::DataType::FLOAT); + arg_ny->add_floatvalue(ny); + + // copy argument nz + GLMessage_DataType *arg_nz = glmsg.add_args(); + arg_nz->set_isarray(false); + arg_nz->set_type(GLMessage::DataType::FLOAT); + arg_nz->add_floatvalue(nz); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glNormal3f(nx, ny, nz); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glOrthof); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::FLOAT); + arg_left->add_floatvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::FLOAT); + arg_right->add_floatvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::FLOAT); + arg_bottom->add_floatvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::FLOAT); + arg_top->add_floatvalue(top); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glOrthof(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterf(GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterf); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointParameterf(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterfv(GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterfv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPointParameterfv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointSize(GLfloat size) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointSize); + + // copy argument size + GLMessage_DataType *arg_size = glmsg.add_args(); + arg_size->set_isarray(false); + arg_size->set_type(GLMessage::DataType::FLOAT); + arg_size->add_floatvalue(size); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPointSize(size); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRotatef); + + // copy argument angle + GLMessage_DataType *arg_angle = glmsg.add_args(); + arg_angle->set_isarray(false); + arg_angle->set_type(GLMessage::DataType::FLOAT); + arg_angle->add_floatvalue(angle); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRotatef(angle, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glScalef(GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glScalef); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glScalef(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvf(GLenum target, GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvf); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexEnvf(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvfv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexEnvfv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTranslatef(GLfloat x, GLfloat y, GLfloat z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTranslatef); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTranslatef(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glAlphaFuncx(GLenum func, GLclampx ref) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glAlphaFuncx); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::INT); + arg_ref->add_intvalue(ref); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glAlphaFuncx(func, ref); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearColorx); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::INT); + arg_red->add_intvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::INT); + arg_green->add_intvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::INT); + arg_blue->add_intvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::INT); + arg_alpha->add_intvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearColorx(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearDepthx(GLclampx depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearDepthx); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearDepthx(depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClientActiveTexture(GLenum texture) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClientActiveTexture); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::ENUM); + arg_texture->add_intvalue((int)texture); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClientActiveTexture(texture); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanex(GLenum plane, const GLfixed *equation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanex); + + // copy argument plane + GLMessage_DataType *arg_plane = glmsg.add_args(); + arg_plane->set_isarray(false); + arg_plane->set_type(GLMessage::DataType::ENUM); + arg_plane->add_intvalue((int)plane); + + // copy argument equation + GLMessage_DataType *arg_equation = glmsg.add_args(); + arg_equation->set_isarray(false); + arg_equation->set_type(GLMessage::DataType::INT); + arg_equation->add_intvalue((int)equation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanex(plane, equation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColor4ub); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::BYTE); + arg_red->add_intvalue((int)red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::BYTE); + arg_green->add_intvalue((int)green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::BYTE); + arg_blue->add_intvalue((int)blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::BYTE); + arg_alpha->add_intvalue((int)alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glColor4ub(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColor4x); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::INT); + arg_red->add_intvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::INT); + arg_green->add_intvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::INT); + arg_blue->add_intvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::INT); + arg_alpha->add_intvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glColor4x(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColorPointer); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glColorPointer(size, type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDepthRangex(GLclampx zNear, GLclampx zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDepthRangex); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthRangex(zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDisableClientState(GLenum array) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDisableClientState); + + // copy argument array + GLMessage_DataType *arg_array = glmsg.add_args(); + arg_array->set_isarray(false); + arg_array->set_type(GLMessage::DataType::ENUM); + arg_array->add_intvalue((int)array); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDisableClientState(array); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glEnableClientState(GLenum array) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glEnableClientState); + + // copy argument array + GLMessage_DataType *arg_array = glmsg.add_args(); + arg_array->set_isarray(false); + arg_array->set_type(GLMessage::DataType::ENUM); + arg_array->add_intvalue((int)array); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glEnableClientState(array); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogx(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glFogx(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogxv(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogxv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFogxv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFrustumx); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::INT); + arg_left->add_intvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::INT); + arg_right->add_intvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::INT); + arg_bottom->add_intvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::INT); + arg_top->add_intvalue(top); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFrustumx(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetClipPlanex(GLenum pname, GLfixed eqn[4]) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetClipPlanex); + + // 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 eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetClipPlanex(pname, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetFixedv(GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFixedv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFixedv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetLightxv(GLenum light, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetLightxv); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetLightxv(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetMaterialxv); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetMaterialxv(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetPointerv(GLenum pname, GLvoid **params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetPointerv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetPointerv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexEnviv(GLenum env, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexEnviv); + + // copy argument env + GLMessage_DataType *arg_env = glmsg.add_args(); + arg_env->set_isarray(false); + arg_env->set_type(GLMessage::DataType::ENUM); + arg_env->add_intvalue((int)env); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexEnviv(env, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexEnvxv); + + // copy argument env + GLMessage_DataType *arg_env = glmsg.add_args(); + arg_env->set_isarray(false); + arg_env->set_type(GLMessage::DataType::ENUM); + arg_env->add_intvalue((int)env); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexEnvxv(env, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexParameterxv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexParameterxv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelx(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightModelx(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelxv(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelxv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightModelxv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightx(GLenum light, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightx); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightx(light, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightxv(GLenum light, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightxv); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightxv(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLineWidthx(GLfixed width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLineWidthx); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLineWidthx(width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLoadIdentity(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLoadIdentity); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLoadIdentity(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLoadMatrixx(const GLfixed *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLoadMatrixx); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLoadMatrixx(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLogicOp(GLenum opcode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLogicOp); + + // copy argument opcode + GLMessage_DataType *arg_opcode = glmsg.add_args(); + arg_opcode->set_isarray(false); + arg_opcode->set_type(GLMessage::DataType::ENUM); + arg_opcode->add_intvalue((int)opcode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLogicOp(opcode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialx(GLenum face, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialx); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glMaterialx(face, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialxv(GLenum face, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialxv); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMaterialxv(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMatrixMode(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMatrixMode); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMatrixMode(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultMatrixx(const GLfixed *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultMatrixx); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultMatrixx(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultiTexCoord4x); + + // 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 s + GLMessage_DataType *arg_s = glmsg.add_args(); + arg_s->set_isarray(false); + arg_s->set_type(GLMessage::DataType::INT); + arg_s->add_intvalue(s); + + // copy argument t + GLMessage_DataType *arg_t = glmsg.add_args(); + arg_t->set_isarray(false); + arg_t->set_type(GLMessage::DataType::INT); + arg_t->add_intvalue(t); + + // copy argument r + GLMessage_DataType *arg_r = glmsg.add_args(); + arg_r->set_isarray(false); + arg_r->set_type(GLMessage::DataType::INT); + arg_r->add_intvalue(r); + + // copy argument q + GLMessage_DataType *arg_q = glmsg.add_args(); + arg_q->set_isarray(false); + arg_q->set_type(GLMessage::DataType::INT); + arg_q->add_intvalue(q); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultiTexCoord4x(target, s, t, r, q); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glNormal3x); + + // copy argument nx + GLMessage_DataType *arg_nx = glmsg.add_args(); + arg_nx->set_isarray(false); + arg_nx->set_type(GLMessage::DataType::INT); + arg_nx->add_intvalue(nx); + + // copy argument ny + GLMessage_DataType *arg_ny = glmsg.add_args(); + arg_ny->set_isarray(false); + arg_ny->set_type(GLMessage::DataType::INT); + arg_ny->add_intvalue(ny); + + // copy argument nz + GLMessage_DataType *arg_nz = glmsg.add_args(); + arg_nz->set_isarray(false); + arg_nz->set_type(GLMessage::DataType::INT); + arg_nz->add_intvalue(nz); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glNormal3x(nx, ny, nz); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glNormalPointer); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glNormalPointer(type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glOrthox); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::INT); + arg_left->add_intvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::INT); + arg_right->add_intvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::INT); + arg_bottom->add_intvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::INT); + arg_top->add_intvalue(top); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glOrthox(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterx(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterx); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointParameterx(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterxv(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterxv); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPointParameterxv(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointSizex(GLfixed size) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointSizex); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointSizex(size); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPolygonOffsetx(GLfixed factor, GLfixed units) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPolygonOffsetx); + + // copy argument factor + GLMessage_DataType *arg_factor = glmsg.add_args(); + arg_factor->set_isarray(false); + arg_factor->set_type(GLMessage::DataType::INT); + arg_factor->add_intvalue(factor); + + // copy argument units + GLMessage_DataType *arg_units = glmsg.add_args(); + arg_units->set_isarray(false); + arg_units->set_type(GLMessage::DataType::INT); + arg_units->add_intvalue(units); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPolygonOffsetx(factor, units); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPopMatrix(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPopMatrix); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPopMatrix(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPushMatrix(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPushMatrix); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPushMatrix(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRotatex); + + // copy argument angle + GLMessage_DataType *arg_angle = glmsg.add_args(); + arg_angle->set_isarray(false); + arg_angle->set_type(GLMessage::DataType::INT); + arg_angle->add_intvalue(angle); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRotatex(angle, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glSampleCoveragex(GLclampx value, GLboolean invert) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glSampleCoveragex); + + // 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); + + // copy argument invert + GLMessage_DataType *arg_invert = glmsg.add_args(); + arg_invert->set_isarray(false); + arg_invert->set_type(GLMessage::DataType::BOOL); + arg_invert->add_boolvalue(invert); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glSampleCoveragex(value, invert); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glScalex(GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glScalex); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glScalex(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glShadeModel(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glShadeModel); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glShadeModel(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexCoordPointer); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glTexCoordPointer(size, type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvi(GLenum target, GLenum pname, GLint param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvi); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexEnvi(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvx(GLenum target, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvx); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexEnvx(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnviv(GLenum target, GLenum pname, const GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnviv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexEnviv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvxv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexEnvxv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterx(GLenum target, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterx); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexParameterx(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterxv); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexParameterxv(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTranslatex(GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTranslatex); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTranslatex(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glVertexPointer); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glVertexPointer(size, type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointSizePointerOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointSizePointerOES(type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + + +// Definitions for GL1Ext APIs + +void GLTrace_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendEquationSeparateOES); + + // copy argument modeRGB + GLMessage_DataType *arg_modeRGB = glmsg.add_args(); + arg_modeRGB->set_isarray(false); + arg_modeRGB->set_type(GLMessage::DataType::ENUM); + arg_modeRGB->add_intvalue((int)modeRGB); + + // copy argument modeAlpha + GLMessage_DataType *arg_modeAlpha = glmsg.add_args(); + arg_modeAlpha->set_isarray(false); + arg_modeAlpha->set_type(GLMessage::DataType::ENUM); + arg_modeAlpha->add_intvalue((int)modeAlpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendEquationSeparateOES(modeRGB, modeAlpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendFuncSeparateOES); + + // copy argument srcRGB + GLMessage_DataType *arg_srcRGB = glmsg.add_args(); + arg_srcRGB->set_isarray(false); + arg_srcRGB->set_type(GLMessage::DataType::ENUM); + arg_srcRGB->add_intvalue((int)srcRGB); + + // copy argument dstRGB + GLMessage_DataType *arg_dstRGB = glmsg.add_args(); + arg_dstRGB->set_isarray(false); + arg_dstRGB->set_type(GLMessage::DataType::ENUM); + arg_dstRGB->add_intvalue((int)dstRGB); + + // copy argument srcAlpha + GLMessage_DataType *arg_srcAlpha = glmsg.add_args(); + arg_srcAlpha->set_isarray(false); + arg_srcAlpha->set_type(GLMessage::DataType::ENUM); + arg_srcAlpha->add_intvalue((int)srcAlpha); + + // copy argument dstAlpha + GLMessage_DataType *arg_dstAlpha = glmsg.add_args(); + arg_dstAlpha->set_isarray(false); + arg_dstAlpha->set_type(GLMessage::DataType::ENUM); + arg_dstAlpha->add_intvalue((int)dstAlpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glBlendEquationOES(GLenum mode) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBlendEquationOES); + + // copy argument mode + GLMessage_DataType *arg_mode = glmsg.add_args(); + arg_mode->set_isarray(false); + arg_mode->set_type(GLMessage::DataType::ENUM); + arg_mode->add_intvalue((int)mode); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBlendEquationOES(mode); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexsOES); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexsOES(x, y, z, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexiOES); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexiOES(x, y, z, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexxOES); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexxOES(x, y, z, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexsvOES(const GLshort *coords) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexsvOES); + + // copy argument coords + GLMessage_DataType *arg_coords = glmsg.add_args(); + arg_coords->set_isarray(false); + arg_coords->set_type(GLMessage::DataType::INT); + arg_coords->add_intvalue((int)coords); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexsvOES(coords); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexivOES(const GLint *coords) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexivOES); + + // copy argument coords + GLMessage_DataType *arg_coords = glmsg.add_args(); + arg_coords->set_isarray(false); + arg_coords->set_type(GLMessage::DataType::INT); + arg_coords->add_intvalue((int)coords); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexivOES(coords); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexxvOES(const GLfixed *coords) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexxvOES); + + // copy argument coords + GLMessage_DataType *arg_coords = glmsg.add_args(); + arg_coords->set_isarray(false); + arg_coords->set_type(GLMessage::DataType::INT); + arg_coords->add_intvalue((int)coords); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexxvOES(coords); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexfOES); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::FLOAT); + arg_x->add_floatvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::FLOAT); + arg_y->add_floatvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::FLOAT); + arg_z->add_floatvalue(z); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::FLOAT); + arg_width->add_floatvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::FLOAT); + arg_height->add_floatvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexfOES(x, y, z, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDrawTexfvOES(const GLfloat *coords) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDrawTexfvOES); + + // copy argument coords + GLMessage_DataType *arg_coords = glmsg.add_args(); + arg_coords->set_isarray(false); + arg_coords->set_type(GLMessage::DataType::INT); + arg_coords->add_intvalue((int)coords); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDrawTexfvOES(coords); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glAlphaFuncxOES(GLenum func, GLclampx ref) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glAlphaFuncxOES); + + // copy argument func + GLMessage_DataType *arg_func = glmsg.add_args(); + arg_func->set_isarray(false); + arg_func->set_type(GLMessage::DataType::ENUM); + arg_func->add_intvalue((int)func); + + // copy argument ref + GLMessage_DataType *arg_ref = glmsg.add_args(); + arg_ref->set_isarray(false); + arg_ref->set_type(GLMessage::DataType::INT); + arg_ref->add_intvalue(ref); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glAlphaFuncxOES(func, ref); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearColorxOES); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::INT); + arg_red->add_intvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::INT); + arg_green->add_intvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::INT); + arg_blue->add_intvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::INT); + arg_alpha->add_intvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearColorxOES(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearDepthxOES(GLclampx depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearDepthxOES); + + // copy argument depth + GLMessage_DataType *arg_depth = glmsg.add_args(); + arg_depth->set_isarray(false); + arg_depth->set_type(GLMessage::DataType::INT); + arg_depth->add_intvalue(depth); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearDepthxOES(depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanexOES(GLenum plane, const GLfixed *equation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanexOES); + + // copy argument plane + GLMessage_DataType *arg_plane = glmsg.add_args(); + arg_plane->set_isarray(false); + arg_plane->set_type(GLMessage::DataType::ENUM); + arg_plane->add_intvalue((int)plane); + + // copy argument equation + GLMessage_DataType *arg_equation = glmsg.add_args(); + arg_equation->set_isarray(false); + arg_equation->set_type(GLMessage::DataType::INT); + arg_equation->add_intvalue((int)equation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanexOES(plane, equation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glColor4xOES); + + // copy argument red + GLMessage_DataType *arg_red = glmsg.add_args(); + arg_red->set_isarray(false); + arg_red->set_type(GLMessage::DataType::INT); + arg_red->add_intvalue(red); + + // copy argument green + GLMessage_DataType *arg_green = glmsg.add_args(); + arg_green->set_isarray(false); + arg_green->set_type(GLMessage::DataType::INT); + arg_green->add_intvalue(green); + + // copy argument blue + GLMessage_DataType *arg_blue = glmsg.add_args(); + arg_blue->set_isarray(false); + arg_blue->set_type(GLMessage::DataType::INT); + arg_blue->add_intvalue(blue); + + // copy argument alpha + GLMessage_DataType *arg_alpha = glmsg.add_args(); + arg_alpha->set_isarray(false); + arg_alpha->set_type(GLMessage::DataType::INT); + arg_alpha->add_intvalue(alpha); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glColor4xOES(red, green, blue, alpha); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDepthRangexOES(GLclampx zNear, GLclampx zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDepthRangexOES); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthRangexOES(zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogxOES(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogxOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glFogxOES(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFogxvOES(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFogxvOES); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFogxvOES(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFrustumxOES); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::INT); + arg_left->add_intvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::INT); + arg_right->add_intvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::INT); + arg_bottom->add_intvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::INT); + arg_top->add_intvalue(top); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFrustumxOES(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetClipPlanexOES(GLenum pname, GLfixed eqn[4]) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetClipPlanexOES); + + // 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 eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetClipPlanexOES(pname, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetFixedvOES(GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFixedvOES); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFixedvOES(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetLightxvOES); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetLightxvOES(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetMaterialxvOES); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetMaterialxvOES(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexEnvxvOES); + + // copy argument env + GLMessage_DataType *arg_env = glmsg.add_args(); + arg_env->set_isarray(false); + arg_env->set_type(GLMessage::DataType::ENUM); + arg_env->add_intvalue((int)env); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexEnvxvOES(env, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexParameterxvOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexParameterxvOES(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelxOES(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelxOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightModelxOES(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightModelxvOES(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightModelxvOES); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightModelxvOES(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightxOES(GLenum light, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightxOES); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glLightxOES(light, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLightxvOES(GLenum light, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLightxvOES); + + // copy argument light + GLMessage_DataType *arg_light = glmsg.add_args(); + arg_light->set_isarray(false); + arg_light->set_type(GLMessage::DataType::ENUM); + arg_light->add_intvalue((int)light); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLightxvOES(light, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLineWidthxOES(GLfixed width) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLineWidthxOES); + + // copy argument width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLineWidthxOES(width); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLoadMatrixxOES(const GLfixed *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLoadMatrixxOES); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLoadMatrixxOES(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialxOES(GLenum face, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialxOES); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glMaterialxOES(face, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMaterialxvOES(GLenum face, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMaterialxvOES); + + // copy argument face + GLMessage_DataType *arg_face = glmsg.add_args(); + arg_face->set_isarray(false); + arg_face->set_type(GLMessage::DataType::ENUM); + arg_face->add_intvalue((int)face); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMaterialxvOES(face, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultMatrixxOES(const GLfixed *m) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultMatrixxOES); + + // copy argument m + GLMessage_DataType *arg_m = glmsg.add_args(); + arg_m->set_isarray(false); + arg_m->set_type(GLMessage::DataType::INT); + arg_m->add_intvalue((int)m); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultMatrixxOES(m); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMultiTexCoord4xOES(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMultiTexCoord4xOES); + + // 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 s + GLMessage_DataType *arg_s = glmsg.add_args(); + arg_s->set_isarray(false); + arg_s->set_type(GLMessage::DataType::INT); + arg_s->add_intvalue(s); + + // copy argument t + GLMessage_DataType *arg_t = glmsg.add_args(); + arg_t->set_isarray(false); + arg_t->set_type(GLMessage::DataType::INT); + arg_t->add_intvalue(t); + + // copy argument r + GLMessage_DataType *arg_r = glmsg.add_args(); + arg_r->set_isarray(false); + arg_r->set_type(GLMessage::DataType::INT); + arg_r->add_intvalue(r); + + // copy argument q + GLMessage_DataType *arg_q = glmsg.add_args(); + arg_q->set_isarray(false); + arg_q->set_type(GLMessage::DataType::INT); + arg_q->add_intvalue(q); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glMultiTexCoord4xOES(target, s, t, r, q); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glNormal3xOES(GLfixed nx, GLfixed ny, GLfixed nz) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glNormal3xOES); + + // copy argument nx + GLMessage_DataType *arg_nx = glmsg.add_args(); + arg_nx->set_isarray(false); + arg_nx->set_type(GLMessage::DataType::INT); + arg_nx->add_intvalue(nx); + + // copy argument ny + GLMessage_DataType *arg_ny = glmsg.add_args(); + arg_ny->set_isarray(false); + arg_ny->set_type(GLMessage::DataType::INT); + arg_ny->add_intvalue(ny); + + // copy argument nz + GLMessage_DataType *arg_nz = glmsg.add_args(); + arg_nz->set_isarray(false); + arg_nz->set_type(GLMessage::DataType::INT); + arg_nz->add_intvalue(nz); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glNormal3xOES(nx, ny, nz); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glOrthoxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glOrthoxOES); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::INT); + arg_left->add_intvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::INT); + arg_right->add_intvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::INT); + arg_bottom->add_intvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::INT); + arg_top->add_intvalue(top); + + // copy argument zNear + GLMessage_DataType *arg_zNear = glmsg.add_args(); + arg_zNear->set_isarray(false); + arg_zNear->set_type(GLMessage::DataType::INT); + arg_zNear->add_intvalue(zNear); + + // copy argument zFar + GLMessage_DataType *arg_zFar = glmsg.add_args(); + arg_zFar->set_isarray(false); + arg_zFar->set_type(GLMessage::DataType::INT); + arg_zFar->add_intvalue(zFar); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glOrthoxOES(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterxOES(GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterxOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointParameterxOES(pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointParameterxvOES(GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointParameterxvOES); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPointParameterxvOES(pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPointSizexOES(GLfixed size) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPointSizexOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glPointSizexOES(size); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glPolygonOffsetxOES(GLfixed factor, GLfixed units) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glPolygonOffsetxOES); + + // copy argument factor + GLMessage_DataType *arg_factor = glmsg.add_args(); + arg_factor->set_isarray(false); + arg_factor->set_type(GLMessage::DataType::INT); + arg_factor->add_intvalue(factor); + + // copy argument units + GLMessage_DataType *arg_units = glmsg.add_args(); + arg_units->set_isarray(false); + arg_units->set_type(GLMessage::DataType::INT); + arg_units->add_intvalue(units); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glPolygonOffsetxOES(factor, units); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRotatexOES(GLfixed angle, GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRotatexOES); + + // copy argument angle + GLMessage_DataType *arg_angle = glmsg.add_args(); + arg_angle->set_isarray(false); + arg_angle->set_type(GLMessage::DataType::INT); + arg_angle->add_intvalue(angle); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRotatexOES(angle, x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glSampleCoveragexOES(GLclampx value, GLboolean invert) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glSampleCoveragexOES); + + // 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); + + // copy argument invert + GLMessage_DataType *arg_invert = glmsg.add_args(); + arg_invert->set_isarray(false); + arg_invert->set_type(GLMessage::DataType::BOOL); + arg_invert->add_boolvalue(invert); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glSampleCoveragexOES(value, invert); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glScalexOES(GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glScalexOES); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glScalexOES(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvxOES(GLenum target, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvxOES); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexEnvxOES(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexEnvxvOES(GLenum target, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexEnvxvOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexEnvxvOES(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterxOES(GLenum target, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterxOES); + + // 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 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 start_time = systemTime(); + glContext->hooks->gl.glTexParameterxOES(target, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexParameterxvOES(GLenum target, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexParameterxvOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexParameterxvOES(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTranslatexOES(GLfixed x, GLfixed y, GLfixed z) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTranslatexOES); + + // copy argument x + GLMessage_DataType *arg_x = glmsg.add_args(); + arg_x->set_isarray(false); + arg_x->set_type(GLMessage::DataType::INT); + arg_x->add_intvalue(x); + + // copy argument y + GLMessage_DataType *arg_y = glmsg.add_args(); + arg_y->set_isarray(false); + arg_y->set_type(GLMessage::DataType::INT); + arg_y->add_intvalue(y); + + // copy argument z + GLMessage_DataType *arg_z = glmsg.add_args(); + arg_z->set_isarray(false); + arg_z->set_type(GLMessage::DataType::INT); + arg_z->add_intvalue(z); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTranslatexOES(x, y, z); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsRenderbufferOES(GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsRenderbufferOES); + + // copy argument renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsRenderbufferOES(renderbuffer); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBindRenderbufferOES(GLenum target, GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindRenderbufferOES); + + // 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 renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindRenderbufferOES(target, renderbuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteRenderbuffersOES); + + // 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 renderbuffers + GLMessage_DataType *arg_renderbuffers = glmsg.add_args(); + arg_renderbuffers->set_isarray(false); + arg_renderbuffers->set_type(GLMessage::DataType::INT); + arg_renderbuffers->add_intvalue((int)renderbuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteRenderbuffersOES(n, renderbuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenRenderbuffersOES); + + // 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 renderbuffers + GLMessage_DataType *arg_renderbuffers = glmsg.add_args(); + arg_renderbuffers->set_isarray(false); + arg_renderbuffers->set_type(GLMessage::DataType::INT); + arg_renderbuffers->add_intvalue((int)renderbuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenRenderbuffersOES(n, renderbuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glRenderbufferStorageOES); + + // 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 width + GLMessage_DataType *arg_width = glmsg.add_args(); + arg_width->set_isarray(false); + arg_width->set_type(GLMessage::DataType::INT); + arg_width->add_intvalue(width); + + // copy argument height + GLMessage_DataType *arg_height = glmsg.add_args(); + arg_height->set_isarray(false); + arg_height->set_type(GLMessage::DataType::INT); + arg_height->add_intvalue(height); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glRenderbufferStorageOES(target, internalformat, width, height); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetRenderbufferParameterivOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetRenderbufferParameterivOES(target, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLboolean GLTrace_glIsFramebufferOES(GLuint framebuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glIsFramebufferOES); + + // copy argument framebuffer + GLMessage_DataType *arg_framebuffer = glmsg.add_args(); + arg_framebuffer->set_isarray(false); + arg_framebuffer->set_type(GLMessage::DataType::INT); + arg_framebuffer->add_intvalue(framebuffer); + + // call function + nsecs_t start_time = systemTime(); + GLboolean retValue = glContext->hooks->gl.glIsFramebufferOES(framebuffer); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::BOOL); + rt->add_boolvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glBindFramebufferOES(GLenum target, GLuint framebuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glBindFramebufferOES); + + // 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 framebuffer + GLMessage_DataType *arg_framebuffer = glmsg.add_args(); + arg_framebuffer->set_isarray(false); + arg_framebuffer->set_type(GLMessage::DataType::INT); + arg_framebuffer->add_intvalue(framebuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glBindFramebufferOES(target, framebuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDeleteFramebuffersOES); + + // 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 framebuffers + GLMessage_DataType *arg_framebuffers = glmsg.add_args(); + arg_framebuffers->set_isarray(false); + arg_framebuffers->set_type(GLMessage::DataType::INT); + arg_framebuffers->add_intvalue((int)framebuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDeleteFramebuffersOES(n, framebuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenFramebuffersOES(GLsizei n, GLuint* framebuffers) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenFramebuffersOES); + + // 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 framebuffers + GLMessage_DataType *arg_framebuffers = glmsg.add_args(); + arg_framebuffers->set_isarray(false); + arg_framebuffers->set_type(GLMessage::DataType::INT); + arg_framebuffers->add_intvalue((int)framebuffers); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenFramebuffersOES(n, framebuffers); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLenum GLTrace_glCheckFramebufferStatusOES(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCheckFramebufferStatusOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + GLenum retValue = glContext->hooks->gl.glCheckFramebufferStatusOES(target); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::ENUM); + rt->add_intvalue((int)retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferRenderbufferOES); + + // 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 renderbuffertarget + GLMessage_DataType *arg_renderbuffertarget = glmsg.add_args(); + arg_renderbuffertarget->set_isarray(false); + arg_renderbuffertarget->set_type(GLMessage::DataType::ENUM); + arg_renderbuffertarget->add_intvalue((int)renderbuffertarget); + + // copy argument renderbuffer + GLMessage_DataType *arg_renderbuffer = glmsg.add_args(); + arg_renderbuffer->set_isarray(false); + arg_renderbuffer->set_type(GLMessage::DataType::INT); + arg_renderbuffer->add_intvalue(renderbuffer); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFramebufferTexture2DOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // copy argument attachment + GLMessage_DataType *arg_attachment = glmsg.add_args(); + arg_attachment->set_isarray(false); + arg_attachment->set_type(GLMessage::DataType::ENUM); + arg_attachment->add_intvalue((int)attachment); + + // copy argument textarget + GLMessage_DataType *arg_textarget = glmsg.add_args(); + arg_textarget->set_isarray(false); + arg_textarget->set_type(GLMessage::DataType::ENUM); + arg_textarget->add_intvalue((int)textarget); + + // copy argument texture + GLMessage_DataType *arg_texture = glmsg.add_args(); + arg_texture->set_isarray(false); + arg_texture->set_type(GLMessage::DataType::INT); + arg_texture->add_intvalue(texture); + + // copy argument level + GLMessage_DataType *arg_level = glmsg.add_args(); + arg_level->set_isarray(false); + arg_level->set_type(GLMessage::DataType::INT); + arg_level->add_intvalue(level); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFramebufferTexture2DOES(target, attachment, textarget, texture, level); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetFramebufferAttachmentParameterivOES); + + // 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 pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGenerateMipmapOES(GLenum target) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGenerateMipmapOES); + + // copy argument target + GLMessage_DataType *arg_target = glmsg.add_args(); + arg_target->set_isarray(false); + arg_target->set_type(GLMessage::DataType::ENUM); + arg_target->add_intvalue((int)target); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGenerateMipmapOES(target); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glCurrentPaletteMatrixOES(GLuint matrixpaletteindex) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glCurrentPaletteMatrixOES); + + // copy argument matrixpaletteindex + GLMessage_DataType *arg_matrixpaletteindex = glmsg.add_args(); + arg_matrixpaletteindex->set_isarray(false); + arg_matrixpaletteindex->set_type(GLMessage::DataType::INT); + arg_matrixpaletteindex->add_intvalue(matrixpaletteindex); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glCurrentPaletteMatrixOES(matrixpaletteindex); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glLoadPaletteFromModelViewMatrixOES(void) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glLoadPaletteFromModelViewMatrixOES); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glLoadPaletteFromModelViewMatrixOES(); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glMatrixIndexPointerOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glMatrixIndexPointerOES(size, type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glWeightPointerOES); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glWeightPointerOES(size, type, stride, pointer); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +GLbitfield GLTrace_glQueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16]) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glQueryMatrixxOES); + + // copy argument mantissa + GLMessage_DataType *arg_mantissa = glmsg.add_args(); + arg_mantissa->set_isarray(false); + arg_mantissa->set_type(GLMessage::DataType::INT); + arg_mantissa->add_intvalue((int)mantissa); + + // copy argument exponent + GLMessage_DataType *arg_exponent = glmsg.add_args(); + arg_exponent->set_isarray(false); + arg_exponent->set_type(GLMessage::DataType::INT); + arg_exponent->add_intvalue((int)exponent); + + // call function + nsecs_t start_time = systemTime(); + GLbitfield retValue = glContext->hooks->gl.glQueryMatrixxOES(mantissa, exponent); + nsecs_t end_time = systemTime(); + + // set return value + GLMessage_DataType *rt = glmsg.mutable_returnvalue(); + rt->set_isarray(false); + rt->set_type(GLMessage::DataType::INT); + rt->add_intvalue(retValue); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); + + return retValue; +} + +void GLTrace_glDepthRangefOES(GLclampf zNear, GLclampf zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glDepthRangefOES); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glDepthRangefOES(zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glFrustumfOES); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::FLOAT); + arg_left->add_floatvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::FLOAT); + arg_right->add_floatvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::FLOAT); + arg_bottom->add_floatvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::FLOAT); + arg_top->add_floatvalue(top); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glFrustumfOES(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glOrthofOES); + + // copy argument left + GLMessage_DataType *arg_left = glmsg.add_args(); + arg_left->set_isarray(false); + arg_left->set_type(GLMessage::DataType::FLOAT); + arg_left->add_floatvalue(left); + + // copy argument right + GLMessage_DataType *arg_right = glmsg.add_args(); + arg_right->set_isarray(false); + arg_right->set_type(GLMessage::DataType::FLOAT); + arg_right->add_floatvalue(right); + + // copy argument bottom + GLMessage_DataType *arg_bottom = glmsg.add_args(); + arg_bottom->set_isarray(false); + arg_bottom->set_type(GLMessage::DataType::FLOAT); + arg_bottom->add_floatvalue(bottom); + + // copy argument top + GLMessage_DataType *arg_top = glmsg.add_args(); + arg_top->set_isarray(false); + arg_top->set_type(GLMessage::DataType::FLOAT); + arg_top->add_floatvalue(top); + + // 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 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glOrthofOES(left, right, bottom, top, zNear, zFar); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanefOES(GLenum plane, const GLfloat *equation) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanefOES); + + // copy argument plane + GLMessage_DataType *arg_plane = glmsg.add_args(); + arg_plane->set_isarray(false); + arg_plane->set_type(GLMessage::DataType::ENUM); + arg_plane->add_intvalue((int)plane); + + // copy argument equation + GLMessage_DataType *arg_equation = glmsg.add_args(); + arg_equation->set_isarray(false); + arg_equation->set_type(GLMessage::DataType::INT); + arg_equation->add_intvalue((int)equation); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanefOES(plane, equation); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetClipPlanefOES(GLenum pname, GLfloat eqn[4]) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetClipPlanefOES); + + // 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 eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetClipPlanefOES(pname, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClearDepthfOES(GLclampf depth) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClearDepthfOES); + + // 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); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClearDepthfOES(depth); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGenfOES(GLenum coord, GLenum pname, GLfloat param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGenfOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glTexGenfOES(coord, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGenfvOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexGenfvOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGeniOES(GLenum coord, GLenum pname, GLint param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGeniOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glTexGeniOES(coord, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGenivOES(GLenum coord, GLenum pname, const GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGenivOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexGenivOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGenxOES(GLenum coord, GLenum pname, GLfixed param) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGenxOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // 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 start_time = systemTime(); + glContext->hooks->gl.glTexGenxOES(coord, pname, param); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glTexGenxvOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glTexGenxvOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexGenfvOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexGenfvOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexGenivOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexGenivOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glGetTexGenxvOES); + + // copy argument coord + GLMessage_DataType *arg_coord = glmsg.add_args(); + arg_coord->set_isarray(false); + arg_coord->set_type(GLMessage::DataType::ENUM); + arg_coord->add_intvalue((int)coord); + + // copy argument pname + GLMessage_DataType *arg_pname = glmsg.add_args(); + arg_pname->set_isarray(false); + arg_pname->set_type(GLMessage::DataType::ENUM); + arg_pname->add_intvalue((int)pname); + + // copy argument params + GLMessage_DataType *arg_params = glmsg.add_args(); + arg_params->set_isarray(false); + arg_params->set_type(GLMessage::DataType::INT); + arg_params->add_intvalue((int)params); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glGetTexGenxvOES(coord, pname, params); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanefIMG(GLenum p, const GLfloat *eqn) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanefIMG); + + // copy argument p + GLMessage_DataType *arg_p = glmsg.add_args(); + arg_p->set_isarray(false); + arg_p->set_type(GLMessage::DataType::ENUM); + arg_p->add_intvalue((int)p); + + // copy argument eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanefIMG(p, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + +void GLTrace_glClipPlanexIMG(GLenum p, const GLfixed *eqn) { + GLMessage glmsg; + GLTraceContext *glContext = getGLTraceContext(); + + glmsg.set_function(GLMessage::glClipPlanexIMG); + + // copy argument p + GLMessage_DataType *arg_p = glmsg.add_args(); + arg_p->set_isarray(false); + arg_p->set_type(GLMessage::DataType::ENUM); + arg_p->add_intvalue((int)p); + + // copy argument eqn + GLMessage_DataType *arg_eqn = glmsg.add_args(); + arg_eqn->set_isarray(false); + arg_eqn->set_type(GLMessage::DataType::INT); + arg_eqn->add_intvalue((int)eqn); + + // call function + nsecs_t start_time = systemTime(); + glContext->hooks->gl.glClipPlanexIMG(p, eqn); + nsecs_t end_time = systemTime(); + + fixupGLMessage(glContext, start_time, end_time, &glmsg); + glContext->traceGLMessage(&glmsg); +} + + +}; // namespace gltrace +}; // namespace android diff --git a/opengl/libs/GLES_trace/src/gltrace_api.h b/opengl/libs/GLES_trace/src/gltrace_api.h new file mode 100644 index 0000000..debcac0 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_api.h @@ -0,0 +1,472 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * THIS FILE WAS GENERATED BY A SCRIPT. DO NOT EDIT. + */ + +namespace android { +namespace gltrace { + +// Declarations for GL2 APIs + +void GLTrace_glActiveTexture(GLenum texture); +void GLTrace_glAttachShader(GLuint program, GLuint shader); +void GLTrace_glBindAttribLocation(GLuint program, GLuint index, const GLchar* name); +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_glBlendEquation(GLenum mode); +void GLTrace_glBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha); +void GLTrace_glBlendFunc(GLenum sfactor, GLenum dfactor); +void GLTrace_glBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void GLTrace_glBufferData(GLenum target, GLsizeiptr size, const GLvoid* data, GLenum usage); +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_glClearStencil(GLint s); +void GLTrace_glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +void GLTrace_glCompileShader(GLuint shader); +void GLTrace_glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid* data); +void GLTrace_glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid* data); +void GLTrace_glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +void GLTrace_glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLuint GLTrace_glCreateProgram(void); +GLuint GLTrace_glCreateShader(GLenum type); +void GLTrace_glCullFace(GLenum mode); +void GLTrace_glDeleteBuffers(GLsizei n, const GLuint* buffers); +void GLTrace_glDeleteFramebuffers(GLsizei n, const GLuint* framebuffers); +void GLTrace_glDeleteProgram(GLuint program); +void GLTrace_glDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers); +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_glDetachShader(GLuint program, GLuint shader); +void GLTrace_glDisable(GLenum cap); +void GLTrace_glDisableVertexAttribArray(GLuint index); +void GLTrace_glDrawArrays(GLenum mode, GLint first, GLsizei count); +void GLTrace_glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices); +void GLTrace_glEnable(GLenum cap); +void GLTrace_glEnableVertexAttribArray(GLuint index); +void GLTrace_glFinish(void); +void GLTrace_glFlush(void); +void GLTrace_glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +void GLTrace_glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void GLTrace_glFrontFace(GLenum mode); +void GLTrace_glGenBuffers(GLsizei n, GLuint* buffers); +void GLTrace_glGenerateMipmap(GLenum target); +void GLTrace_glGenFramebuffers(GLsizei n, GLuint* framebuffers); +void GLTrace_glGenRenderbuffers(GLsizei n, GLuint* renderbuffers); +void GLTrace_glGenTextures(GLsizei n, GLuint* textures); +void GLTrace_glGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +void GLTrace_glGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, GLchar* name); +void GLTrace_glGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders); +int GLTrace_glGetAttribLocation(GLuint program, const GLchar* name); +void GLTrace_glGetBooleanv(GLenum pname, GLboolean* params); +void GLTrace_glGetBufferParameteriv(GLenum target, GLenum pname, GLint* params); +GLenum GLTrace_glGetError(void); +void GLTrace_glGetFloatv(GLenum pname, GLfloat* params); +void GLTrace_glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params); +void GLTrace_glGetIntegerv(GLenum pname, GLint* params); +void GLTrace_glGetProgramiv(GLuint program, GLenum pname, GLint* params); +void GLTrace_glGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, GLchar* infolog); +void GLTrace_glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params); +void GLTrace_glGetShaderiv(GLuint shader, GLenum pname, GLint* params); +void GLTrace_glGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* infolog); +void GLTrace_glGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision); +void GLTrace_glGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, GLchar* source); +const GLubyte* GLTrace_glGetString(GLenum name); +void GLTrace_glGetTexParameterfv(GLenum target, GLenum pname, GLfloat* params); +void GLTrace_glGetTexParameteriv(GLenum target, GLenum pname, GLint* params); +void GLTrace_glGetUniformfv(GLuint program, GLint location, GLfloat* params); +void GLTrace_glGetUniformiv(GLuint program, GLint location, GLint* params); +int GLTrace_glGetUniformLocation(GLuint program, const GLchar* name); +void GLTrace_glGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params); +void GLTrace_glGetVertexAttribiv(GLuint index, GLenum pname, GLint* params); +void GLTrace_glGetVertexAttribPointerv(GLuint index, GLenum pname, GLvoid** pointer); +void GLTrace_glHint(GLenum target, GLenum mode); +GLboolean GLTrace_glIsBuffer(GLuint buffer); +GLboolean GLTrace_glIsEnabled(GLenum cap); +GLboolean GLTrace_glIsFramebuffer(GLuint framebuffer); +GLboolean GLTrace_glIsProgram(GLuint program); +GLboolean GLTrace_glIsRenderbuffer(GLuint renderbuffer); +GLboolean GLTrace_glIsShader(GLuint shader); +GLboolean GLTrace_glIsTexture(GLuint texture); +void GLTrace_glLineWidth(GLfloat width); +void GLTrace_glLinkProgram(GLuint program); +void GLTrace_glPixelStorei(GLenum pname, GLint param); +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_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** string, const GLint* length); +void GLTrace_glStencilFunc(GLenum func, GLint ref, GLuint mask); +void GLTrace_glStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask); +void GLTrace_glStencilMask(GLuint mask); +void GLTrace_glStencilMaskSeparate(GLenum face, GLuint mask); +void GLTrace_glStencilOp(GLenum fail, GLenum zfail, GLenum zpass); +void GLTrace_glStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +void GLTrace_glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +void GLTrace_glTexParameterf(GLenum target, GLenum pname, GLfloat param); +void GLTrace_glTexParameterfv(GLenum target, GLenum pname, const GLfloat* params); +void GLTrace_glTexParameteri(GLenum target, GLenum pname, GLint param); +void GLTrace_glTexParameteriv(GLenum target, GLenum pname, const GLint* params); +void GLTrace_glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid* pixels); +void GLTrace_glUniform1f(GLint location, GLfloat x); +void GLTrace_glUniform1fv(GLint location, GLsizei count, const GLfloat* v); +void GLTrace_glUniform1i(GLint location, GLint x); +void GLTrace_glUniform1iv(GLint location, GLsizei count, const GLint* v); +void GLTrace_glUniform2f(GLint location, GLfloat x, GLfloat y); +void GLTrace_glUniform2fv(GLint location, GLsizei count, const GLfloat* v); +void GLTrace_glUniform2i(GLint location, GLint x, GLint y); +void GLTrace_glUniform2iv(GLint location, GLsizei count, const GLint* v); +void GLTrace_glUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glUniform3fv(GLint location, GLsizei count, const GLfloat* v); +void GLTrace_glUniform3i(GLint location, GLint x, GLint y, GLint z); +void GLTrace_glUniform3iv(GLint location, GLsizei count, const GLint* v); +void GLTrace_glUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +void GLTrace_glUniform4fv(GLint location, GLsizei count, const GLfloat* v); +void GLTrace_glUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w); +void GLTrace_glUniform4iv(GLint location, GLsizei count, const GLint* v); +void GLTrace_glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +void GLTrace_glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +void GLTrace_glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value); +void GLTrace_glUseProgram(GLuint program); +void GLTrace_glValidateProgram(GLuint program); +void GLTrace_glVertexAttrib1f(GLuint indx, GLfloat x); +void GLTrace_glVertexAttrib1fv(GLuint indx, const GLfloat* values); +void GLTrace_glVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y); +void GLTrace_glVertexAttrib2fv(GLuint indx, const GLfloat* values); +void GLTrace_glVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glVertexAttrib3fv(GLuint indx, const GLfloat* values); +void GLTrace_glVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +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); + +// Declarations for GL2Ext APIs + +void GLTrace_glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image); +void GLTrace_glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image); +void GLTrace_glGetProgramBinaryOES(GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +void GLTrace_glProgramBinaryOES(GLuint program, GLenum binaryFormat, const GLvoid *binary, GLint length); +void* GLTrace_glMapBufferOES(GLenum target, GLenum access); +GLboolean GLTrace_glUnmapBufferOES(GLenum target); +void GLTrace_glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid** params); +void GLTrace_glTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels); +void GLTrace_glTexSubImage3DOES(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_glCopyTexSubImage3DOES(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +void GLTrace_glCompressedTexImage3DOES(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data); +void GLTrace_glCompressedTexSubImage3DOES(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_glFramebufferTexture3DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +void GLTrace_glBindVertexArrayOES(GLuint array); +void GLTrace_glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays); +void GLTrace_glGenVertexArraysOES(GLsizei n, GLuint *arrays); +GLboolean GLTrace_glIsVertexArrayOES(GLuint array); +void GLTrace_glGetPerfMonitorGroupsAMD(GLint *numGroups, GLsizei groupsSize, GLuint *groups); +void GLTrace_glGetPerfMonitorCountersAMD(GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); +void GLTrace_glGetPerfMonitorGroupStringAMD(GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); +void GLTrace_glGetPerfMonitorCounterStringAMD(GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); +void GLTrace_glGetPerfMonitorCounterInfoAMD(GLuint group, GLuint counter, GLenum pname, GLvoid *data); +void GLTrace_glGenPerfMonitorsAMD(GLsizei n, GLuint *monitors); +void GLTrace_glDeletePerfMonitorsAMD(GLsizei n, GLuint *monitors); +void GLTrace_glSelectPerfMonitorCountersAMD(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *countersList); +void GLTrace_glBeginPerfMonitorAMD(GLuint monitor); +void GLTrace_glEndPerfMonitorAMD(GLuint monitor); +void GLTrace_glGetPerfMonitorCounterDataAMD(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); +void GLTrace_glBlitFramebufferANGLE(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +void GLTrace_glRenderbufferStorageMultisampleANGLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glRenderbufferStorageMultisampleAPPLE(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glResolveMultisampleFramebufferAPPLE(void); +void GLTrace_glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); +void GLTrace_glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +void GLTrace_glInsertEventMarkerEXT(GLsizei length, const GLchar *marker); +void GLTrace_glPushGroupMarkerEXT(GLsizei length, const GLchar *marker); +void GLTrace_glPopGroupMarkerEXT(void); +void GLTrace_glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments); +void GLTrace_glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glFramebufferTexture2DMultisampleEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +void GLTrace_glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount); +void GLTrace_glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); +void GLTrace_glGenQueriesEXT(GLsizei n, GLuint *ids); +void GLTrace_glDeleteQueriesEXT(GLsizei n, const GLuint *ids); +GLboolean GLTrace_glIsQueryEXT(GLuint id); +void GLTrace_glBeginQueryEXT(GLenum target, GLuint id); +void GLTrace_glEndQueryEXT(GLenum target); +void GLTrace_glGetQueryivEXT(GLenum target, GLenum pname, GLint *params); +void GLTrace_glGetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint *params); +GLenum GLTrace_glGetGraphicsResetStatusEXT(void); +void GLTrace_glReadnPixelsEXT(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void *data); +void GLTrace_glGetnUniformfvEXT(GLuint program, GLint location, GLsizei bufSize, float *params); +void GLTrace_glGetnUniformivEXT(GLuint program, GLint location, GLsizei bufSize, GLint *params); +void GLTrace_glUseProgramStagesEXT(GLuint pipeline, GLbitfield stages, GLuint program); +void GLTrace_glActiveShaderProgramEXT(GLuint pipeline, GLuint program); +GLuint GLTrace_glCreateShaderProgramvEXT(GLenum type, GLsizei count, const GLchar **strings); +void GLTrace_glBindProgramPipelineEXT(GLuint pipeline); +void GLTrace_glDeleteProgramPipelinesEXT(GLsizei n, const GLuint *pipelines); +void GLTrace_glGenProgramPipelinesEXT(GLsizei n, GLuint *pipelines); +GLboolean GLTrace_glIsProgramPipelineEXT(GLuint pipeline); +void GLTrace_glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); +void GLTrace_glGetProgramPipelineivEXT(GLuint pipeline, GLenum pname, GLint *params); +void GLTrace_glProgramUniform1iEXT(GLuint program, GLint location, GLint x); +void GLTrace_glProgramUniform2iEXT(GLuint program, GLint location, GLint x, GLint y); +void GLTrace_glProgramUniform3iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z); +void GLTrace_glProgramUniform4iEXT(GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); +void GLTrace_glProgramUniform1fEXT(GLuint program, GLint location, GLfloat x); +void GLTrace_glProgramUniform2fEXT(GLuint program, GLint location, GLfloat x, GLfloat y); +void GLTrace_glProgramUniform3fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glProgramUniform4fEXT(GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +void GLTrace_glProgramUniform1ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform2ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform3ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform4ivEXT(GLuint program, GLint location, GLsizei count, const GLint *value); +void GLTrace_glProgramUniform1fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform2fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform3fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniform4fvEXT(GLuint program, GLint location, GLsizei count, const GLfloat *value); +void GLTrace_glProgramUniformMatrix2fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glProgramUniformMatrix3fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glProgramUniformMatrix4fvEXT(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +void GLTrace_glValidateProgramPipelineEXT(GLuint pipeline); +void GLTrace_glGetProgramPipelineInfoLogEXT(GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +void GLTrace_glTexStorage1DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +void GLTrace_glTexStorage2DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glTexStorage3DEXT(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +void GLTrace_glTextureStorage1DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +void GLTrace_glTextureStorage2DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glTextureStorage3DEXT(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +void GLTrace_glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples); +void GLTrace_glCoverageMaskNV(GLboolean mask); +void GLTrace_glCoverageOperationNV(GLenum operation); +void GLTrace_glDrawBuffersNV(GLsizei n, const GLenum *bufs); +void GLTrace_glDeleteFencesNV(GLsizei n, const GLuint *fences); +void GLTrace_glGenFencesNV(GLsizei n, GLuint *fences); +GLboolean GLTrace_glIsFenceNV(GLuint fence); +GLboolean GLTrace_glTestFenceNV(GLuint fence); +void GLTrace_glGetFenceivNV(GLuint fence, GLenum pname, GLint *params); +void GLTrace_glFinishFenceNV(GLuint fence); +void GLTrace_glSetFenceNV(GLuint fence, GLenum condition); +void GLTrace_glReadBufferNV(GLenum mode); +void GLTrace_glAlphaFuncQCOM(GLenum func, GLclampf ref); +void GLTrace_glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls); +void GLTrace_glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString); +void GLTrace_glEnableDriverControlQCOM(GLuint driverControl); +void GLTrace_glDisableDriverControlQCOM(GLuint driverControl); +void GLTrace_glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures); +void GLTrace_glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers); +void GLTrace_glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers); +void GLTrace_glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers); +void GLTrace_glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params); +void GLTrace_glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param); +void GLTrace_glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels); +void GLTrace_glExtGetBufferPointervQCOM(GLenum target, GLvoid **params); +void GLTrace_glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders); +void GLTrace_glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms); +GLboolean GLTrace_glExtIsProgramBinaryQCOM(GLuint program); +void GLTrace_glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length); +void GLTrace_glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask); +void GLTrace_glEndTilingQCOM(GLbitfield preserveMask); + +// Declarations for GL1 APIs + +void GLTrace_glAlphaFunc(GLenum func, GLclampf ref); +void GLTrace_glClipPlanef(GLenum plane, const GLfloat *equation); +void GLTrace_glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +void GLTrace_glFogf(GLenum pname, GLfloat param); +void GLTrace_glFogfv(GLenum pname, const GLfloat *params); +void GLTrace_glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +void GLTrace_glGetClipPlanef(GLenum pname, GLfloat eqn[4]); +void GLTrace_glGetLightfv(GLenum light, GLenum pname, GLfloat *params); +void GLTrace_glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params); +void GLTrace_glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params); +void GLTrace_glLightModelf(GLenum pname, GLfloat param); +void GLTrace_glLightModelfv(GLenum pname, const GLfloat *params); +void GLTrace_glLightf(GLenum light, GLenum pname, GLfloat param); +void GLTrace_glLightfv(GLenum light, GLenum pname, const GLfloat *params); +void GLTrace_glLoadMatrixf(const GLfloat *m); +void GLTrace_glMaterialf(GLenum face, GLenum pname, GLfloat param); +void GLTrace_glMaterialfv(GLenum face, GLenum pname, const GLfloat *params); +void GLTrace_glMultMatrixf(const GLfloat *m); +void GLTrace_glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +void GLTrace_glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz); +void GLTrace_glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +void GLTrace_glPointParameterf(GLenum pname, GLfloat param); +void GLTrace_glPointParameterfv(GLenum pname, const GLfloat *params); +void GLTrace_glPointSize(GLfloat size); +void GLTrace_glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glScalef(GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glTexEnvf(GLenum target, GLenum pname, GLfloat param); +void GLTrace_glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params); +void GLTrace_glTranslatef(GLfloat x, GLfloat y, GLfloat z); +void GLTrace_glAlphaFuncx(GLenum func, GLclampx ref); +void GLTrace_glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +void GLTrace_glClearDepthx(GLclampx depth); +void GLTrace_glClientActiveTexture(GLenum texture); +void GLTrace_glClipPlanex(GLenum plane, const GLfixed *equation); +void GLTrace_glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +void GLTrace_glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +void GLTrace_glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +void GLTrace_glDepthRangex(GLclampx zNear, GLclampx zFar); +void GLTrace_glDisableClientState(GLenum array); +void GLTrace_glEnableClientState(GLenum array); +void GLTrace_glFogx(GLenum pname, GLfixed param); +void GLTrace_glFogxv(GLenum pname, const GLfixed *params); +void GLTrace_glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +void GLTrace_glGetClipPlanex(GLenum pname, GLfixed eqn[4]); +void GLTrace_glGetFixedv(GLenum pname, GLfixed *params); +void GLTrace_glGetLightxv(GLenum light, GLenum pname, GLfixed *params); +void GLTrace_glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params); +void GLTrace_glGetPointerv(GLenum pname, GLvoid **params); +void GLTrace_glGetTexEnviv(GLenum env, GLenum pname, GLint *params); +void GLTrace_glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params); +void GLTrace_glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params); +void GLTrace_glLightModelx(GLenum pname, GLfixed param); +void GLTrace_glLightModelxv(GLenum pname, const GLfixed *params); +void GLTrace_glLightx(GLenum light, GLenum pname, GLfixed param); +void GLTrace_glLightxv(GLenum light, GLenum pname, const GLfixed *params); +void GLTrace_glLineWidthx(GLfixed width); +void GLTrace_glLoadIdentity(void); +void GLTrace_glLoadMatrixx(const GLfixed *m); +void GLTrace_glLogicOp(GLenum opcode); +void GLTrace_glMaterialx(GLenum face, GLenum pname, GLfixed param); +void GLTrace_glMaterialxv(GLenum face, GLenum pname, const GLfixed *params); +void GLTrace_glMatrixMode(GLenum mode); +void GLTrace_glMultMatrixx(const GLfixed *m); +void GLTrace_glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +void GLTrace_glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz); +void GLTrace_glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer); +void GLTrace_glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +void GLTrace_glPointParameterx(GLenum pname, GLfixed param); +void GLTrace_glPointParameterxv(GLenum pname, const GLfixed *params); +void GLTrace_glPointSizex(GLfixed size); +void GLTrace_glPolygonOffsetx(GLfixed factor, GLfixed units); +void GLTrace_glPopMatrix(void); +void GLTrace_glPushMatrix(void); +void GLTrace_glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +void GLTrace_glSampleCoveragex(GLclampx value, GLboolean invert); +void GLTrace_glScalex(GLfixed x, GLfixed y, GLfixed z); +void GLTrace_glShadeModel(GLenum mode); +void GLTrace_glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +void GLTrace_glTexEnvi(GLenum target, GLenum pname, GLint param); +void GLTrace_glTexEnvx(GLenum target, GLenum pname, GLfixed param); +void GLTrace_glTexEnviv(GLenum target, GLenum pname, const GLint *params); +void GLTrace_glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params); +void GLTrace_glTexParameterx(GLenum target, GLenum pname, GLfixed param); +void GLTrace_glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params); +void GLTrace_glTranslatex(GLfixed x, GLfixed y, GLfixed z); +void GLTrace_glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +void GLTrace_glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer); + +// Declarations for GL1Ext APIs + +void GLTrace_glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha); +void GLTrace_glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +void GLTrace_glBlendEquationOES(GLenum mode); +void GLTrace_glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height); +void GLTrace_glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height); +void GLTrace_glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height); +void GLTrace_glDrawTexsvOES(const GLshort *coords); +void GLTrace_glDrawTexivOES(const GLint *coords); +void GLTrace_glDrawTexxvOES(const GLfixed *coords); +void GLTrace_glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height); +void GLTrace_glDrawTexfvOES(const GLfloat *coords); +void GLTrace_glAlphaFuncxOES(GLenum func, GLclampx ref); +void GLTrace_glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha); +void GLTrace_glClearDepthxOES(GLclampx depth); +void GLTrace_glClipPlanexOES(GLenum plane, const GLfixed *equation); +void GLTrace_glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha); +void GLTrace_glDepthRangexOES(GLclampx zNear, GLclampx zFar); +void GLTrace_glFogxOES(GLenum pname, GLfixed param); +void GLTrace_glFogxvOES(GLenum pname, const GLfixed *params); +void GLTrace_glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +void GLTrace_glGetClipPlanexOES(GLenum pname, GLfixed eqn[4]); +void GLTrace_glGetFixedvOES(GLenum pname, GLfixed *params); +void GLTrace_glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params); +void GLTrace_glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params); +void GLTrace_glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params); +void GLTrace_glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params); +void GLTrace_glLightModelxOES(GLenum pname, GLfixed param); +void GLTrace_glLightModelxvOES(GLenum pname, const GLfixed *params); +void GLTrace_glLightxOES(GLenum light, GLenum pname, GLfixed param); +void GLTrace_glLightxvOES(GLenum light, GLenum pname, const GLfixed *params); +void GLTrace_glLineWidthxOES(GLfixed width); +void GLTrace_glLoadMatrixxOES(const GLfixed *m); +void GLTrace_glMaterialxOES(GLenum face, GLenum pname, GLfixed param); +void GLTrace_glMaterialxvOES(GLenum face, GLenum pname, const GLfixed *params); +void GLTrace_glMultMatrixxOES(const GLfixed *m); +void GLTrace_glMultiTexCoord4xOES(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q); +void GLTrace_glNormal3xOES(GLfixed nx, GLfixed ny, GLfixed nz); +void GLTrace_glOrthoxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar); +void GLTrace_glPointParameterxOES(GLenum pname, GLfixed param); +void GLTrace_glPointParameterxvOES(GLenum pname, const GLfixed *params); +void GLTrace_glPointSizexOES(GLfixed size); +void GLTrace_glPolygonOffsetxOES(GLfixed factor, GLfixed units); +void GLTrace_glRotatexOES(GLfixed angle, GLfixed x, GLfixed y, GLfixed z); +void GLTrace_glSampleCoveragexOES(GLclampx value, GLboolean invert); +void GLTrace_glScalexOES(GLfixed x, GLfixed y, GLfixed z); +void GLTrace_glTexEnvxOES(GLenum target, GLenum pname, GLfixed param); +void GLTrace_glTexEnvxvOES(GLenum target, GLenum pname, const GLfixed *params); +void GLTrace_glTexParameterxOES(GLenum target, GLenum pname, GLfixed param); +void GLTrace_glTexParameterxvOES(GLenum target, GLenum pname, const GLfixed *params); +void GLTrace_glTranslatexOES(GLfixed x, GLfixed y, GLfixed z); +GLboolean GLTrace_glIsRenderbufferOES(GLuint renderbuffer); +void GLTrace_glBindRenderbufferOES(GLenum target, GLuint renderbuffer); +void GLTrace_glDeleteRenderbuffersOES(GLsizei n, const GLuint* renderbuffers); +void GLTrace_glGenRenderbuffersOES(GLsizei n, GLuint* renderbuffers); +void GLTrace_glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +void GLTrace_glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint* params); +GLboolean GLTrace_glIsFramebufferOES(GLuint framebuffer); +void GLTrace_glBindFramebufferOES(GLenum target, GLuint framebuffer); +void GLTrace_glDeleteFramebuffersOES(GLsizei n, const GLuint* framebuffers); +void GLTrace_glGenFramebuffersOES(GLsizei n, GLuint* framebuffers); +GLenum GLTrace_glCheckFramebufferStatusOES(GLenum target); +void GLTrace_glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +void GLTrace_glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +void GLTrace_glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint* params); +void GLTrace_glGenerateMipmapOES(GLenum target); +void GLTrace_glCurrentPaletteMatrixOES(GLuint matrixpaletteindex); +void GLTrace_glLoadPaletteFromModelViewMatrixOES(void); +void GLTrace_glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +void GLTrace_glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLbitfield GLTrace_glQueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16]); +void GLTrace_glDepthRangefOES(GLclampf zNear, GLclampf zFar); +void GLTrace_glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +void GLTrace_glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar); +void GLTrace_glClipPlanefOES(GLenum plane, const GLfloat *equation); +void GLTrace_glGetClipPlanefOES(GLenum pname, GLfloat eqn[4]); +void GLTrace_glClearDepthfOES(GLclampf depth); +void GLTrace_glTexGenfOES(GLenum coord, GLenum pname, GLfloat param); +void GLTrace_glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params); +void GLTrace_glTexGeniOES(GLenum coord, GLenum pname, GLint param); +void GLTrace_glTexGenivOES(GLenum coord, GLenum pname, const GLint *params); +void GLTrace_glTexGenxOES(GLenum coord, GLenum pname, GLfixed param); +void GLTrace_glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params); +void GLTrace_glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params); +void GLTrace_glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params); +void GLTrace_glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params); +void GLTrace_glClipPlanefIMG(GLenum p, const GLfloat *eqn); +void GLTrace_glClipPlanexIMG(GLenum p, const GLfixed *eqn); + +}; // namespace gltrace +}; // namespace android diff --git a/opengl/libs/GLES_trace/src/gltrace_context.cpp b/opengl/libs/GLES_trace/src/gltrace_context.cpp new file mode 100644 index 0000000..65b7662 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_context.cpp @@ -0,0 +1,212 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <pthread.h> +#include <cutils/log.h> + +extern "C" { +#include "liblzf/lzf.h" +} + +#include "gltrace_context.h" + +namespace android { +namespace gltrace { + +using ::android::gl_hooks_t; + +static pthread_key_t sTLSKey = -1; +static pthread_once_t sPthreadOnceKey = PTHREAD_ONCE_INIT; + +void createTLSKey() { + pthread_key_create(&sTLSKey, NULL); +} + +GLTraceContext *getGLTraceContext() { + return (GLTraceContext*) pthread_getspecific(sTLSKey); +} + +void setGLTraceContext(GLTraceContext *c) { + pthread_setspecific(sTLSKey, c); +} + +void setupTraceContextThreadSpecific(GLTraceContext *context) { + pthread_once(&sPthreadOnceKey, createTLSKey); + setGLTraceContext(context); +} + +void releaseContext() { + GLTraceContext *c = getGLTraceContext(); + if (c != NULL) { + delete c; + setGLTraceContext(NULL); + } +} + +GLTraceState::GLTraceState(TCPStream *stream) { + mTraceContextIds = 0; + mStream = stream; + + mCollectFbOnEglSwap = false; + mCollectFbOnGlDraw = false; + mCollectTextureDataOnGlTexImage = false; + pthread_rwlock_init(&mTraceOptionsRwLock, NULL); +} + +GLTraceState::~GLTraceState() { + if (mStream) { + mStream->closeStream(); + mStream = NULL; + } +} + +TCPStream *GLTraceState::getStream() { + return mStream; +} + +void GLTraceState::safeSetValue(bool *ptr, bool value, pthread_rwlock_t *lock) { + pthread_rwlock_wrlock(lock); + *ptr = value; + pthread_rwlock_unlock(lock); +} + +bool GLTraceState::safeGetValue(bool *ptr, pthread_rwlock_t *lock) { + pthread_rwlock_rdlock(lock); + bool value = *ptr; + pthread_rwlock_unlock(lock); + return value; +} + +void GLTraceState::setCollectFbOnEglSwap(bool en) { + safeSetValue(&mCollectFbOnEglSwap, en, &mTraceOptionsRwLock); +} + +void GLTraceState::setCollectFbOnGlDraw(bool en) { + safeSetValue(&mCollectFbOnGlDraw, en, &mTraceOptionsRwLock); +} + +void GLTraceState::setCollectTextureDataOnGlTexImage(bool en) { + safeSetValue(&mCollectTextureDataOnGlTexImage, en, &mTraceOptionsRwLock); +} + +bool GLTraceState::shouldCollectFbOnEglSwap() { + return safeGetValue(&mCollectFbOnEglSwap, &mTraceOptionsRwLock); +} + +bool GLTraceState::shouldCollectFbOnGlDraw() { + return safeGetValue(&mCollectFbOnGlDraw, &mTraceOptionsRwLock); +} + +bool GLTraceState::shouldCollectTextureDataOnGlTexImage() { + return safeGetValue(&mCollectTextureDataOnGlTexImage, &mTraceOptionsRwLock); +} + +GLTraceContext *GLTraceState::createTraceContext(int version, EGLContext eglContext) { + int id = __sync_fetch_and_add(&mTraceContextIds, 1); + + const size_t DEFAULT_BUFFER_SIZE = 8192; + BufferedOutputStream *stream = new BufferedOutputStream(mStream, DEFAULT_BUFFER_SIZE); + GLTraceContext *traceContext = new GLTraceContext(id, this, stream); + mPerContextState[eglContext] = traceContext; + + return traceContext; +} + +GLTraceContext *GLTraceState::getTraceContext(EGLContext c) { + return mPerContextState[c]; +} + +GLTraceContext::GLTraceContext(int id, GLTraceState *state, BufferedOutputStream *stream) { + mId = id; + mState = state; + + fbcontents = fbcompressed = NULL; + fbcontentsSize = 0; + mBufferedOutputStream = stream; +} + +int GLTraceContext::getId() { + return mId; +} + +GLTraceState *GLTraceContext::getGlobalTraceState() { + return mState; +} + +void GLTraceContext::resizeFBMemory(unsigned minSize) { + if (fbcontentsSize >= minSize) { + return; + } + + if (fbcontents != NULL) { + free(fbcontents); + free(fbcompressed); + } + + fbcontents = malloc(minSize); + fbcompressed = malloc(minSize); + + fbcontentsSize = minSize; +} + +/** obtain a pointer to the compressed framebuffer image */ +void GLTraceContext::getCompressedFB(void **fb, unsigned *fbsize, unsigned *fbwidth, + unsigned *fbheight, FBBinding fbToRead) { + int viewport[4] = {}; + hooks->gl.glGetIntegerv(GL_VIEWPORT, viewport); + unsigned fbContentsSize = viewport[2] * viewport[3] * 4; + + resizeFBMemory(fbContentsSize); + + // switch current framebuffer binding if necessary + GLint currentFb = -1; + bool fbSwitched = false; + if (fbToRead != CURRENTLY_BOUND_FB) { + hooks->gl.glGetIntegerv(GL_FRAMEBUFFER_BINDING, ¤tFb); + + if (currentFb != 0) { + hooks->gl.glBindFramebuffer(GL_FRAMEBUFFER, 0); + fbSwitched = true; + } + } + + hooks->gl.glReadPixels(viewport[0], viewport[1], viewport[2], viewport[3], + GL_RGBA, GL_UNSIGNED_BYTE, fbcontents); + + // switch back to previously bound buffer if necessary + if (fbSwitched) { + hooks->gl.glBindFramebuffer(GL_FRAMEBUFFER, currentFb); + } + + *fbsize = lzf_compress(fbcontents, fbContentsSize, fbcompressed, fbContentsSize); + *fb = fbcompressed; + *fbwidth = viewport[2]; + *fbheight = viewport[3]; +} + +void GLTraceContext::traceGLMessage(GLMessage *msg) { + mBufferedOutputStream->send(msg); + + GLMessage_Function func = msg->function(); + if (func == GLMessage::eglSwapBuffers + || func == GLMessage::glDrawArrays + || func == GLMessage::glDrawElements) { + mBufferedOutputStream->flush(); + } +} + +}; // namespace gltrace +}; // namespace android diff --git a/opengl/libs/GLES_trace/src/gltrace_context.h b/opengl/libs/GLES_trace/src/gltrace_context.h new file mode 100644 index 0000000..129116a --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_context.h @@ -0,0 +1,102 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GLTRACE_CONTEXT_H_ +#define __GLTRACE_CONTEXT_H_ + +#include <map> +#include <pthread.h> + +#include "hooks.h" +#include "gltrace_transport.h" + +namespace android { +namespace gltrace { + +using ::android::gl_hooks_t; + +enum FBBinding {CURRENTLY_BOUND_FB, FB0}; + +class GLTraceState; + +/** GL Trace Context info associated with each EGLContext */ +class GLTraceContext { + int mId; /* unique context id */ + GLTraceState *mState; /* parent GL Trace state (for per process GL Trace State Info) */ + + void *fbcontents; /* memory area to read framebuffer contents */ + void *fbcompressed; /* destination for lzf compressed framebuffer */ + unsigned fbcontentsSize; /* size of fbcontents & fbcompressed buffers */ + + BufferedOutputStream *mBufferedOutputStream; /* stream where trace info is sent */ + + void resizeFBMemory(unsigned minSize); +public: + gl_hooks_t *hooks; + + GLTraceContext(int id, GLTraceState *state, BufferedOutputStream *stream); + int getId(); + GLTraceState *getGlobalTraceState(); + void getCompressedFB(void **fb, unsigned *fbsize, + unsigned *fbwidth, unsigned *fbheight, + FBBinding fbToRead); + void traceGLMessage(GLMessage *msg); +}; + +/** Per process trace state. */ +class GLTraceState { + int mTraceContextIds; + TCPStream *mStream; + std::map<EGLContext, GLTraceContext*> mPerContextState; + + /* Options controlling additional data to be collected on + certain trace calls. */ + bool mCollectFbOnEglSwap; + bool mCollectFbOnGlDraw; + bool mCollectTextureDataOnGlTexImage; + pthread_rwlock_t mTraceOptionsRwLock; + + /* helper methods to get/set values using provided lock for mutual exclusion. */ + void safeSetValue(bool *ptr, bool value, pthread_rwlock_t *lock); + bool safeGetValue(bool *ptr, pthread_rwlock_t *lock); +public: + GLTraceState(TCPStream *stream); + ~GLTraceState(); + + GLTraceContext *createTraceContext(int version, EGLContext c); + GLTraceContext *getTraceContext(EGLContext c); + + TCPStream *getStream(); + + /* Methods to set trace options. */ + void setCollectFbOnEglSwap(bool en); + void setCollectFbOnGlDraw(bool en); + void setCollectTextureDataOnGlTexImage(bool en); + + /* Methods to retrieve trace options. */ + bool shouldCollectFbOnEglSwap(); + bool shouldCollectFbOnGlDraw(); + bool shouldCollectTextureDataOnGlTexImage(); +}; + +void setupTraceContextThreadSpecific(GLTraceContext *context); +GLTraceContext *getGLTraceContext(); +void releaseContext(); + +}; +}; + +#endif diff --git a/opengl/libs/GLES_trace/src/gltrace_egl.cpp b/opengl/libs/GLES_trace/src/gltrace_egl.cpp new file mode 100644 index 0000000..9d1682a --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_egl.cpp @@ -0,0 +1,94 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <cutils/log.h> +#include <utils/Timers.h> + +#include "gltrace.pb.h" +#include "gltrace_context.h" +#include "gltrace_fixup.h" +#include "gltrace_transport.h" + +namespace android { +namespace gltrace { + +void GLTrace_eglCreateContext(int version, int contextId) { + GLMessage glmessage; + GLTraceContext *glContext = getGLTraceContext(); + + glmessage.set_context_id(contextId); + glmessage.set_function(GLMessage::eglCreateContext); + + // copy argument version + GLMessage_DataType *arg_version = glmessage.add_args(); + arg_version->set_isarray(false); + arg_version->set_type(GLMessage::DataType::INT); + arg_version->add_intvalue(version); + + // copy argument context + GLMessage_DataType *arg_context = glmessage.add_args(); + arg_context->set_isarray(false); + arg_context->set_type(GLMessage::DataType::INT); + arg_context->add_intvalue(contextId); + + // set start time and duration + glmessage.set_start_time(systemTime()); + glmessage.set_duration(0); + + glContext->traceGLMessage(&glmessage); +} + +void GLTrace_eglMakeCurrent(int contextId) { + GLMessage glmessage; + GLTraceContext *glContext = getGLTraceContext(); + + glmessage.set_context_id(contextId); + glmessage.set_function(GLMessage::eglMakeCurrent); + + // copy argument context + GLMessage_DataType *arg_context = glmessage.add_args(); + arg_context->set_isarray(false); + arg_context->set_type(GLMessage::DataType::INT); + arg_context->add_intvalue(contextId); + + // set start time and duration + glmessage.set_start_time(systemTime()); + glmessage.set_duration(0); + + glContext->traceGLMessage(&glmessage); +} + +void GLTrace_eglSwapBuffers(void *dpy, void *draw) { + GLMessage glmessage; + GLTraceContext *glContext = getGLTraceContext(); + + glmessage.set_context_id(glContext->getId()); + glmessage.set_function(GLMessage::eglSwapBuffers); + + if (glContext->getGlobalTraceState()->shouldCollectFbOnEglSwap()) { + // read FB0 since that is what is displayed on the screen + fixup_addFBContents(glContext, &glmessage, FB0); + } + + // set start time and duration + glmessage.set_start_time(systemTime()); + glmessage.set_duration(0); + + glContext->traceGLMessage(&glmessage); +} + +}; +}; diff --git a/opengl/libs/GLES_trace/src/gltrace_egl.h b/opengl/libs/GLES_trace/src/gltrace_egl.h new file mode 100644 index 0000000..f4684c5 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_egl.h @@ -0,0 +1,30 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GLTRACE_EGL_H_ +#define __GLTRACE_EGL_H_ + +namespace android { +namespace gltrace { + +void GLTrace_eglCreateContext(int version, int contextId); +void GLTrace_eglMakeCurrent(int contextId); +void GLTrace_eglSwapBuffers(void *dpy, void *draw); + +}; +}; + +#endif diff --git a/opengl/libs/GLES_trace/src/gltrace_eglapi.cpp b/opengl/libs/GLES_trace/src/gltrace_eglapi.cpp new file mode 100644 index 0000000..c442153 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_eglapi.cpp @@ -0,0 +1,134 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <arpa/inet.h> +#include <stdlib.h> +#include <cutils/log.h> +#include <cutils/properties.h> + +#include "hooks.h" +#include "glestrace.h" + +#include "gltrace_context.h" +#include "gltrace_egl.h" +#include "gltrace_hooks.h" +#include "gltrace_transport.h" + +namespace android { + +using gltrace::GLTraceState; +using gltrace::GLTraceContext; +using gltrace::TCPStream; + +static GLTraceState *sGLTraceState; +static pthread_t sReceiveThreadId; + +/** + * Task that monitors the control stream from the host and updates + * the trace status according to commands received from the host. + */ +static void *commandReceiveTask(void *arg) { + GLTraceState *state = (GLTraceState *)arg; + TCPStream *stream = state->getStream(); + + // Currently, there are very few user configurable settings. + // As a result, they can be encoded in a single integer. + int cmd; + enum TraceSettingsMasks { + READ_FB_ON_EGLSWAP_MASK = 1 << 0, + READ_FB_ON_GLDRAW_MASK = 1 << 1, + READ_TEXTURE_DATA_ON_GLTEXIMAGE_MASK = 1 << 2, + }; + + while (true) { + int n = stream->receive(&cmd, 4); + if (n != 4) { + break; + } + + cmd = ntohl(cmd); + + bool collectFbOnEglSwap = (cmd & READ_FB_ON_EGLSWAP_MASK) != 0; + bool collectFbOnGlDraw = (cmd & READ_FB_ON_GLDRAW_MASK) != 0; + bool collectTextureData = (cmd & READ_TEXTURE_DATA_ON_GLTEXIMAGE_MASK) != 0; + + state->setCollectFbOnEglSwap(collectFbOnEglSwap); + state->setCollectFbOnGlDraw(collectFbOnGlDraw); + state->setCollectTextureDataOnGlTexImage(collectTextureData); + + ALOGD("trace options: eglswap: %d, gldraw: %d, texImage: %d", + collectFbOnEglSwap, collectFbOnGlDraw, collectTextureData); + } + + return NULL; +} + +void GLTrace_start() { + char udsName[PROPERTY_VALUE_MAX]; + + property_get("debug.egl.debug_portname", udsName, "gltrace"); + int clientSocket = gltrace::acceptClientConnection(udsName); + if (clientSocket < 0) { + ALOGE("Error creating GLTrace server socket. Quitting application."); + exit(-1); + } + + // create communication channel to the host + TCPStream *stream = new TCPStream(clientSocket); + + // initialize tracing state + sGLTraceState = new GLTraceState(stream); + + pthread_create(&sReceiveThreadId, NULL, commandReceiveTask, sGLTraceState); +} + +void GLTrace_stop() { + delete sGLTraceState; + sGLTraceState = NULL; +} + +void GLTrace_eglCreateContext(int version, EGLContext c) { + // update trace state for new EGL context + GLTraceContext *traceContext = sGLTraceState->createTraceContext(version, c); + gltrace::setupTraceContextThreadSpecific(traceContext); + + // trace command through to the host + gltrace::GLTrace_eglCreateContext(version, traceContext->getId()); +} + +void GLTrace_eglMakeCurrent(const unsigned version, gl_hooks_t *hooks, EGLContext c) { + // setup per context state + GLTraceContext *traceContext = sGLTraceState->getTraceContext(c); + traceContext->hooks = hooks; + gltrace::setupTraceContextThreadSpecific(traceContext); + + // trace command through to the host + gltrace::GLTrace_eglMakeCurrent(traceContext->getId()); +} + +void GLTrace_eglReleaseThread() { + gltrace::releaseContext(); +} + +void GLTrace_eglSwapBuffers(void *dpy, void *draw) { + gltrace::GLTrace_eglSwapBuffers(dpy, draw); +} + +gl_hooks_t *GLTrace_getGLHooks() { + return gltrace::getGLHooks(); +} + +} diff --git a/opengl/libs/GLES_trace/src/gltrace_fixup.cpp b/opengl/libs/GLES_trace/src/gltrace_fixup.cpp new file mode 100644 index 0000000..871b5dc --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_fixup.cpp @@ -0,0 +1,375 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <cutils/log.h> +#include <GLES2/gl2.h> + +#include "gltrace.pb.h" +#include "gltrace_context.h" +#include "gltrace_fixup.h" + +namespace android { +namespace gltrace { + +unsigned getBytesPerTexel(const GLenum format, const GLenum type) { + /* + Description from glTexImage2D spec: + + Data is read from data as a sequence of unsigned bytes or shorts, depending on type. + When type is GL_UNSIGNED_BYTE, each of the bytes is interpreted as one color component. + When type is one of GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4, or + GL_UNSIGNED_SHORT_5_5_5_1, each unsigned short value is interpreted as containing all + the components for a single texel, with the color components arranged according to + format. Color components are treated as groups of one, two, three, or four values, + again based on format. Groups of components are referred to as texels. + + width × height texels are read from memory, starting at location data. By default, + these texels are taken from adjacent memory locations, except that after all width + texels are read, the read pointer is advanced to the next four-byte boundary. + The four-byte row alignment is specified by glPixelStorei with argument + GL_UNPACK_ALIGNMENT, and it can be set to one, two, four, or eight bytes. + */ + + switch (type) { + case GL_UNSIGNED_SHORT_5_6_5: + case GL_UNSIGNED_SHORT_4_4_4_4: + case GL_UNSIGNED_SHORT_5_5_5_1: + return 2; + case GL_UNSIGNED_BYTE: + break; + default: + ALOGE("GetBytesPerPixel: unknown type %x", type); + } + + switch (format) { + case GL_ALPHA: + case GL_LUMINANCE: + return 1; + case GL_LUMINANCE_ALPHA: + return 2; + case GL_RGB: + return 3; + case GL_RGBA: + case 0x80E1: // GL_BGRA_EXT + return 4; + default: + ALOGE("GetBytesPerPixel: unknown format %x", format); + } + + return 1; // in doubt... +} + +/** Generic helper function: extract pointer at argIndex and + replace it with the C style string at *pointer */ +void fixup_CStringPtr(int argIndex, GLMessage *glmsg) { + GLMessage_DataType *arg = glmsg->mutable_args(argIndex); + GLchar *ptr = (GLchar *)arg->intvalue(0); + + arg->set_type(GLMessage::DataType::CHAR); + arg->set_isarray(true); + arg->add_charvalue(ptr); +} + +void fixup_glGetString(GLMessage *glmsg) { + /* const GLubyte* GLTrace_glGetString(GLenum name) */ + GLMessage_DataType *ret = glmsg->mutable_returnvalue(); + GLchar *ptr = (GLchar *)ret->intvalue(0); + + if (ptr != NULL) { + ret->set_type(GLMessage::DataType::CHAR); + ret->set_isarray(true); + ret->add_charvalue(ptr); + } +} + +/* Add the contents of the framebuffer to the protobuf message */ +void fixup_addFBContents(GLTraceContext *context, GLMessage *glmsg, FBBinding fbToRead) { + void *fbcontents; + unsigned fbsize, fbwidth, fbheight; + context->getCompressedFB(&fbcontents, &fbsize, &fbwidth, &fbheight, fbToRead); + + GLMessage_FrameBuffer *fb = glmsg->mutable_fb(); + fb->set_width(fbwidth); + fb->set_height(fbheight); + fb->add_contents(fbcontents, fbsize); +} + +/** Common fixup routing for glTexImage2D & glTexSubImage2D. */ +void fixup_glTexImage(int widthIndex, int heightIndex, GLMessage *glmsg) { + GLMessage_DataType arg_width = glmsg->args(widthIndex); + GLMessage_DataType arg_height = glmsg->args(heightIndex); + + GLMessage_DataType arg_format = glmsg->args(6); + GLMessage_DataType arg_type = glmsg->args(7); + GLMessage_DataType *arg_data = glmsg->mutable_args(8); + + GLsizei width = arg_width.intvalue(0); + GLsizei height = arg_height.intvalue(0); + GLenum format = arg_format.intvalue(0); + GLenum type = arg_type.intvalue(0); + void *data = (void *)arg_data->intvalue(0); + + int bytesPerTexel = getBytesPerTexel(format, type); + + arg_data->set_type(GLMessage::DataType::BYTE); + arg_data->clear_rawbytes(); + + if (data != NULL) { + arg_data->set_isarray(true); + arg_data->add_rawbytes(data, bytesPerTexel * width * height); + } else { + arg_data->set_isarray(false); + arg_data->set_type(GLMessage::DataType::VOID); + } +} + + +void fixup_glTexImage2D(GLMessage *glmsg) { + /* void glTexImage2D(GLenum target, + GLint level, + GLint internalformat, + GLsizei width, + GLsizei height, + GLint border, + GLenum format, + GLenum type, + const GLvoid *data); + */ + int widthIndex = 3; + int heightIndex = 4; + fixup_glTexImage(widthIndex, heightIndex, glmsg); +} + +void fixup_glTexSubImage2D(GLMessage *glmsg) { + /* + void glTexSubImage2D(GLenum target, + GLint level, + GLint xoffset, + GLint yoffset, + GLsizei width, + GLsizei height, + GLenum format, + GLenum type, + const GLvoid * data); + */ + int widthIndex = 4; + int heightIndex = 5; + fixup_glTexImage(widthIndex, heightIndex, glmsg); +} + +void fixup_glShaderSource(GLMessage *glmsg) { + /* void glShaderSource(GLuint shader, GLsizei count, const GLchar** string, + const GLint* length) */ + GLMessage_DataType arg_count = glmsg->args(1); + GLMessage_DataType arg_lenp = glmsg->args(3); + GLMessage_DataType *arg_strpp = glmsg->mutable_args(2); + + GLsizei count = arg_count.intvalue(0); + GLchar **stringpp = (GLchar **)arg_strpp->intvalue(0); + GLint *lengthp = (GLint *)arg_lenp.intvalue(0); + + arg_strpp->set_type(GLMessage::DataType::CHAR); + arg_strpp->set_isarray(true); + arg_strpp->clear_charvalue(); + + ::std::string src = ""; + for (int i = 0; i < count; i++) { + if (lengthp != NULL) + src.append(*stringpp, *lengthp); + else + src.append(*stringpp); // assume null terminated + stringpp++; + lengthp++; + } + + arg_strpp->add_charvalue(src); +} + +void fixup_glUniformGeneric(int argIndex, int nFloats, GLMessage *glmsg) { + GLMessage_DataType *arg_values = glmsg->mutable_args(argIndex); + GLfloat *src = (GLfloat*)arg_values->intvalue(0); + + arg_values->set_type(GLMessage::DataType::FLOAT); + arg_values->set_isarray(true); + arg_values->clear_floatvalue(); + + for (int i = 0; i < nFloats; i++) { + arg_values->add_floatvalue(*src++); + } +} + +void fixup_glUniformMatrixGeneric(int matrixSize, GLMessage *glmsg) { + /* void glUniformMatrix?fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) */ + GLMessage_DataType arg_count = glmsg->args(1); + int n_matrices = arg_count.intvalue(0); + fixup_glUniformGeneric(3, matrixSize * matrixSize * n_matrices, glmsg); +} + +void fixup_GenericIntArray(int argIndex, int nInts, GLMessage *glmsg) { + GLMessage_DataType *arg_intarray = glmsg->mutable_args(argIndex); + GLint *intp = (GLint *)arg_intarray->intvalue(0); + + arg_intarray->set_type(GLMessage::DataType::INT); + arg_intarray->set_isarray(true); + arg_intarray->clear_intvalue(); + + for (int i = 0; i < nInts; i++, intp++) { + arg_intarray->add_intvalue(*intp); + } +} + +void fixup_glGenGeneric(GLMessage *glmsg) { + /* void glGen*(GLsizei n, GLuint * buffers); */ + GLMessage_DataType arg_n = glmsg->args(0); + GLsizei n = arg_n.intvalue(0); + + fixup_GenericIntArray(1, n, glmsg); +} + +void fixup_glDeleteGeneric(GLMessage *glmsg) { + /* void glDelete*(GLsizei n, GLuint *buffers); */ + GLMessage_DataType arg_n = glmsg->args(0); + GLsizei n = arg_n.intvalue(0); + + fixup_GenericIntArray(1, n, glmsg); +} + +void fixup_glGetBooleanv(GLMessage *glmsg) { + /* void glGetBooleanv(GLenum pname, GLboolean *params); */ + GLMessage_DataType *arg_params = glmsg->mutable_args(1); + GLboolean *src = (GLboolean*)arg_params->intvalue(0); + + arg_params->set_type(GLMessage::DataType::BOOL); + arg_params->set_isarray(true); + arg_params->clear_boolvalue(); + arg_params->add_boolvalue(*src); +} + +void fixup_glGetFloatv(GLMessage *glmsg) { + /* void glGetFloatv(GLenum pname, GLfloat *params); */ + GLMessage_DataType *arg_params = glmsg->mutable_args(1); + GLfloat *src = (GLfloat*)arg_params->intvalue(0); + + arg_params->set_type(GLMessage::DataType::FLOAT); + arg_params->set_isarray(true); + arg_params->clear_floatvalue(); + arg_params->add_floatvalue(*src); +} + +void fixupGLMessage(GLTraceContext *context, nsecs_t start, nsecs_t end, GLMessage *glmsg) { + // for all messages, set the current context id + glmsg->set_context_id(context->getId()); + + // set start time and duration + glmsg->set_start_time(start); + glmsg->set_duration((unsigned)(end - start)); + + // do any custom message dependent processing + switch (glmsg->function()) { + case GLMessage::glDeleteBuffers: /* glDeleteBuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glDeleteFramebuffers: /* glDeleteFramebuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glDeleteRenderbuffers:/* glDeleteRenderbuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glDeleteTextures: /* glDeleteTextures(GLsizei n, GLuint *textures); */ + fixup_glDeleteGeneric(glmsg); + break; + case GLMessage::glGenBuffers: /* void glGenBuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glGenFramebuffers: /* void glGenFramebuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glGenRenderbuffers: /* void glGenFramebuffers(GLsizei n, GLuint *buffers); */ + case GLMessage::glGenTextures: /* void glGenTextures(GLsizei n, GLuint *textures); */ + fixup_glGenGeneric(glmsg); + break; + case GLMessage::glGetAttribLocation: + case GLMessage::glGetUniformLocation: + /* int glGetAttribLocation(GLuint program, const GLchar* name) */ + /* int glGetUniformLocation(GLuint program, const GLchar* name) */ + fixup_CStringPtr(1, glmsg); + break; + case GLMessage::glGetBooleanv: + fixup_glGetBooleanv(glmsg); + break; + case GLMessage::glGetFloatv: + fixup_glGetFloatv(glmsg); + break; + case GLMessage::glGetIntegerv: /* void glGetIntegerv(GLenum pname, GLint *params); */ + fixup_GenericIntArray(1, 1, glmsg); + break; + case GLMessage::glGetProgramiv: + case GLMessage::glGetRenderbufferParameteriv: + case GLMessage::glGetShaderiv: + /* void glGetProgramiv(GLuint program, GLenum pname, GLint* params) */ + /* void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params) */ + /* void glGetShaderiv(GLuint shader, GLenum pname, GLint* params) */ + fixup_GenericIntArray(2, 1, glmsg); + break; + case GLMessage::glGetString: + fixup_glGetString(glmsg); + break; + case GLMessage::glTexImage2D: + if (context->getGlobalTraceState()->shouldCollectTextureDataOnGlTexImage()) { + fixup_glTexImage2D(glmsg); + } + break; + case GLMessage::glTexSubImage2D: + if (context->getGlobalTraceState()->shouldCollectTextureDataOnGlTexImage()) { + fixup_glTexSubImage2D(glmsg); + } + break; + case GLMessage::glShaderSource: + fixup_glShaderSource(glmsg); + break; + case GLMessage::glUniformMatrix2fv: + /* void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) */ + fixup_glUniformMatrixGeneric(2, glmsg); + break; + case GLMessage::glUniformMatrix3fv: + /* void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) */ + fixup_glUniformMatrixGeneric(3, glmsg); + break; + case GLMessage::glUniformMatrix4fv: + /* void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, + const GLfloat* value) */ + fixup_glUniformMatrixGeneric(4, glmsg); + break; + case GLMessage::glDrawArrays: + /* void glDrawArrays(GLenum mode, GLint first, GLsizei count) */ + if (context->getGlobalTraceState()->shouldCollectFbOnGlDraw()) { + fixup_addFBContents(context, glmsg, CURRENTLY_BOUND_FB); + } + break; + case GLMessage::glDrawElements: + /* void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid* indices) */ + if (context->getGlobalTraceState()->shouldCollectFbOnGlDraw()) { + fixup_addFBContents(context, glmsg, CURRENTLY_BOUND_FB); + } + break; + case GLMessage::glPushGroupMarkerEXT: + /* void PushGroupMarkerEXT(sizei length, const char *marker); */ + fixup_CStringPtr(1, glmsg); + break; + case GLMessage::glInsertEventMarkerEXT: + /* void InsertEventMarkerEXT(sizei length, const char *marker); */ + fixup_CStringPtr(1, glmsg); + break; + default: + break; + } +} + +}; +}; diff --git a/opengl/libs/GLES_trace/src/gltrace_fixup.h b/opengl/libs/GLES_trace/src/gltrace_fixup.h new file mode 100644 index 0000000..64f7545 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_fixup.h @@ -0,0 +1,34 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GLTRACE_FIXUP_H_ +#define __GLTRACE_FIXUP_H_ + +#include <utils/Timers.h> + +#include "gltrace.pb.h" +#include "gltrace_context.h" + +namespace android { +namespace gltrace { + +void fixupGLMessage(GLTraceContext *curContext, nsecs_t start, nsecs_t end, GLMessage *message); +void fixup_addFBContents(GLTraceContext *curContext, GLMessage *message, FBBinding fbToRead); + +}; +}; + +#endif diff --git a/opengl/libs/GLES_trace/src/gltrace_hooks.cpp b/opengl/libs/GLES_trace/src/gltrace_hooks.cpp new file mode 100644 index 0000000..de8d463 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_hooks.cpp @@ -0,0 +1,41 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "hooks.h" +#include "gltrace_api.h" +#include "gltrace_hooks.h" + +namespace android { +namespace gltrace { + +// Hook up all the GLTrace functions +#define GL_ENTRY(_r, _api, ...) GLTrace_ ## _api, +EGLAPI gl_hooks_t gHooksDebug = { + { + #include "entries.in" + }, + { + {0} + } +}; +#undef GL_ENTRY + +gl_hooks_t *getGLHooks() { + return &gHooksDebug; +} + +}; +}; diff --git a/opengl/libs/GLES_trace/src/gltrace_hooks.h b/opengl/libs/GLES_trace/src/gltrace_hooks.h new file mode 100644 index 0000000..c946a09 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_hooks.h @@ -0,0 +1,32 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GLD_HOOKS_H_ +#define __GLD_HOOKS_H_ + +#include "hooks.h" + +namespace android { +namespace gltrace { + +using ::android::gl_hooks_t; + +gl_hooks_t *getGLHooks(); + +}; +}; + +#endif diff --git a/opengl/libs/GLES_trace/src/gltrace_transport.cpp b/opengl/libs/GLES_trace/src/gltrace_transport.cpp new file mode 100644 index 0000000..5251b12 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_transport.cpp @@ -0,0 +1,150 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include <stdlib.h> +#include <unistd.h> + +#include <unistd.h> +#include <sys/socket.h> +#include <sys/un.h> +#include <netinet/in.h> + +#include <cutils/log.h> + +#include "gltrace_transport.h" + +namespace android { +namespace gltrace { + +int acceptClientConnection(char *sockname) { + int serverSocket = socket(AF_LOCAL, SOCK_STREAM, 0); + if (serverSocket < 0) { + ALOGE("Error (%d) while creating socket. Check if app has network permissions.", + serverSocket); + return -1; + } + + struct sockaddr_un server, client; + + memset(&server, 0, sizeof server); + server.sun_family = AF_UNIX; + // the first byte of sun_path should be '\0' for abstract namespace + strcpy(server.sun_path + 1, sockname); + + // note that sockaddr_len should be set to the exact size of the buffer that is used. + socklen_t sockaddr_len = sizeof(server.sun_family) + strlen(sockname) + 1; + if (bind(serverSocket, (struct sockaddr *) &server, sockaddr_len) < 0) { + close(serverSocket); + ALOGE("Failed to bind the server socket"); + return -1; + } + + if (listen(serverSocket, 1) < 0) { + close(serverSocket); + ALOGE("Failed to listen on server socket"); + return -1; + } + + ALOGD("gltrace::waitForClientConnection: server listening @ path %s", sockname); + + int clientSocket = accept(serverSocket, (struct sockaddr *)&client, &sockaddr_len); + if (clientSocket < 0) { + close(serverSocket); + ALOGE("Failed to accept client connection"); + return -1; + } + + ALOGD("gltrace::waitForClientConnection: client connected."); + + // do not accept any more incoming connections + close(serverSocket); + + return clientSocket; +} + +TCPStream::TCPStream(int socket) { + mSocket = socket; + pthread_mutex_init(&mSocketWriteMutex, NULL); +} + +TCPStream::~TCPStream() { + pthread_mutex_destroy(&mSocketWriteMutex); +} + +void TCPStream::closeStream() { + if (mSocket > 0) { + close(mSocket); + mSocket = 0; + } +} + +int TCPStream::send(void *buf, size_t len) { + if (mSocket <= 0) { + return -1; + } + + pthread_mutex_lock(&mSocketWriteMutex); + int n = write(mSocket, buf, len); + pthread_mutex_unlock(&mSocketWriteMutex); + + return n; +} + +int TCPStream::receive(void *data, size_t len) { + if (mSocket <= 0) { + return -1; + } + + return read(mSocket, data, len); +} + +BufferedOutputStream::BufferedOutputStream(TCPStream *stream, size_t bufferSize) { + mStream = stream; + + mBufferSize = bufferSize; + mStringBuffer = ""; + mStringBuffer.reserve(bufferSize); +} + +int BufferedOutputStream::flush() { + if (mStringBuffer.size() == 0) { + return 0; + } + + int n = mStream->send((void *)mStringBuffer.data(), mStringBuffer.size()); + mStringBuffer.clear(); + return n; +} + +void BufferedOutputStream::enqueueMessage(GLMessage *msg) { + const uint32_t len = msg->ByteSize(); + + mStringBuffer.append((const char *)&len, sizeof(len)); // append header + msg->AppendToString(&mStringBuffer); // append message +} + +int BufferedOutputStream::send(GLMessage *msg) { + enqueueMessage(msg); + + if (mStringBuffer.size() > mBufferSize) { + return flush(); + } + + return 0; +} + +}; // namespace gltrace +}; // namespace android diff --git a/opengl/libs/GLES_trace/src/gltrace_transport.h b/opengl/libs/GLES_trace/src/gltrace_transport.h new file mode 100644 index 0000000..3665035 --- /dev/null +++ b/opengl/libs/GLES_trace/src/gltrace_transport.h @@ -0,0 +1,88 @@ +/* + * Copyright 2011, The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef __GLTRACE_TRANSPORT_H_ +#define __GLTRACE_TRANSPORT_H_ + +#include <pthread.h> + +#include "gltrace.pb.h" + +namespace android { +namespace gltrace { + +/** + * TCPStream provides a TCP based communication channel from the device to + * the host for transferring GLMessages. + */ +class TCPStream { + int mSocket; + pthread_mutex_t mSocketWriteMutex; +public: + /** Create a TCP based communication channel over @socket */ + TCPStream(int socket); + ~TCPStream(); + + /** Close the channel. */ + void closeStream(); + + /** Send @data of size @len to host. . Returns -1 on error, 0 on success. */ + int send(void *data, size_t len); + + /** Receive data into @buf from the remote end. This is a blocking call. */ + int receive(void *buf, size_t size); +}; + +/** + * BufferedOutputStream provides buffering of data sent to the underlying + * unbuffered channel. + */ +class BufferedOutputStream { + TCPStream *mStream; + + size_t mBufferSize; + std::string mStringBuffer; + + /** Enqueue message into internal buffer. */ + void enqueueMessage(GLMessage *msg); +public: + /** + * Construct a Buffered stream of size @bufferSize, using @stream as + * its underlying channel for transport. + */ + BufferedOutputStream(TCPStream *stream, size_t bufferSize); + + /** + * Send @msg. The message could be buffered and sent later with a + * subsequent message. Returns -1 on error, 0 on success. + */ + int send(GLMessage *msg); + + /** Send any buffered messages, returns -1 on error, 0 on success. */ + int flush(); +}; + +/** + * Utility method: start a server listening at @sockName (unix domain socket, + * abstract namespace path), and wait for a client connection. + * Returns the connected client socket on success, or -1 on failure. + */ +int acceptClientConnection(char *sockName); + +}; +}; + +#endif |