gltrace.proto revision 4774338bd0ad1ebe42c311fd0c72f13786b5c800
1/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.gltrace;
18
19option optimize_for = LITE_RUNTIME;
20
21option java_package = "com.android.ide.eclipse.gltrace";
22option java_outer_classname = "GLProtoBuf";
23
24message GLMessage {
25    enum Function {
26        glActiveTexture = 0;
27        glAlphaFunc = 1;
28        glAlphaFuncx = 2;
29        glAlphaFuncxOES = 3;
30        glAttachShader = 4;
31        glBeginPerfMonitorAMD = 5;
32        glBindAttribLocation = 6;
33        glBindBuffer = 7;
34        glBindFramebuffer = 8;
35        glBindFramebufferOES = 9;
36        glBindRenderbuffer = 10;
37        glBindRenderbufferOES = 11;
38        glBindTexture = 12;
39        glBindVertexArrayOES = 13;
40        glBlendColor = 14;
41        glBlendEquation = 15;
42        glBlendEquationOES = 16;
43        glBlendEquationSeparate = 17;
44        glBlendEquationSeparateOES = 18;
45        glBlendFunc = 19;
46        glBlendFuncSeparate = 20;
47        glBlendFuncSeparateOES = 21;
48        glBufferData = 22;
49        glBufferSubData = 23;
50        glCheckFramebufferStatus = 24;
51        glCheckFramebufferStatusOES = 25;
52        glClearColor = 26;
53        glClearColorx = 27;
54        glClearColorxOES = 28;
55        glClearDepthf = 29;
56        glClearDepthfOES = 30;
57        glClearDepthx = 31;
58        glClearDepthxOES = 32;
59        glClear = 33;
60        glClearStencil = 34;
61        glClientActiveTexture = 35;
62        glClipPlanef = 36;
63        glClipPlanefIMG = 37;
64        glClipPlanefOES = 38;
65        glClipPlanex = 39;
66        glClipPlanexIMG = 40;
67        glClipPlanexOES = 41;
68        glColor4f = 42;
69        glColor4ub = 43;
70        glColor4x = 44;
71        glColor4xOES = 45;
72        glColorMask = 46;
73        glColorPointer = 47;
74        glCompileShader = 48;
75        glCompressedTexImage2D = 49;
76        glCompressedTexImage3DOES = 50;
77        glCompressedTexSubImage2D = 51;
78        glCompressedTexSubImage3DOES = 52;
79        glCopyTexImage2D = 53;
80        glCopyTexSubImage2D = 54;
81        glCopyTexSubImage3DOES = 55;
82        glCoverageMaskNV = 56;
83        glCoverageOperationNV = 57;
84        glCreateProgram = 58;
85        glCreateShader = 59;
86        glCullFace = 60;
87        glCurrentPaletteMatrixOES = 61;
88        glDeleteBuffers = 62;
89        glDeleteFencesNV = 63;
90        glDeleteFramebuffers = 64;
91        glDeleteFramebuffersOES = 65;
92        glDeletePerfMonitorsAMD = 66;
93        glDeleteProgram = 67;
94        glDeleteRenderbuffers = 68;
95        glDeleteRenderbuffersOES = 69;
96        glDeleteShader = 70;
97        glDeleteTextures = 71;
98        glDeleteVertexArraysOES = 72;
99        glDepthFunc = 73;
100        glDepthMask = 74;
101        glDepthRangef = 75;
102        glDepthRangefOES = 76;
103        glDepthRangex = 77;
104        glDepthRangexOES = 78;
105        glDetachShader = 79;
106        glDisableClientState = 80;
107        glDisableDriverControlQCOM = 81;
108        glDisable = 82;
109        glDisableVertexAttribArray = 83;
110        glDiscardFramebufferEXT = 84;
111        glDrawArrays = 85;
112        glDrawElements = 86;
113        glDrawTexfOES = 87;
114        glDrawTexfvOES = 88;
115        glDrawTexiOES = 89;
116        glDrawTexivOES = 90;
117        glDrawTexsOES = 91;
118        glDrawTexsvOES = 92;
119        glDrawTexxOES = 93;
120        glDrawTexxvOES = 94;
121        glEGLImageTargetRenderbufferStorageOES = 95;
122        glEGLImageTargetTexture2DOES = 96;
123        glEnableClientState = 97;
124        glEnableDriverControlQCOM = 98;
125        glEnable = 99;
126        glEnableVertexAttribArray = 100;
127        glEndPerfMonitorAMD = 101;
128        glEndTilingQCOM = 102;
129        glExtGetBufferPointervQCOM = 103;
130        glExtGetBuffersQCOM = 104;
131        glExtGetFramebuffersQCOM = 105;
132        glExtGetProgramBinarySourceQCOM = 106;
133        glExtGetProgramsQCOM = 107;
134        glExtGetRenderbuffersQCOM = 108;
135        glExtGetShadersQCOM = 109;
136        glExtGetTexLevelParameterivQCOM = 110;
137        glExtGetTexSubImageQCOM = 111;
138        glExtGetTexturesQCOM = 112;
139        glExtIsProgramBinaryQCOM = 113;
140        glExtTexObjectStateOverrideiQCOM = 114;
141        glFinishFenceNV = 115;
142        glFinish = 116;
143        glFlush = 117;
144        glFogf = 118;
145        glFogfv = 119;
146        glFogx = 120;
147        glFogxOES = 121;
148        glFogxv = 122;
149        glFogxvOES = 123;
150        glFramebufferRenderbuffer = 124;
151        glFramebufferRenderbufferOES = 125;
152        glFramebufferTexture2D = 126;
153        glFramebufferTexture2DMultisampleIMG = 127;
154        glFramebufferTexture2DOES = 128;
155        glFramebufferTexture3DOES = 129;
156        glFrontFace = 130;
157        glFrustumf = 131;
158        glFrustumfOES = 132;
159        glFrustumx = 133;
160        glFrustumxOES = 134;
161        glGenBuffers = 135;
162        glGenerateMipmap = 136;
163        glGenerateMipmapOES = 137;
164        glGenFencesNV = 138;
165        glGenFramebuffers = 139;
166        glGenFramebuffersOES = 140;
167        glGenPerfMonitorsAMD = 141;
168        glGenRenderbuffers = 142;
169        glGenRenderbuffersOES = 143;
170        glGenTextures = 144;
171        glGenVertexArraysOES = 145;
172        glGetActiveAttrib = 146;
173        glGetActiveUniform = 147;
174        glGetAttachedShaders = 148;
175        glGetAttribLocation = 149;
176        glGetBooleanv = 150;
177        glGetBufferParameteriv = 151;
178        glGetBufferPointervOES = 152;
179        glGetClipPlanef = 153;
180        glGetClipPlanefOES = 154;
181        glGetClipPlanex = 155;
182        glGetClipPlanexOES = 156;
183        glGetDriverControlsQCOM = 157;
184        glGetDriverControlStringQCOM = 158;
185        glGetError = 159;
186        glGetFenceivNV = 160;
187        glGetFixedv = 161;
188        glGetFixedvOES = 162;
189        glGetFloatv = 163;
190        glGetFramebufferAttachmentParameteriv = 164;
191        glGetFramebufferAttachmentParameterivOES = 165;
192        glGetIntegerv = 166;
193        glGetLightfv = 167;
194        glGetLightxv = 168;
195        glGetLightxvOES = 169;
196        glGetMaterialfv = 170;
197        glGetMaterialxv = 171;
198        glGetMaterialxvOES = 172;
199        glGetPerfMonitorCounterDataAMD = 173;
200        glGetPerfMonitorCounterInfoAMD = 174;
201        glGetPerfMonitorCountersAMD = 175;
202        glGetPerfMonitorCounterStringAMD = 176;
203        glGetPerfMonitorGroupsAMD = 177;
204        glGetPerfMonitorGroupStringAMD = 178;
205        glGetPointerv = 179;
206        glGetProgramBinaryOES = 180;
207        glGetProgramInfoLog = 181;
208        glGetProgramiv = 182;
209        glGetRenderbufferParameteriv = 183;
210        glGetRenderbufferParameterivOES = 184;
211        glGetShaderInfoLog = 185;
212        glGetShaderiv = 186;
213        glGetShaderPrecisionFormat = 187;
214        glGetShaderSource = 188;
215        glGetString = 189;
216        glGetTexEnvfv = 190;
217        glGetTexEnviv = 191;
218        glGetTexEnvxv = 192;
219        glGetTexEnvxvOES = 193;
220        glGetTexGenfvOES = 194;
221        glGetTexGenivOES = 195;
222        glGetTexGenxvOES = 196;
223        glGetTexParameterfv = 197;
224        glGetTexParameteriv = 198;
225        glGetTexParameterxv = 199;
226        glGetTexParameterxvOES = 200;
227        glGetUniformfv = 201;
228        glGetUniformiv = 202;
229        glGetUniformLocation = 203;
230        glGetVertexAttribfv = 204;
231        glGetVertexAttribiv = 205;
232        glGetVertexAttribPointerv = 206;
233        glHint = 207;
234        glIsBuffer = 208;
235        glIsEnabled = 209;
236        glIsFenceNV = 210;
237        glIsFramebuffer = 211;
238        glIsFramebufferOES = 212;
239        glIsProgram = 213;
240        glIsRenderbuffer = 214;
241        glIsRenderbufferOES = 215;
242        glIsShader = 216;
243        glIsTexture = 217;
244        glIsVertexArrayOES = 218;
245        glLightf = 219;
246        glLightfv = 220;
247        glLightModelf = 221;
248        glLightModelfv = 222;
249        glLightModelx = 223;
250        glLightModelxOES = 224;
251        glLightModelxv = 225;
252        glLightModelxvOES = 226;
253        glLightx = 227;
254        glLightxOES = 228;
255        glLightxv = 229;
256        glLightxvOES = 230;
257        glLineWidth = 231;
258        glLineWidthx = 232;
259        glLineWidthxOES = 233;
260        glLinkProgram = 234;
261        glLoadIdentity = 235;
262        glLoadMatrixf = 236;
263        glLoadMatrixx = 237;
264        glLoadMatrixxOES = 238;
265        glLoadPaletteFromModelViewMatrixOES = 239;
266        glLogicOp = 240;
267        glMapBufferOES = 241;
268        glMaterialf = 242;
269        glMaterialfv = 243;
270        glMaterialx = 244;
271        glMaterialxOES = 245;
272        glMaterialxv = 246;
273        glMaterialxvOES = 247;
274        glMatrixIndexPointerOES = 248;
275        glMatrixMode = 249;
276        glMultiDrawArraysEXT = 250;
277        glMultiDrawElementsEXT = 251;
278        glMultiTexCoord4f = 252;
279        glMultiTexCoord4x = 253;
280        glMultiTexCoord4xOES = 254;
281        glMultMatrixf = 255;
282        glMultMatrixx = 256;
283        glMultMatrixxOES = 257;
284        glNormal3f = 258;
285        glNormal3x = 259;
286        glNormal3xOES = 260;
287        glNormalPointer = 261;
288        glOrthof = 262;
289        glOrthofOES = 263;
290        glOrthox = 264;
291        glOrthoxOES = 265;
292        glPixelStorei = 266;
293        glPointParameterf = 267;
294        glPointParameterfv = 268;
295        glPointParameterx = 269;
296        glPointParameterxOES = 270;
297        glPointParameterxv = 271;
298        glPointParameterxvOES = 272;
299        glPointSize = 273;
300        glPointSizePointerOES = 274;
301        glPointSizex = 275;
302        glPointSizexOES = 276;
303        glPolygonOffset = 277;
304        glPolygonOffsetx = 278;
305        glPolygonOffsetxOES = 279;
306        glPopMatrix = 280;
307        glProgramBinaryOES = 281;
308        glPushMatrix = 282;
309        glQueryMatrixxOES = 283;
310        glReadPixels = 284;
311        glReleaseShaderCompiler = 285;
312        glRenderbufferStorage = 286;
313        glRenderbufferStorageMultisampleIMG = 287;
314        glRenderbufferStorageOES = 288;
315        glRotatef = 289;
316        glRotatex = 290;
317        glRotatexOES = 291;
318        glSampleCoverage = 292;
319        glSampleCoveragex = 293;
320        glSampleCoveragexOES = 294;
321        glScalef = 295;
322        glScalex = 296;
323        glScalexOES = 297;
324        glScissor = 298;
325        glSelectPerfMonitorCountersAMD = 299;
326        glSetFenceNV = 300;
327        glShadeModel = 301;
328        glShaderBinary = 302;
329        glShaderSource = 303;
330        glStartTilingQCOM = 304;
331        glStencilFunc = 305;
332        glStencilFuncSeparate = 306;
333        glStencilMask = 307;
334        glStencilMaskSeparate = 308;
335        glStencilOp = 309;
336        glStencilOpSeparate = 310;
337        glTestFenceNV = 311;
338        glTexCoordPointer = 312;
339        glTexEnvf = 313;
340        glTexEnvfv = 314;
341        glTexEnvi = 315;
342        glTexEnviv = 316;
343        glTexEnvx = 317;
344        glTexEnvxOES = 318;
345        glTexEnvxv = 319;
346        glTexEnvxvOES = 320;
347        glTexGenfOES = 321;
348        glTexGenfvOES = 322;
349        glTexGeniOES = 323;
350        glTexGenivOES = 324;
351        glTexGenxOES = 325;
352        glTexGenxvOES = 326;
353        glTexImage2D = 327;
354        glTexImage3DOES = 328;
355        glTexParameterf = 329;
356        glTexParameterfv = 330;
357        glTexParameteri = 331;
358        glTexParameteriv = 332;
359        glTexParameterx = 333;
360        glTexParameterxOES = 334;
361        glTexParameterxv = 335;
362        glTexParameterxvOES = 336;
363        glTexSubImage2D = 337;
364        glTexSubImage3DOES = 338;
365        glTranslatef = 339;
366        glTranslatex = 340;
367        glTranslatexOES = 341;
368        glUniform1f = 342;
369        glUniform1fv = 343;
370        glUniform1i = 344;
371        glUniform1iv = 345;
372        glUniform2f = 346;
373        glUniform2fv = 347;
374        glUniform2i = 348;
375        glUniform2iv = 349;
376        glUniform3f = 350;
377        glUniform3fv = 351;
378        glUniform3i = 352;
379        glUniform3iv = 353;
380        glUniform4f = 354;
381        glUniform4fv = 355;
382        glUniform4i = 356;
383        glUniform4iv = 357;
384        glUniformMatrix2fv = 358;
385        glUniformMatrix3fv = 359;
386        glUniformMatrix4fv = 360;
387        glUnmapBufferOES = 361;
388        glUseProgram = 362;
389        glValidateProgram = 363;
390        glVertexAttrib1f = 364;
391        glVertexAttrib1fv = 365;
392        glVertexAttrib2f = 366;
393        glVertexAttrib2fv = 367;
394        glVertexAttrib3f = 368;
395        glVertexAttrib3fv = 369;
396        glVertexAttrib4f = 370;
397        glVertexAttrib4fv = 371;
398        glVertexAttribPointer = 372;
399        glVertexPointer = 373;
400        glViewport = 374;
401        glWeightPointerOES = 375;
402        glReadBuffer = 376;
403        glDrawRangeElements = 377;
404        glTexImage3D = 378;
405        glTexSubImage3D = 379;
406        glCopyTexSubImage3D = 380;
407        glCompressedTexImage3D = 381;
408        glCompressedTexSubImage3D = 382;
409        glGenQueries = 383;
410        glDeleteQueries = 384;
411        glIsQuery = 385;
412        glBeginQuery = 386;
413        glEndQuery = 387;
414        glGetQueryiv = 388;
415        glGetQueryObjectuiv = 389;
416        glUnmapBuffer = 390;
417        glGetBufferPointerv = 391;
418        glDrawBuffers = 392;
419        glUniformMatrix2x3fv = 393;
420        glUniformMatrix3x2fv = 394;
421        glUniformMatrix2x4fv = 395;
422        glUniformMatrix4x2fv = 396;
423        glUniformMatrix3x4fv = 397;
424        glUniformMatrix4x3fv = 398;
425        glBlitFramebuffer = 399;
426        glRenderbufferStorageMultisample = 400;
427        glFramebufferTextureLayer = 401;
428        glMapBufferRange = 402;
429        glFlushMappedBufferRange = 403;
430        glBindVertexArray = 404;
431        glDeleteVertexArrays = 405;
432        glGenVertexArrays = 406;
433        glIsVertexArray = 407;
434        glGetIntegeri_v = 408;
435        glBeginTransformFeedback = 409;
436        glEndTransformFeedback = 410;
437        glBindBufferRange = 411;
438        glBindBufferBase = 412;
439        glTransformFeedbackVaryings = 413;
440        glGetTransformFeedbackVarying = 414;
441        glVertexAttribIPointer = 415;
442        glGetVertexAttribIiv = 416;
443        glGetVertexAttribIuiv = 417;
444        glVertexAttribI4i = 418;
445        glVertexAttribI4ui = 419;
446        glVertexAttribI4iv = 420;
447        glVertexAttribI4uiv = 421;
448        glGetUniformuiv = 422;
449        glGetFragDataLocation = 423;
450        glUniform1ui = 424;
451        glUniform2ui = 425;
452        glUniform3ui = 426;
453        glUniform4ui = 427;
454        glUniform1uiv = 428;
455        glUniform2uiv = 429;
456        glUniform3uiv = 430;
457        glUniform4uiv = 431;
458        glClearBufferiv = 432;
459        glClearBufferuiv = 433;
460        glClearBufferfv = 434;
461        glClearBufferfi = 435;
462        glGetStringi = 436;
463        glCopyBufferSubData = 437;
464        glGetUniformIndices = 438;
465        glGetActiveUniformsiv = 439;
466        glGetUniformBlockIndex = 440;
467        glGetActiveUniformBlockiv = 441;
468        glGetActiveUniformBlockName = 442;
469        glUniformBlockBinding = 443;
470        glDrawArraysInstanced = 444;
471        glDrawElementsInstanced = 445;
472        glFenceSync = 446;
473        glIsSync = 447;
474        glDeleteSync = 448;
475        glClientWaitSync = 449;
476        glWaitSync = 450;
477        glGetInteger64v = 451;
478        glGetSynciv = 452;
479        glGetInteger64i_v = 453;
480        glGetBufferParameteri64v = 454;
481        glGenSamplers = 455;
482        glDeleteSamplers = 456;
483        glIsSampler = 457;
484        glBindSampler = 458;
485        glSamplerParameteri = 459;
486        glSamplerParameteriv = 460;
487        glSamplerParameterf = 461;
488        glSamplerParameterfv = 462;
489        glGetSamplerParameteriv = 463;
490        glGetSamplerParameterfv = 464;
491        glVertexAttribDivisor = 465;
492        glBindTransformFeedback = 466;
493        glDeleteTransformFeedbacks = 467;
494        glGenTransformFeedbacks = 468;
495        glIsTransformFeedback = 469;
496        glPauseTransformFeedback = 470;
497        glResumeTransformFeedback = 471;
498        glGetProgramBinary = 472;
499        glProgramBinary = 473;
500        glProgramParameteri = 474;
501        glInvalidateFramebuffer = 475;
502        glInvalidateSubFramebuffer = 476;
503        glTexStorage2D = 477;
504        glTexStorage3D = 478;
505        glGetInternalformativ = 479;
506
507        glActiveShaderProgramEXT = 502;
508        glAlphaFuncQCOM = 503;
509        glBeginQueryEXT = 504;
510        glBindProgramPipelineEXT = 505;
511        glBlitFramebufferANGLE = 506;
512        glCreateShaderProgramvEXT = 507;
513        glDeleteProgramPipelinesEXT = 508;
514        glDeleteQueriesEXT = 509;
515        glDrawBuffersNV = 510;
516        glEndQueryEXT = 511;
517        glFramebufferTexture2DMultisampleEXT = 512;
518        glGenProgramPipelinesEXT = 513;
519        glGenQueriesEXT = 514;
520        glGetGraphicsResetStatusEXT = 515;
521        glGetObjectLabelEXT = 516;
522        glGetProgramPipelineInfoLogEXT = 517;
523        glGetProgramPipelineivEXT = 518;
524        glGetQueryObjectuivEXT = 519;
525        glGetQueryivEXT = 520;
526        glGetnUniformfvEXT = 521;
527        glGetnUniformivEXT = 521;
528        glInsertEventMarkerEXT = 522;
529        glIsProgramPipelineEXT = 523;
530        glIsQueryEXT = 524;
531        glLabelObjectEXT = 525;
532        glPopGroupMarkerEXT = 526;
533        glProgramParameteriEXT = 527;
534        glProgramUniform1fEXT = 528;
535        glProgramUniform1fvEXT = 529;
536        glProgramUniform1iEXT = 530;
537        glProgramUniform1ivEXT = 531;
538        glProgramUniform2fEXT = 532;
539        glProgramUniform2fvEXT = 533;
540        glProgramUniform2iEXT = 534;
541        glProgramUniform2ivEXT = 535;
542        glProgramUniform3fEXT = 536;
543        glProgramUniform3fvEXT = 537;
544        glProgramUniform3iEXT = 538;
545        glProgramUniform3ivEXT = 539;
546        glProgramUniform4fEXT = 540;
547        glProgramUniform4fvEXT = 541;
548        glProgramUniform4iEXT = 542;
549        glProgramUniform4ivEXT = 543;
550        glProgramUniformMatrix2fvEXT = 544;
551        glProgramUniformMatrix3fvEXT = 545;
552        glProgramUniformMatrix4fvEXT = 546;
553        glPushGroupMarkerEXT = 547;
554        glReadBufferNV = 548;
555        glReadnPixelsEXT = 549;
556        glRenderbufferStorageMultisampleANGLE = 550;
557        glRenderbufferStorageMultisampleAPPLE = 551;
558        glRenderbufferStorageMultisampleEXT = 552;
559        glResolveMultisampleFramebufferAPPLE = 553;
560        glTexStorage1DEXT = 554;
561        glTexStorage2DEXT = 555;
562        glTexStorage3DEXT = 556;
563        glTextureStorage1DEXT = 557;
564        glTextureStorage2DEXT = 558;
565        glTextureStorage3DEXT = 559;
566        glUseProgramStagesEXT = 560;
567        glValidateProgramPipelineEXT = 561;
568
569        eglGetDisplay = 2000;
570        eglInitialize = 2001;
571        eglTerminate = 2002;
572        eglGetConfigs = 2003;
573        eglChooseConfig = 2004;
574        eglGetConfigAttrib = 2005;
575        eglCreateWindowSurface = 2006;
576        eglCreatePixmapSurface = 2007;
577        eglCreatePbufferSurface = 2008;
578        eglDestroySurface = 2009;
579        eglQuerySurface = 2010;
580        eglCreateContext = 2011;
581        eglDestroyContext = 2012;
582        eglMakeCurrent = 2013;
583        eglGetCurrentContext = 2014;
584        eglGetCurrentSurface = 2015;
585        eglGetCurrentDisplay = 2016;
586        eglQueryContext = 2017;
587        eglWaitGL = 2018;
588        eglWaitNative = 2019;
589        eglSwapBuffers = 2020;
590        eglCopyBuffers = 2021;
591        eglGetError = 2022;
592        eglQueryString = 2023;
593        eglGetProcAddress = 2024;
594        eglSurfaceAttrib = 2025;
595        eglBindTexImage = 2026;
596        eglReleaseTexImage = 2027;
597        eglSwapInterval = 2028;
598        eglBindAPI = 2029;
599        eglQueryAPI = 2030;
600        eglWaitClient = 2031;
601        eglReleaseThread = 2032;
602        eglCreatePbufferFromClientBuffer = 2033;
603        eglLockSurfaceKHR = 2034;
604        eglUnlockSurfaceKHR = 2035;
605        eglCreateImageKHR = 2036;
606        eglDestroyImageKHR = 2037;
607        eglCreateSyncKHR = 2038;
608        eglDestroySyncKHR = 2039;
609        eglClientWaitSyncKHR = 2040;
610        eglGetSyncAttribKHR = 2041;
611        eglSetSwapRectangleANDROID = 2042;
612        eglGetRenderBufferANDROID = 2043;
613        eglGetSystemTimeFrequencyNV = 2044;
614        eglGetSystemTimeNV = 2045;
615
616        invalid = 3000;
617        glVertexAttribPointerData = 3001;
618    }
619
620    // A GL call's return data and arguments are formatted into this DataType
621    message DataType {
622        enum Type {
623            VOID = 1;       // GLvoid
624            CHAR = 2;       // GLchar
625            BYTE = 3;       // GLbyte, GLubyte
626            INT = 4;        // GLbitfield, GLshort, GLint, GLsizei, GLushort, GLuint, GLfixed
627            FLOAT = 5;      // GLfloat, GLclampf
628            BOOL = 6;       // GLboolean
629            ENUM = 7;       // GLenum
630            INT64 = 8;      // GLint64, GLuint64
631        };
632
633        required Type   type = 1 [default = VOID];
634        required bool   isArray = 2 [default = false];
635
636        repeated int32  intValue = 3;
637        repeated float  floatValue = 4;
638        repeated bytes  charValue = 5;
639        repeated bytes  rawBytes = 6;
640        repeated bool   boolValue = 7;
641        repeated int64  int64Value = 8;
642    }
643
644    message FrameBuffer {
645        required int32  width = 1;
646        required int32  height = 2;
647        repeated bytes  contents = 3;
648    }
649
650    required int32      context_id = 1;                     // GL context ID
651    required int64      start_time = 2;                     // time when call was invoked
652    required int32      duration = 3;                       // duration of the call (MONOTONIC TIME)
653
654    required Function   function = 4 [default = invalid];   // GL function called
655    repeated DataType   args = 5;                           // GL function's arguments
656    optional DataType   returnValue = 6;                    // GL function's return value
657
658    optional FrameBuffer fb = 7;                            // contents of the framebuffer
659
660    optional int32      threadtime = 8;                     // duration of the call (THREAD TIME)
661};
662