05df4504e5
For each gl function, trace both the thread and wall clock times. Change-Id: I32b6caa67fa50bf915dab89b3c5021ee82e28d55
556 lines
18 KiB
Protocol Buffer
556 lines
18 KiB
Protocol Buffer
/*
|
|
* Copyright (C) 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.
|
|
*/
|
|
|
|
package android.gltrace;
|
|
|
|
option optimize_for = LITE_RUNTIME;
|
|
|
|
option java_package = "com.android.ide.eclipse.gltrace";
|
|
option java_outer_classname = "GLProtoBuf";
|
|
|
|
message GLMessage {
|
|
enum Function {
|
|
glActiveTexture = 0;
|
|
glAlphaFunc = 1;
|
|
glAlphaFuncx = 2;
|
|
glAlphaFuncxOES = 3;
|
|
glAttachShader = 4;
|
|
glBeginPerfMonitorAMD = 5;
|
|
glBindAttribLocation = 6;
|
|
glBindBuffer = 7;
|
|
glBindFramebuffer = 8;
|
|
glBindFramebufferOES = 9;
|
|
glBindRenderbuffer = 10;
|
|
glBindRenderbufferOES = 11;
|
|
glBindTexture = 12;
|
|
glBindVertexArrayOES = 13;
|
|
glBlendColor = 14;
|
|
glBlendEquation = 15;
|
|
glBlendEquationOES = 16;
|
|
glBlendEquationSeparate = 17;
|
|
glBlendEquationSeparateOES = 18;
|
|
glBlendFunc = 19;
|
|
glBlendFuncSeparate = 20;
|
|
glBlendFuncSeparateOES = 21;
|
|
glBufferData = 22;
|
|
glBufferSubData = 23;
|
|
glCheckFramebufferStatus = 24;
|
|
glCheckFramebufferStatusOES = 25;
|
|
glClearColor = 26;
|
|
glClearColorx = 27;
|
|
glClearColorxOES = 28;
|
|
glClearDepthf = 29;
|
|
glClearDepthfOES = 30;
|
|
glClearDepthx = 31;
|
|
glClearDepthxOES = 32;
|
|
glClear = 33;
|
|
glClearStencil = 34;
|
|
glClientActiveTexture = 35;
|
|
glClipPlanef = 36;
|
|
glClipPlanefIMG = 37;
|
|
glClipPlanefOES = 38;
|
|
glClipPlanex = 39;
|
|
glClipPlanexIMG = 40;
|
|
glClipPlanexOES = 41;
|
|
glColor4f = 42;
|
|
glColor4ub = 43;
|
|
glColor4x = 44;
|
|
glColor4xOES = 45;
|
|
glColorMask = 46;
|
|
glColorPointer = 47;
|
|
glCompileShader = 48;
|
|
glCompressedTexImage2D = 49;
|
|
glCompressedTexImage3DOES = 50;
|
|
glCompressedTexSubImage2D = 51;
|
|
glCompressedTexSubImage3DOES = 52;
|
|
glCopyTexImage2D = 53;
|
|
glCopyTexSubImage2D = 54;
|
|
glCopyTexSubImage3DOES = 55;
|
|
glCoverageMaskNV = 56;
|
|
glCoverageOperationNV = 57;
|
|
glCreateProgram = 58;
|
|
glCreateShader = 59;
|
|
glCullFace = 60;
|
|
glCurrentPaletteMatrixOES = 61;
|
|
glDeleteBuffers = 62;
|
|
glDeleteFencesNV = 63;
|
|
glDeleteFramebuffers = 64;
|
|
glDeleteFramebuffersOES = 65;
|
|
glDeletePerfMonitorsAMD = 66;
|
|
glDeleteProgram = 67;
|
|
glDeleteRenderbuffers = 68;
|
|
glDeleteRenderbuffersOES = 69;
|
|
glDeleteShader = 70;
|
|
glDeleteTextures = 71;
|
|
glDeleteVertexArraysOES = 72;
|
|
glDepthFunc = 73;
|
|
glDepthMask = 74;
|
|
glDepthRangef = 75;
|
|
glDepthRangefOES = 76;
|
|
glDepthRangex = 77;
|
|
glDepthRangexOES = 78;
|
|
glDetachShader = 79;
|
|
glDisableClientState = 80;
|
|
glDisableDriverControlQCOM = 81;
|
|
glDisable = 82;
|
|
glDisableVertexAttribArray = 83;
|
|
glDiscardFramebufferEXT = 84;
|
|
glDrawArrays = 85;
|
|
glDrawElements = 86;
|
|
glDrawTexfOES = 87;
|
|
glDrawTexfvOES = 88;
|
|
glDrawTexiOES = 89;
|
|
glDrawTexivOES = 90;
|
|
glDrawTexsOES = 91;
|
|
glDrawTexsvOES = 92;
|
|
glDrawTexxOES = 93;
|
|
glDrawTexxvOES = 94;
|
|
glEGLImageTargetRenderbufferStorageOES = 95;
|
|
glEGLImageTargetTexture2DOES = 96;
|
|
glEnableClientState = 97;
|
|
glEnableDriverControlQCOM = 98;
|
|
glEnable = 99;
|
|
glEnableVertexAttribArray = 100;
|
|
glEndPerfMonitorAMD = 101;
|
|
glEndTilingQCOM = 102;
|
|
glExtGetBufferPointervQCOM = 103;
|
|
glExtGetBuffersQCOM = 104;
|
|
glExtGetFramebuffersQCOM = 105;
|
|
glExtGetProgramBinarySourceQCOM = 106;
|
|
glExtGetProgramsQCOM = 107;
|
|
glExtGetRenderbuffersQCOM = 108;
|
|
glExtGetShadersQCOM = 109;
|
|
glExtGetTexLevelParameterivQCOM = 110;
|
|
glExtGetTexSubImageQCOM = 111;
|
|
glExtGetTexturesQCOM = 112;
|
|
glExtIsProgramBinaryQCOM = 113;
|
|
glExtTexObjectStateOverrideiQCOM = 114;
|
|
glFinishFenceNV = 115;
|
|
glFinish = 116;
|
|
glFlush = 117;
|
|
glFogf = 118;
|
|
glFogfv = 119;
|
|
glFogx = 120;
|
|
glFogxOES = 121;
|
|
glFogxv = 122;
|
|
glFogxvOES = 123;
|
|
glFramebufferRenderbuffer = 124;
|
|
glFramebufferRenderbufferOES = 125;
|
|
glFramebufferTexture2D = 126;
|
|
glFramebufferTexture2DMultisampleIMG = 127;
|
|
glFramebufferTexture2DOES = 128;
|
|
glFramebufferTexture3DOES = 129;
|
|
glFrontFace = 130;
|
|
glFrustumf = 131;
|
|
glFrustumfOES = 132;
|
|
glFrustumx = 133;
|
|
glFrustumxOES = 134;
|
|
glGenBuffers = 135;
|
|
glGenerateMipmap = 136;
|
|
glGenerateMipmapOES = 137;
|
|
glGenFencesNV = 138;
|
|
glGenFramebuffers = 139;
|
|
glGenFramebuffersOES = 140;
|
|
glGenPerfMonitorsAMD = 141;
|
|
glGenRenderbuffers = 142;
|
|
glGenRenderbuffersOES = 143;
|
|
glGenTextures = 144;
|
|
glGenVertexArraysOES = 145;
|
|
glGetActiveAttrib = 146;
|
|
glGetActiveUniform = 147;
|
|
glGetAttachedShaders = 148;
|
|
glGetAttribLocation = 149;
|
|
glGetBooleanv = 150;
|
|
glGetBufferParameteriv = 151;
|
|
glGetBufferPointervOES = 152;
|
|
glGetClipPlanef = 153;
|
|
glGetClipPlanefOES = 154;
|
|
glGetClipPlanex = 155;
|
|
glGetClipPlanexOES = 156;
|
|
glGetDriverControlsQCOM = 157;
|
|
glGetDriverControlStringQCOM = 158;
|
|
glGetError = 159;
|
|
glGetFenceivNV = 160;
|
|
glGetFixedv = 161;
|
|
glGetFixedvOES = 162;
|
|
glGetFloatv = 163;
|
|
glGetFramebufferAttachmentParameteriv = 164;
|
|
glGetFramebufferAttachmentParameterivOES = 165;
|
|
glGetIntegerv = 166;
|
|
glGetLightfv = 167;
|
|
glGetLightxv = 168;
|
|
glGetLightxvOES = 169;
|
|
glGetMaterialfv = 170;
|
|
glGetMaterialxv = 171;
|
|
glGetMaterialxvOES = 172;
|
|
glGetPerfMonitorCounterDataAMD = 173;
|
|
glGetPerfMonitorCounterInfoAMD = 174;
|
|
glGetPerfMonitorCountersAMD = 175;
|
|
glGetPerfMonitorCounterStringAMD = 176;
|
|
glGetPerfMonitorGroupsAMD = 177;
|
|
glGetPerfMonitorGroupStringAMD = 178;
|
|
glGetPointerv = 179;
|
|
glGetProgramBinaryOES = 180;
|
|
glGetProgramInfoLog = 181;
|
|
glGetProgramiv = 182;
|
|
glGetRenderbufferParameteriv = 183;
|
|
glGetRenderbufferParameterivOES = 184;
|
|
glGetShaderInfoLog = 185;
|
|
glGetShaderiv = 186;
|
|
glGetShaderPrecisionFormat = 187;
|
|
glGetShaderSource = 188;
|
|
glGetString = 189;
|
|
glGetTexEnvfv = 190;
|
|
glGetTexEnviv = 191;
|
|
glGetTexEnvxv = 192;
|
|
glGetTexEnvxvOES = 193;
|
|
glGetTexGenfvOES = 194;
|
|
glGetTexGenivOES = 195;
|
|
glGetTexGenxvOES = 196;
|
|
glGetTexParameterfv = 197;
|
|
glGetTexParameteriv = 198;
|
|
glGetTexParameterxv = 199;
|
|
glGetTexParameterxvOES = 200;
|
|
glGetUniformfv = 201;
|
|
glGetUniformiv = 202;
|
|
glGetUniformLocation = 203;
|
|
glGetVertexAttribfv = 204;
|
|
glGetVertexAttribiv = 205;
|
|
glGetVertexAttribPointerv = 206;
|
|
glHint = 207;
|
|
glIsBuffer = 208;
|
|
glIsEnabled = 209;
|
|
glIsFenceNV = 210;
|
|
glIsFramebuffer = 211;
|
|
glIsFramebufferOES = 212;
|
|
glIsProgram = 213;
|
|
glIsRenderbuffer = 214;
|
|
glIsRenderbufferOES = 215;
|
|
glIsShader = 216;
|
|
glIsTexture = 217;
|
|
glIsVertexArrayOES = 218;
|
|
glLightf = 219;
|
|
glLightfv = 220;
|
|
glLightModelf = 221;
|
|
glLightModelfv = 222;
|
|
glLightModelx = 223;
|
|
glLightModelxOES = 224;
|
|
glLightModelxv = 225;
|
|
glLightModelxvOES = 226;
|
|
glLightx = 227;
|
|
glLightxOES = 228;
|
|
glLightxv = 229;
|
|
glLightxvOES = 230;
|
|
glLineWidth = 231;
|
|
glLineWidthx = 232;
|
|
glLineWidthxOES = 233;
|
|
glLinkProgram = 234;
|
|
glLoadIdentity = 235;
|
|
glLoadMatrixf = 236;
|
|
glLoadMatrixx = 237;
|
|
glLoadMatrixxOES = 238;
|
|
glLoadPaletteFromModelViewMatrixOES = 239;
|
|
glLogicOp = 240;
|
|
glMapBufferOES = 241;
|
|
glMaterialf = 242;
|
|
glMaterialfv = 243;
|
|
glMaterialx = 244;
|
|
glMaterialxOES = 245;
|
|
glMaterialxv = 246;
|
|
glMaterialxvOES = 247;
|
|
glMatrixIndexPointerOES = 248;
|
|
glMatrixMode = 249;
|
|
glMultiDrawArraysEXT = 250;
|
|
glMultiDrawElementsEXT = 251;
|
|
glMultiTexCoord4f = 252;
|
|
glMultiTexCoord4x = 253;
|
|
glMultiTexCoord4xOES = 254;
|
|
glMultMatrixf = 255;
|
|
glMultMatrixx = 256;
|
|
glMultMatrixxOES = 257;
|
|
glNormal3f = 258;
|
|
glNormal3x = 259;
|
|
glNormal3xOES = 260;
|
|
glNormalPointer = 261;
|
|
glOrthof = 262;
|
|
glOrthofOES = 263;
|
|
glOrthox = 264;
|
|
glOrthoxOES = 265;
|
|
glPixelStorei = 266;
|
|
glPointParameterf = 267;
|
|
glPointParameterfv = 268;
|
|
glPointParameterx = 269;
|
|
glPointParameterxOES = 270;
|
|
glPointParameterxv = 271;
|
|
glPointParameterxvOES = 272;
|
|
glPointSize = 273;
|
|
glPointSizePointerOES = 274;
|
|
glPointSizex = 275;
|
|
glPointSizexOES = 276;
|
|
glPolygonOffset = 277;
|
|
glPolygonOffsetx = 278;
|
|
glPolygonOffsetxOES = 279;
|
|
glPopMatrix = 280;
|
|
glProgramBinaryOES = 281;
|
|
glPushMatrix = 282;
|
|
glQueryMatrixxOES = 283;
|
|
glReadPixels = 284;
|
|
glReleaseShaderCompiler = 285;
|
|
glRenderbufferStorage = 286;
|
|
glRenderbufferStorageMultisampleIMG = 287;
|
|
glRenderbufferStorageOES = 288;
|
|
glRotatef = 289;
|
|
glRotatex = 290;
|
|
glRotatexOES = 291;
|
|
glSampleCoverage = 292;
|
|
glSampleCoveragex = 293;
|
|
glSampleCoveragexOES = 294;
|
|
glScalef = 295;
|
|
glScalex = 296;
|
|
glScalexOES = 297;
|
|
glScissor = 298;
|
|
glSelectPerfMonitorCountersAMD = 299;
|
|
glSetFenceNV = 300;
|
|
glShadeModel = 301;
|
|
glShaderBinary = 302;
|
|
glShaderSource = 303;
|
|
glStartTilingQCOM = 304;
|
|
glStencilFunc = 305;
|
|
glStencilFuncSeparate = 306;
|
|
glStencilMask = 307;
|
|
glStencilMaskSeparate = 308;
|
|
glStencilOp = 309;
|
|
glStencilOpSeparate = 310;
|
|
glTestFenceNV = 311;
|
|
glTexCoordPointer = 312;
|
|
glTexEnvf = 313;
|
|
glTexEnvfv = 314;
|
|
glTexEnvi = 315;
|
|
glTexEnviv = 316;
|
|
glTexEnvx = 317;
|
|
glTexEnvxOES = 318;
|
|
glTexEnvxv = 319;
|
|
glTexEnvxvOES = 320;
|
|
glTexGenfOES = 321;
|
|
glTexGenfvOES = 322;
|
|
glTexGeniOES = 323;
|
|
glTexGenivOES = 324;
|
|
glTexGenxOES = 325;
|
|
glTexGenxvOES = 326;
|
|
glTexImage2D = 327;
|
|
glTexImage3DOES = 328;
|
|
glTexParameterf = 329;
|
|
glTexParameterfv = 330;
|
|
glTexParameteri = 331;
|
|
glTexParameteriv = 332;
|
|
glTexParameterx = 333;
|
|
glTexParameterxOES = 334;
|
|
glTexParameterxv = 335;
|
|
glTexParameterxvOES = 336;
|
|
glTexSubImage2D = 337;
|
|
glTexSubImage3DOES = 338;
|
|
glTranslatef = 339;
|
|
glTranslatex = 340;
|
|
glTranslatexOES = 341;
|
|
glUniform1f = 342;
|
|
glUniform1fv = 343;
|
|
glUniform1i = 344;
|
|
glUniform1iv = 345;
|
|
glUniform2f = 346;
|
|
glUniform2fv = 347;
|
|
glUniform2i = 348;
|
|
glUniform2iv = 349;
|
|
glUniform3f = 350;
|
|
glUniform3fv = 351;
|
|
glUniform3i = 352;
|
|
glUniform3iv = 353;
|
|
glUniform4f = 354;
|
|
glUniform4fv = 355;
|
|
glUniform4i = 356;
|
|
glUniform4iv = 357;
|
|
glUniformMatrix2fv = 358;
|
|
glUniformMatrix3fv = 359;
|
|
glUniformMatrix4fv = 360;
|
|
glUnmapBufferOES = 361;
|
|
glUseProgram = 362;
|
|
glValidateProgram = 363;
|
|
glVertexAttrib1f = 364;
|
|
glVertexAttrib1fv = 365;
|
|
glVertexAttrib2f = 366;
|
|
glVertexAttrib2fv = 367;
|
|
glVertexAttrib3f = 368;
|
|
glVertexAttrib3fv = 369;
|
|
glVertexAttrib4f = 370;
|
|
glVertexAttrib4fv = 371;
|
|
glVertexAttribPointer = 372;
|
|
glVertexPointer = 373;
|
|
glViewport = 374;
|
|
glWeightPointerOES = 375;
|
|
|
|
glActiveShaderProgramEXT = 502;
|
|
glAlphaFuncQCOM = 503;
|
|
glBeginQueryEXT = 504;
|
|
glBindProgramPipelineEXT = 505;
|
|
glBlitFramebufferANGLE = 506;
|
|
glCreateShaderProgramvEXT = 507;
|
|
glDeleteProgramPipelinesEXT = 508;
|
|
glDeleteQueriesEXT = 509;
|
|
glDrawBuffersNV = 510;
|
|
glEndQueryEXT = 511;
|
|
glFramebufferTexture2DMultisampleEXT = 512;
|
|
glGenProgramPipelinesEXT = 513;
|
|
glGenQueriesEXT = 514;
|
|
glGetGraphicsResetStatusEXT = 515;
|
|
glGetObjectLabelEXT = 516;
|
|
glGetProgramPipelineInfoLogEXT = 517;
|
|
glGetProgramPipelineivEXT = 518;
|
|
glGetQueryObjectuivEXT = 519;
|
|
glGetQueryivEXT = 520;
|
|
glGetnUniformfvEXT = 521;
|
|
glGetnUniformivEXT = 521;
|
|
glInsertEventMarkerEXT = 522;
|
|
glIsProgramPipelineEXT = 523;
|
|
glIsQueryEXT = 524;
|
|
glLabelObjectEXT = 525;
|
|
glPopGroupMarkerEXT = 526;
|
|
glProgramParameteriEXT = 527;
|
|
glProgramUniform1fEXT = 528;
|
|
glProgramUniform1fvEXT = 529;
|
|
glProgramUniform1iEXT = 530;
|
|
glProgramUniform1ivEXT = 531;
|
|
glProgramUniform2fEXT = 532;
|
|
glProgramUniform2fvEXT = 533;
|
|
glProgramUniform2iEXT = 534;
|
|
glProgramUniform2ivEXT = 535;
|
|
glProgramUniform3fEXT = 536;
|
|
glProgramUniform3fvEXT = 537;
|
|
glProgramUniform3iEXT = 538;
|
|
glProgramUniform3ivEXT = 539;
|
|
glProgramUniform4fEXT = 540;
|
|
glProgramUniform4fvEXT = 541;
|
|
glProgramUniform4iEXT = 542;
|
|
glProgramUniform4ivEXT = 543;
|
|
glProgramUniformMatrix2fvEXT = 544;
|
|
glProgramUniformMatrix3fvEXT = 545;
|
|
glProgramUniformMatrix4fvEXT = 546;
|
|
glPushGroupMarkerEXT = 547;
|
|
glReadBufferNV = 548;
|
|
glReadnPixelsEXT = 549;
|
|
glRenderbufferStorageMultisampleANGLE = 550;
|
|
glRenderbufferStorageMultisampleAPPLE = 551;
|
|
glRenderbufferStorageMultisampleEXT = 552;
|
|
glResolveMultisampleFramebufferAPPLE = 553;
|
|
glTexStorage1DEXT = 554;
|
|
glTexStorage2DEXT = 555;
|
|
glTexStorage3DEXT = 556;
|
|
glTextureStorage1DEXT = 557;
|
|
glTextureStorage2DEXT = 558;
|
|
glTextureStorage3DEXT = 559;
|
|
glUseProgramStagesEXT = 560;
|
|
glValidateProgramPipelineEXT = 561;
|
|
|
|
eglGetDisplay = 2000;
|
|
eglInitialize = 2001;
|
|
eglTerminate = 2002;
|
|
eglGetConfigs = 2003;
|
|
eglChooseConfig = 2004;
|
|
eglGetConfigAttrib = 2005;
|
|
eglCreateWindowSurface = 2006;
|
|
eglCreatePixmapSurface = 2007;
|
|
eglCreatePbufferSurface = 2008;
|
|
eglDestroySurface = 2009;
|
|
eglQuerySurface = 2010;
|
|
eglCreateContext = 2011;
|
|
eglDestroyContext = 2012;
|
|
eglMakeCurrent = 2013;
|
|
eglGetCurrentContext = 2014;
|
|
eglGetCurrentSurface = 2015;
|
|
eglGetCurrentDisplay = 2016;
|
|
eglQueryContext = 2017;
|
|
eglWaitGL = 2018;
|
|
eglWaitNative = 2019;
|
|
eglSwapBuffers = 2020;
|
|
eglCopyBuffers = 2021;
|
|
eglGetError = 2022;
|
|
eglQueryString = 2023;
|
|
eglGetProcAddress = 2024;
|
|
eglSurfaceAttrib = 2025;
|
|
eglBindTexImage = 2026;
|
|
eglReleaseTexImage = 2027;
|
|
eglSwapInterval = 2028;
|
|
eglBindAPI = 2029;
|
|
eglQueryAPI = 2030;
|
|
eglWaitClient = 2031;
|
|
eglReleaseThread = 2032;
|
|
eglCreatePbufferFromClientBuffer = 2033;
|
|
eglLockSurfaceKHR = 2034;
|
|
eglUnlockSurfaceKHR = 2035;
|
|
eglCreateImageKHR = 2036;
|
|
eglDestroyImageKHR = 2037;
|
|
eglCreateSyncKHR = 2038;
|
|
eglDestroySyncKHR = 2039;
|
|
eglClientWaitSyncKHR = 2040;
|
|
eglGetSyncAttribKHR = 2041;
|
|
eglSetSwapRectangleANDROID = 2042;
|
|
eglGetRenderBufferANDROID = 2043;
|
|
eglGetSystemTimeFrequencyNV = 2044;
|
|
eglGetSystemTimeNV = 2045;
|
|
|
|
invalid = 3000;
|
|
frameBufferContents = 3001;
|
|
}
|
|
|
|
// A GL call's return data and arguments are formatted into this DataType
|
|
message DataType {
|
|
enum Type {
|
|
VOID = 1; // GLvoid
|
|
CHAR = 2; // GLchar
|
|
BYTE = 3; // GLbyte, GLubyte
|
|
INT = 4; // GLbitfield, GLshort, GLint, GLsizei, GLushort, GLuint, GLfixed
|
|
FLOAT = 5; // GLfloat, GLclampf
|
|
BOOL = 6; // GLboolean
|
|
ENUM = 7; // GLenum
|
|
};
|
|
|
|
required Type type = 1 [default = VOID];
|
|
required bool isArray = 2 [default = false];
|
|
|
|
repeated int32 intValue = 3;
|
|
repeated float floatValue = 4;
|
|
repeated bytes charValue = 5;
|
|
repeated bytes rawBytes = 6;
|
|
repeated bool boolValue = 7;
|
|
}
|
|
|
|
message FrameBuffer {
|
|
required int32 width = 1;
|
|
required int32 height = 2;
|
|
repeated bytes contents = 3;
|
|
}
|
|
|
|
required int32 context_id = 1; // GL context ID
|
|
required int64 start_time = 2; // time when call was invoked
|
|
required int32 duration = 3; // duration of the call (MONOTONIC TIME)
|
|
|
|
required Function function = 4 [default = invalid]; // GL function called
|
|
repeated DataType args = 5; // GL function's arguments
|
|
optional DataType returnValue = 6; // GL function's return value
|
|
|
|
optional FrameBuffer fb = 7; // contents of the framebuffer
|
|
|
|
optional int32 threadtime = 8; // duration of the call (THREAD TIME)
|
|
};
|