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
403        glActiveShaderProgramEXT = 502;
404        glAlphaFuncQCOM = 503;
405        glBeginQueryEXT = 504;
406        glBindProgramPipelineEXT = 505;
407        glBlitFramebufferANGLE = 506;
408        glCreateShaderProgramvEXT = 507;
409        glDeleteProgramPipelinesEXT = 508;
410        glDeleteQueriesEXT = 509;
411        glDrawBuffersNV = 510;
412        glEndQueryEXT = 511;
413        glFramebufferTexture2DMultisampleEXT = 512;
414        glGenProgramPipelinesEXT = 513;
415        glGenQueriesEXT = 514;
416        glGetGraphicsResetStatusEXT = 515;
417        glGetObjectLabelEXT = 516;
418        glGetProgramPipelineInfoLogEXT = 517;
419        glGetProgramPipelineivEXT = 518;
420        glGetQueryObjectuivEXT = 519;
421        glGetQueryivEXT = 520;
422        glGetnUniformfvEXT = 521;
423        glGetnUniformivEXT = 521;
424        glInsertEventMarkerEXT = 522;
425        glIsProgramPipelineEXT = 523;
426        glIsQueryEXT = 524;
427        glLabelObjectEXT = 525;
428        glPopGroupMarkerEXT = 526;
429        glProgramParameteriEXT = 527;
430        glProgramUniform1fEXT = 528;
431        glProgramUniform1fvEXT = 529;
432        glProgramUniform1iEXT = 530;
433        glProgramUniform1ivEXT = 531;
434        glProgramUniform2fEXT = 532;
435        glProgramUniform2fvEXT = 533;
436        glProgramUniform2iEXT = 534;
437        glProgramUniform2ivEXT = 535;
438        glProgramUniform3fEXT = 536;
439        glProgramUniform3fvEXT = 537;
440        glProgramUniform3iEXT = 538;
441        glProgramUniform3ivEXT = 539;
442        glProgramUniform4fEXT = 540;
443        glProgramUniform4fvEXT = 541;
444        glProgramUniform4iEXT = 542;
445        glProgramUniform4ivEXT = 543;
446        glProgramUniformMatrix2fvEXT = 544;
447        glProgramUniformMatrix3fvEXT = 545;
448        glProgramUniformMatrix4fvEXT = 546;
449        glPushGroupMarkerEXT = 547;
450        glReadBufferNV = 548;
451        glReadnPixelsEXT = 549;
452        glRenderbufferStorageMultisampleANGLE = 550;
453        glRenderbufferStorageMultisampleAPPLE = 551;
454        glRenderbufferStorageMultisampleEXT = 552;
455        glResolveMultisampleFramebufferAPPLE = 553;
456        glTexStorage1DEXT = 554;
457        glTexStorage2DEXT = 555;
458        glTexStorage3DEXT = 556;
459        glTextureStorage1DEXT = 557;
460        glTextureStorage2DEXT = 558;
461        glTextureStorage3DEXT = 559;
462        glUseProgramStagesEXT = 560;
463        glValidateProgramPipelineEXT = 561;
464
465        eglGetDisplay = 2000;
466        eglInitialize = 2001;
467        eglTerminate = 2002;
468        eglGetConfigs = 2003;
469        eglChooseConfig = 2004;
470        eglGetConfigAttrib = 2005;
471        eglCreateWindowSurface = 2006;
472        eglCreatePixmapSurface = 2007;
473        eglCreatePbufferSurface = 2008;
474        eglDestroySurface = 2009;
475        eglQuerySurface = 2010;
476        eglCreateContext = 2011;
477        eglDestroyContext = 2012;
478        eglMakeCurrent = 2013;
479        eglGetCurrentContext = 2014;
480        eglGetCurrentSurface = 2015;
481        eglGetCurrentDisplay = 2016;
482        eglQueryContext = 2017;
483        eglWaitGL = 2018;
484        eglWaitNative = 2019;
485        eglSwapBuffers = 2020;
486        eglCopyBuffers = 2021;
487        eglGetError = 2022;
488        eglQueryString = 2023;
489        eglGetProcAddress = 2024;
490        eglSurfaceAttrib = 2025;
491        eglBindTexImage = 2026;
492        eglReleaseTexImage = 2027;
493        eglSwapInterval = 2028;
494        eglBindAPI = 2029;
495        eglQueryAPI = 2030;
496        eglWaitClient = 2031;
497        eglReleaseThread = 2032;
498        eglCreatePbufferFromClientBuffer = 2033;
499        eglLockSurfaceKHR = 2034;
500        eglUnlockSurfaceKHR = 2035;
501        eglCreateImageKHR = 2036;
502        eglDestroyImageKHR = 2037;
503        eglCreateSyncKHR = 2038;
504        eglDestroySyncKHR = 2039;
505        eglClientWaitSyncKHR = 2040;
506        eglGetSyncAttribKHR = 2041;
507        eglSetSwapRectangleANDROID = 2042;
508        eglGetRenderBufferANDROID = 2043;
509        eglGetSystemTimeFrequencyNV = 2044;
510        eglGetSystemTimeNV = 2045;
511
512        invalid = 3000;
513        glVertexAttribPointerData = 3001;
514    }
515
516    // A GL call's return data and arguments are formatted into this DataType
517    message DataType {
518        enum Type {
519            VOID = 1;       // GLvoid
520            CHAR = 2;       // GLchar
521            BYTE = 3;       // GLbyte, GLubyte
522            INT = 4;        // GLbitfield, GLshort, GLint, GLsizei, GLushort, GLuint, GLfixed
523            FLOAT = 5;      // GLfloat, GLclampf
524            BOOL = 6;       // GLboolean
525            ENUM = 7;       // GLenum
526        };
527
528        required Type   type = 1 [default = VOID];
529        required bool   isArray = 2 [default = false];
530
531        repeated int32  intValue = 3;
532        repeated float  floatValue = 4;
533        repeated bytes  charValue = 5;
534        repeated bytes  rawBytes = 6;
535        repeated bool   boolValue = 7;
536    }
537
538    message FrameBuffer {
539        required int32  width = 1;
540        required int32  height = 2;
541        repeated bytes  contents = 3;
542    }
543
544    required int32      context_id = 1;                     // GL context ID
545    required int64      start_time = 2;                     // time when call was invoked
546    required int32      duration = 3;                       // duration of the call (MONOTONIC TIME)
547
548    required Function   function = 4 [default = invalid];   // GL function called
549    repeated DataType   args = 5;                           // GL function's arguments
550    optional DataType   returnValue = 6;                    // GL function's return value
551
552    optional FrameBuffer fb = 7;                            // contents of the framebuffer
553
554    optional int32      threadtime = 8;                     // duration of the call (THREAD TIME)
555};
556