Home | History | Annotate | Download | only in src
      1 /*
      2  ** Copyright 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 
     17 // auto generated by generate_caller_cpp.py
     18 // implement declarations in caller.h
     19 
     20 #include "header.h"
     21 
     22 namespace android {
     23 
     24 static const int * GenerateCall_glCompressedTexImage2D(DbgContext * const dbg,
     25     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     26 static const int * GenerateCall_glCompressedTexSubImage2D(DbgContext * const dbg,
     27     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     28 static const int * GenerateCall_glDrawElements(DbgContext * const dbg,
     29     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     30 static const int * GenerateCall_glGenBuffers(DbgContext * const dbg,
     31     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     32 static const int * GenerateCall_glGenFramebuffers(DbgContext * const dbg,
     33     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     34 static const int * GenerateCall_glGenRenderbuffers(DbgContext * const dbg,
     35     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     36 static const int * GenerateCall_glGenTextures(DbgContext * const dbg,
     37     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     38 static const int * GenerateCall_glGetActiveAttrib(DbgContext * const dbg,
     39     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     40 static const int * GenerateCall_glGetActiveUniform(DbgContext * const dbg,
     41     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     42 static const int * GenerateCall_glGetAttachedShaders(DbgContext * const dbg,
     43     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     44 static const int * GenerateCall_glGetBooleanv(DbgContext * const dbg,
     45     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     46 static const int * GenerateCall_glGetBufferParameteriv(DbgContext * const dbg,
     47     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     48 static const int * GenerateCall_glGetFloatv(DbgContext * const dbg,
     49     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     50 static const int * GenerateCall_glGetFramebufferAttachmentParameteriv(DbgContext * const dbg,
     51     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     52 static const int * GenerateCall_glGetIntegerv(DbgContext * const dbg,
     53     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     54 static const int * GenerateCall_glGetProgramiv(DbgContext * const dbg,
     55     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     56 static const int * GenerateCall_glGetProgramInfoLog(DbgContext * const dbg,
     57     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     58 static const int * GenerateCall_glGetRenderbufferParameteriv(DbgContext * const dbg,
     59     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     60 static const int * GenerateCall_glGetShaderiv(DbgContext * const dbg,
     61     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     62 static const int * GenerateCall_glGetShaderInfoLog(DbgContext * const dbg,
     63     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     64 static const int * GenerateCall_glGetShaderPrecisionFormat(DbgContext * const dbg,
     65     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     66 static const int * GenerateCall_glGetShaderSource(DbgContext * const dbg,
     67     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     68 static const int * GenerateCall_glGetString(DbgContext * const dbg,
     69     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     70 static const int * GenerateCall_glGetTexParameterfv(DbgContext * const dbg,
     71     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     72 static const int * GenerateCall_glGetTexParameteriv(DbgContext * const dbg,
     73     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     74 static const int * GenerateCall_glGetUniformfv(DbgContext * const dbg,
     75     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     76 static const int * GenerateCall_glGetUniformiv(DbgContext * const dbg,
     77     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     78 static const int * GenerateCall_glGetVertexAttribfv(DbgContext * const dbg,
     79     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     80 static const int * GenerateCall_glGetVertexAttribiv(DbgContext * const dbg,
     81     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     82 static const int * GenerateCall_glGetVertexAttribPointerv(DbgContext * const dbg,
     83     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     84 static const int * GenerateCall_glReadPixels(DbgContext * const dbg,
     85     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     86 static const int * GenerateCall_glShaderBinary(DbgContext * const dbg,
     87     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     88 static const int * GenerateCall_glShaderSource(DbgContext * const dbg,
     89     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     90 static const int * GenerateCall_glTexImage2D(DbgContext * const dbg,
     91     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     92 static const int * GenerateCall_glTexParameterfv(DbgContext * const dbg,
     93     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     94 static const int * GenerateCall_glTexParameteriv(DbgContext * const dbg,
     95     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     96 static const int * GenerateCall_glTexSubImage2D(DbgContext * const dbg,
     97     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
     98 static const int * GenerateCall_glVertexAttribPointer(DbgContext * const dbg,
     99     const glesv2debugger::Message & cmd, glesv2debugger::Message & msg, const int * const prevRet);
    100 
    101 #include "caller.h"
    102 
    103 const int * GenerateCall(DbgContext * const dbg, const glesv2debugger::Message & cmd,
    104                   glesv2debugger::Message & msg, const int * const prevRet)
    105 {
    106     LOGD("GenerateCall function=%u", cmd.function());
    107     const int * ret = prevRet; // only some functions have return value
    108     nsecs_t c0 = systemTime(timeMode);
    109     switch (cmd.function()) {    case glesv2debugger::Message_Function_glActiveTexture:
    110         dbg->hooks->gl.glActiveTexture(
    111             static_cast<GLenum>(cmd.arg0()));
    112         break;
    113     case glesv2debugger::Message_Function_glAttachShader:
    114         dbg->hooks->gl.glAttachShader(
    115             static_cast<GLuint>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    116             );
    117         break;
    118     case glesv2debugger::Message_Function_glBindAttribLocation:
    119         dbg->hooks->gl.glBindAttribLocation(
    120             static_cast<GLuint>(cmd.arg0()), static_cast<GLuint>(cmd.arg1()),
    121             reinterpret_cast<GLchar*>(const_cast<char *>(cmd.data().data()))
    122             );
    123         break;
    124     case glesv2debugger::Message_Function_glBindBuffer:
    125         dbg->hooks->gl.glBindBuffer(
    126             static_cast<GLenum>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    127             );
    128         break;
    129     case glesv2debugger::Message_Function_glBindFramebuffer:
    130         dbg->hooks->gl.glBindFramebuffer(
    131             static_cast<GLenum>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    132             );
    133         break;
    134     case glesv2debugger::Message_Function_glBindRenderbuffer:
    135         dbg->hooks->gl.glBindRenderbuffer(
    136             static_cast<GLenum>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    137             );
    138         break;
    139     case glesv2debugger::Message_Function_glBindTexture:
    140         dbg->hooks->gl.glBindTexture(
    141             static_cast<GLenum>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    142             );
    143         break;
    144     case glesv2debugger::Message_Function_glBlendColor:
    145         dbg->hooks->gl.glBlendColor(
    146             static_cast<GLclampf>(cmd.arg0()), static_cast<GLclampf>(cmd.arg1()),
    147             static_cast<GLclampf>(cmd.arg2()), static_cast<GLclampf>(cmd.arg3())
    148             );
    149         break;
    150     case glesv2debugger::Message_Function_glBlendEquation:
    151         dbg->hooks->gl.glBlendEquation(
    152             static_cast<GLenum>(cmd.arg0()));
    153         break;
    154     case glesv2debugger::Message_Function_glBlendEquationSeparate:
    155         dbg->hooks->gl.glBlendEquationSeparate(
    156             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1())
    157             );
    158         break;
    159     case glesv2debugger::Message_Function_glBlendFunc:
    160         dbg->hooks->gl.glBlendFunc(
    161             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1())
    162             );
    163         break;
    164     case glesv2debugger::Message_Function_glBlendFuncSeparate:
    165         dbg->hooks->gl.glBlendFuncSeparate(
    166             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    167             static_cast<GLenum>(cmd.arg2()), static_cast<GLenum>(cmd.arg3())
    168             );
    169         break;
    170     case glesv2debugger::Message_Function_glBufferData:
    171         dbg->hooks->gl.glBufferData(
    172             static_cast<GLenum>(cmd.arg0()), static_cast<GLsizeiptr>(cmd.arg1()),
    173             reinterpret_cast<GLvoid*>(const_cast<char *>(cmd.data().data())),
    174             static_cast<GLenum>(cmd.arg3()));
    175         break;
    176     case glesv2debugger::Message_Function_glBufferSubData:
    177         dbg->hooks->gl.glBufferSubData(
    178             static_cast<GLenum>(cmd.arg0()), static_cast<GLintptr>(cmd.arg1()),
    179             static_cast<GLsizeiptr>(cmd.arg2()), reinterpret_cast<GLvoid*>(const_cast<char *>(cmd.data().data()))
    180             );
    181         break;
    182     case glesv2debugger::Message_Function_glCheckFramebufferStatus:
    183         msg.set_ret(static_cast<int>(dbg->hooks->gl.glCheckFramebufferStatus(
    184             static_cast<GLenum>(cmd.arg0()))));
    185         if (cmd.has_ret())
    186             ret = reinterpret_cast<int *>(msg.ret());
    187         break;
    188     case glesv2debugger::Message_Function_glClear:
    189         dbg->hooks->gl.glClear(
    190             static_cast<GLbitfield>(cmd.arg0()));
    191         break;
    192     case glesv2debugger::Message_Function_glClearColor:
    193         dbg->hooks->gl.glClearColor(
    194             static_cast<GLclampf>(cmd.arg0()), static_cast<GLclampf>(cmd.arg1()),
    195             static_cast<GLclampf>(cmd.arg2()), static_cast<GLclampf>(cmd.arg3())
    196             );
    197         break;
    198     case glesv2debugger::Message_Function_glClearDepthf:
    199         dbg->hooks->gl.glClearDepthf(
    200             static_cast<GLclampf>(cmd.arg0()));
    201         break;
    202     case glesv2debugger::Message_Function_glClearStencil:
    203         dbg->hooks->gl.glClearStencil(
    204             static_cast<GLint>(cmd.arg0()));
    205         break;
    206     case glesv2debugger::Message_Function_glColorMask:
    207         dbg->hooks->gl.glColorMask(
    208             GLboolean(cmd.arg0()), GLboolean(cmd.arg1()), GLboolean(cmd.arg2()),
    209             GLboolean(cmd.arg3()));
    210         break;
    211     case glesv2debugger::Message_Function_glCompileShader:
    212         dbg->hooks->gl.glCompileShader(
    213             static_cast<GLuint>(cmd.arg0()));
    214         break;
    215     case glesv2debugger::Message_Function_glCompressedTexImage2D:
    216         ret = GenerateCall_glCompressedTexImage2D(dbg, cmd, msg, prevRet);
    217         break;
    218     case glesv2debugger::Message_Function_glCompressedTexSubImage2D:
    219         ret = GenerateCall_glCompressedTexSubImage2D(dbg, cmd, msg, prevRet);
    220         break;
    221     case glesv2debugger::Message_Function_glCopyTexImage2D:
    222         dbg->hooks->gl.glCopyTexImage2D(
    223             static_cast<GLenum>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    224             static_cast<GLenum>(cmd.arg2()), static_cast<GLint>(cmd.arg3()),
    225             static_cast<GLint>(cmd.arg4()), static_cast<GLsizei>(cmd.arg5()),
    226             static_cast<GLsizei>(cmd.arg6()), static_cast<GLint>(cmd.arg7())
    227             );
    228         break;
    229     case glesv2debugger::Message_Function_glCopyTexSubImage2D:
    230         dbg->hooks->gl.glCopyTexSubImage2D(
    231             static_cast<GLenum>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    232             static_cast<GLint>(cmd.arg2()), static_cast<GLint>(cmd.arg3()),
    233             static_cast<GLint>(cmd.arg4()), static_cast<GLint>(cmd.arg5()),
    234             static_cast<GLsizei>(cmd.arg6()), static_cast<GLsizei>(cmd.arg7())
    235             );
    236         break;
    237     case glesv2debugger::Message_Function_glCreateProgram:
    238         msg.set_ret(static_cast<int>(dbg->hooks->gl.glCreateProgram(
    239             )));
    240         if (cmd.has_ret())
    241             ret = reinterpret_cast<int *>(msg.ret());
    242         break;
    243     case glesv2debugger::Message_Function_glCreateShader:
    244         msg.set_ret(static_cast<int>(dbg->hooks->gl.glCreateShader(
    245             static_cast<GLenum>(cmd.arg0()))));
    246         if (cmd.has_ret())
    247             ret = reinterpret_cast<int *>(msg.ret());
    248         break;
    249     case glesv2debugger::Message_Function_glCullFace:
    250         dbg->hooks->gl.glCullFace(
    251             static_cast<GLenum>(cmd.arg0()));
    252         break;
    253     case glesv2debugger::Message_Function_glDeleteBuffers:
    254         dbg->hooks->gl.glDeleteBuffers(
    255             static_cast<GLsizei>(cmd.arg0()), reinterpret_cast<GLuint*>(const_cast<char *>(cmd.data().data()))
    256             );
    257         break;
    258     case glesv2debugger::Message_Function_glDeleteFramebuffers:
    259         dbg->hooks->gl.glDeleteFramebuffers(
    260             static_cast<GLsizei>(cmd.arg0()), reinterpret_cast<GLuint*>(const_cast<char *>(cmd.data().data()))
    261             );
    262         break;
    263     case glesv2debugger::Message_Function_glDeleteProgram:
    264         dbg->hooks->gl.glDeleteProgram(
    265             static_cast<GLuint>(cmd.arg0()));
    266         break;
    267     case glesv2debugger::Message_Function_glDeleteRenderbuffers:
    268         dbg->hooks->gl.glDeleteRenderbuffers(
    269             static_cast<GLsizei>(cmd.arg0()), reinterpret_cast<GLuint*>(const_cast<char *>(cmd.data().data()))
    270             );
    271         break;
    272     case glesv2debugger::Message_Function_glDeleteShader:
    273         dbg->hooks->gl.glDeleteShader(
    274             static_cast<GLuint>(cmd.arg0()));
    275         break;
    276     case glesv2debugger::Message_Function_glDeleteTextures:
    277         dbg->hooks->gl.glDeleteTextures(
    278             static_cast<GLsizei>(cmd.arg0()), reinterpret_cast<GLuint*>(const_cast<char *>(cmd.data().data()))
    279             );
    280         break;
    281     case glesv2debugger::Message_Function_glDepthFunc:
    282         dbg->hooks->gl.glDepthFunc(
    283             static_cast<GLenum>(cmd.arg0()));
    284         break;
    285     case glesv2debugger::Message_Function_glDepthMask:
    286         dbg->hooks->gl.glDepthMask(
    287             GLboolean(cmd.arg0()));
    288         break;
    289     case glesv2debugger::Message_Function_glDepthRangef:
    290         dbg->hooks->gl.glDepthRangef(
    291             static_cast<GLclampf>(cmd.arg0()), static_cast<GLclampf>(cmd.arg1())
    292             );
    293         break;
    294     case glesv2debugger::Message_Function_glDetachShader:
    295         dbg->hooks->gl.glDetachShader(
    296             static_cast<GLuint>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    297             );
    298         break;
    299     case glesv2debugger::Message_Function_glDisable:
    300         dbg->hooks->gl.glDisable(
    301             static_cast<GLenum>(cmd.arg0()));
    302         break;
    303     case glesv2debugger::Message_Function_glDisableVertexAttribArray:
    304         dbg->hooks->gl.glDisableVertexAttribArray(
    305             static_cast<GLuint>(cmd.arg0()));
    306         break;
    307     case glesv2debugger::Message_Function_glDrawArrays:
    308         dbg->hooks->gl.glDrawArrays(
    309             static_cast<GLenum>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    310             static_cast<GLsizei>(cmd.arg2()));
    311         break;
    312     case glesv2debugger::Message_Function_glDrawElements:
    313         ret = GenerateCall_glDrawElements(dbg, cmd, msg, prevRet);
    314         break;
    315     case glesv2debugger::Message_Function_glEnable:
    316         dbg->hooks->gl.glEnable(
    317             static_cast<GLenum>(cmd.arg0()));
    318         break;
    319     case glesv2debugger::Message_Function_glEnableVertexAttribArray:
    320         dbg->hooks->gl.glEnableVertexAttribArray(
    321             static_cast<GLuint>(cmd.arg0()));
    322         break;
    323     case glesv2debugger::Message_Function_glFinish:
    324         dbg->hooks->gl.glFinish(
    325             );
    326         break;
    327     case glesv2debugger::Message_Function_glFlush:
    328         dbg->hooks->gl.glFlush(
    329             );
    330         break;
    331     case glesv2debugger::Message_Function_glFramebufferRenderbuffer:
    332         dbg->hooks->gl.glFramebufferRenderbuffer(
    333             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    334             static_cast<GLenum>(cmd.arg2()), static_cast<GLuint>(cmd.arg3())
    335             );
    336         break;
    337     case glesv2debugger::Message_Function_glFramebufferTexture2D:
    338         dbg->hooks->gl.glFramebufferTexture2D(
    339             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    340             static_cast<GLenum>(cmd.arg2()), static_cast<GLuint>(cmd.arg3()),
    341             static_cast<GLint>(cmd.arg4()));
    342         break;
    343     case glesv2debugger::Message_Function_glFrontFace:
    344         dbg->hooks->gl.glFrontFace(
    345             static_cast<GLenum>(cmd.arg0()));
    346         break;
    347     case glesv2debugger::Message_Function_glGenBuffers:
    348         ret = GenerateCall_glGenBuffers(dbg, cmd, msg, prevRet);
    349         break; // annotated output pointers
    350     case glesv2debugger::Message_Function_glGenerateMipmap:
    351         dbg->hooks->gl.glGenerateMipmap(
    352             static_cast<GLenum>(cmd.arg0()));
    353         break;
    354     case glesv2debugger::Message_Function_glGenFramebuffers:
    355         ret = GenerateCall_glGenFramebuffers(dbg, cmd, msg, prevRet);
    356         break; // annotated output pointers
    357     case glesv2debugger::Message_Function_glGenRenderbuffers:
    358         ret = GenerateCall_glGenRenderbuffers(dbg, cmd, msg, prevRet);
    359         break; // annotated output pointers
    360     case glesv2debugger::Message_Function_glGenTextures:
    361         ret = GenerateCall_glGenTextures(dbg, cmd, msg, prevRet);
    362         break; // annotated output pointers
    363     case glesv2debugger::Message_Function_glGetActiveAttrib:
    364         ret = GenerateCall_glGetActiveAttrib(dbg, cmd, msg, prevRet);
    365         break;
    366     case glesv2debugger::Message_Function_glGetActiveUniform:
    367         ret = GenerateCall_glGetActiveUniform(dbg, cmd, msg, prevRet);
    368         break;
    369     case glesv2debugger::Message_Function_glGetAttachedShaders:
    370         ret = GenerateCall_glGetAttachedShaders(dbg, cmd, msg, prevRet);
    371         break;
    372     case glesv2debugger::Message_Function_glGetAttribLocation:
    373         msg.set_ret(static_cast<int>(dbg->hooks->gl.glGetAttribLocation(
    374             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLchar*>(const_cast<char *>(cmd.data().data()))
    375             )));
    376         if (cmd.has_ret())
    377             ret = reinterpret_cast<int *>(msg.ret());
    378         break;
    379     case glesv2debugger::Message_Function_glGetBooleanv:
    380         ret = GenerateCall_glGetBooleanv(dbg, cmd, msg, prevRet);
    381         break;
    382     case glesv2debugger::Message_Function_glGetBufferParameteriv:
    383         ret = GenerateCall_glGetBufferParameteriv(dbg, cmd, msg, prevRet);
    384         break;
    385     case glesv2debugger::Message_Function_glGetError:
    386         msg.set_ret(static_cast<int>(dbg->hooks->gl.glGetError(
    387             )));
    388         if (cmd.has_ret())
    389             ret = reinterpret_cast<int *>(msg.ret());
    390         break;
    391     case glesv2debugger::Message_Function_glGetFloatv:
    392         ret = GenerateCall_glGetFloatv(dbg, cmd, msg, prevRet);
    393         break;
    394     case glesv2debugger::Message_Function_glGetFramebufferAttachmentParameteriv:
    395         ret = GenerateCall_glGetFramebufferAttachmentParameteriv(dbg, cmd, msg, prevRet);
    396         break;
    397     case glesv2debugger::Message_Function_glGetIntegerv:
    398         ret = GenerateCall_glGetIntegerv(dbg, cmd, msg, prevRet);
    399         break;
    400     case glesv2debugger::Message_Function_glGetProgramiv:
    401         ret = GenerateCall_glGetProgramiv(dbg, cmd, msg, prevRet);
    402         break; // annotated output pointers
    403     case glesv2debugger::Message_Function_glGetProgramInfoLog:
    404         ret = GenerateCall_glGetProgramInfoLog(dbg, cmd, msg, prevRet);
    405         break;
    406     case glesv2debugger::Message_Function_glGetRenderbufferParameteriv:
    407         ret = GenerateCall_glGetRenderbufferParameteriv(dbg, cmd, msg, prevRet);
    408         break;
    409     case glesv2debugger::Message_Function_glGetShaderiv:
    410         ret = GenerateCall_glGetShaderiv(dbg, cmd, msg, prevRet);
    411         break; // annotated output pointers
    412     case glesv2debugger::Message_Function_glGetShaderInfoLog:
    413         ret = GenerateCall_glGetShaderInfoLog(dbg, cmd, msg, prevRet);
    414         break;
    415     case glesv2debugger::Message_Function_glGetShaderPrecisionFormat:
    416         ret = GenerateCall_glGetShaderPrecisionFormat(dbg, cmd, msg, prevRet);
    417         break;
    418     case glesv2debugger::Message_Function_glGetShaderSource:
    419         ret = GenerateCall_glGetShaderSource(dbg, cmd, msg, prevRet);
    420         break;
    421     case glesv2debugger::Message_Function_glGetString:
    422         ret = GenerateCall_glGetString(dbg, cmd, msg, prevRet);
    423         break;
    424     case glesv2debugger::Message_Function_glGetTexParameterfv:
    425         ret = GenerateCall_glGetTexParameterfv(dbg, cmd, msg, prevRet);
    426         break;
    427     case glesv2debugger::Message_Function_glGetTexParameteriv:
    428         ret = GenerateCall_glGetTexParameteriv(dbg, cmd, msg, prevRet);
    429         break;
    430     case glesv2debugger::Message_Function_glGetUniformfv:
    431         ret = GenerateCall_glGetUniformfv(dbg, cmd, msg, prevRet);
    432         break;
    433     case glesv2debugger::Message_Function_glGetUniformiv:
    434         ret = GenerateCall_glGetUniformiv(dbg, cmd, msg, prevRet);
    435         break;
    436     case glesv2debugger::Message_Function_glGetUniformLocation:
    437         msg.set_ret(static_cast<int>(dbg->hooks->gl.glGetUniformLocation(
    438             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLchar*>(const_cast<char *>(cmd.data().data()))
    439             )));
    440         if (cmd.has_ret())
    441             ret = reinterpret_cast<int *>(msg.ret());
    442         break;
    443     case glesv2debugger::Message_Function_glGetVertexAttribfv:
    444         ret = GenerateCall_glGetVertexAttribfv(dbg, cmd, msg, prevRet);
    445         break;
    446     case glesv2debugger::Message_Function_glGetVertexAttribiv:
    447         ret = GenerateCall_glGetVertexAttribiv(dbg, cmd, msg, prevRet);
    448         break;
    449     case glesv2debugger::Message_Function_glGetVertexAttribPointerv:
    450         ret = GenerateCall_glGetVertexAttribPointerv(dbg, cmd, msg, prevRet);
    451         break;
    452     case glesv2debugger::Message_Function_glHint:
    453         dbg->hooks->gl.glHint(
    454             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1())
    455             );
    456         break;
    457     case glesv2debugger::Message_Function_glIsBuffer:
    458         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsBuffer(
    459             static_cast<GLuint>(cmd.arg0()))));
    460         if (cmd.has_ret())
    461             ret = reinterpret_cast<int *>(msg.ret());
    462         break;
    463     case glesv2debugger::Message_Function_glIsEnabled:
    464         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsEnabled(
    465             static_cast<GLenum>(cmd.arg0()))));
    466         if (cmd.has_ret())
    467             ret = reinterpret_cast<int *>(msg.ret());
    468         break;
    469     case glesv2debugger::Message_Function_glIsFramebuffer:
    470         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsFramebuffer(
    471             static_cast<GLuint>(cmd.arg0()))));
    472         if (cmd.has_ret())
    473             ret = reinterpret_cast<int *>(msg.ret());
    474         break;
    475     case glesv2debugger::Message_Function_glIsProgram:
    476         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsProgram(
    477             static_cast<GLuint>(cmd.arg0()))));
    478         if (cmd.has_ret())
    479             ret = reinterpret_cast<int *>(msg.ret());
    480         break;
    481     case glesv2debugger::Message_Function_glIsRenderbuffer:
    482         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsRenderbuffer(
    483             static_cast<GLuint>(cmd.arg0()))));
    484         if (cmd.has_ret())
    485             ret = reinterpret_cast<int *>(msg.ret());
    486         break;
    487     case glesv2debugger::Message_Function_glIsShader:
    488         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsShader(
    489             static_cast<GLuint>(cmd.arg0()))));
    490         if (cmd.has_ret())
    491             ret = reinterpret_cast<int *>(msg.ret());
    492         break;
    493     case glesv2debugger::Message_Function_glIsTexture:
    494         msg.set_ret(static_cast<int>(dbg->hooks->gl.glIsTexture(
    495             static_cast<GLuint>(cmd.arg0()))));
    496         if (cmd.has_ret())
    497             ret = reinterpret_cast<int *>(msg.ret());
    498         break;
    499     case glesv2debugger::Message_Function_glLineWidth:
    500         dbg->hooks->gl.glLineWidth(
    501             static_cast<GLfloat>(cmd.arg0()));
    502         break;
    503     case glesv2debugger::Message_Function_glLinkProgram:
    504         dbg->hooks->gl.glLinkProgram(
    505             static_cast<GLuint>(cmd.arg0()));
    506         break;
    507     case glesv2debugger::Message_Function_glPixelStorei:
    508         dbg->hooks->gl.glPixelStorei(
    509             static_cast<GLenum>(cmd.arg0()), static_cast<GLint>(cmd.arg1())
    510             );
    511         break;
    512     case glesv2debugger::Message_Function_glPolygonOffset:
    513         dbg->hooks->gl.glPolygonOffset(
    514             static_cast<GLfloat>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1())
    515             );
    516         break;
    517     case glesv2debugger::Message_Function_glReadPixels:
    518         ret = GenerateCall_glReadPixels(dbg, cmd, msg, prevRet);
    519         break;
    520     case glesv2debugger::Message_Function_glReleaseShaderCompiler:
    521         dbg->hooks->gl.glReleaseShaderCompiler(
    522             );
    523         break;
    524     case glesv2debugger::Message_Function_glRenderbufferStorage:
    525         dbg->hooks->gl.glRenderbufferStorage(
    526             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    527             static_cast<GLsizei>(cmd.arg2()), static_cast<GLsizei>(cmd.arg3())
    528             );
    529         break;
    530     case glesv2debugger::Message_Function_glSampleCoverage:
    531         dbg->hooks->gl.glSampleCoverage(
    532             static_cast<GLclampf>(cmd.arg0()), GLboolean(cmd.arg1()));
    533         break;
    534     case glesv2debugger::Message_Function_glScissor:
    535         dbg->hooks->gl.glScissor(
    536             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    537             static_cast<GLsizei>(cmd.arg2()), static_cast<GLsizei>(cmd.arg3())
    538             );
    539         break;
    540     case glesv2debugger::Message_Function_glShaderBinary:
    541         ret = GenerateCall_glShaderBinary(dbg, cmd, msg, prevRet);
    542         break;
    543     case glesv2debugger::Message_Function_glShaderSource:
    544         ret = GenerateCall_glShaderSource(dbg, cmd, msg, prevRet);
    545         break;
    546     case glesv2debugger::Message_Function_glStencilFunc:
    547         dbg->hooks->gl.glStencilFunc(
    548             static_cast<GLenum>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    549             static_cast<GLuint>(cmd.arg2()));
    550         break;
    551     case glesv2debugger::Message_Function_glStencilFuncSeparate:
    552         dbg->hooks->gl.glStencilFuncSeparate(
    553             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    554             static_cast<GLint>(cmd.arg2()), static_cast<GLuint>(cmd.arg3())
    555             );
    556         break;
    557     case glesv2debugger::Message_Function_glStencilMask:
    558         dbg->hooks->gl.glStencilMask(
    559             static_cast<GLuint>(cmd.arg0()));
    560         break;
    561     case glesv2debugger::Message_Function_glStencilMaskSeparate:
    562         dbg->hooks->gl.glStencilMaskSeparate(
    563             static_cast<GLenum>(cmd.arg0()), static_cast<GLuint>(cmd.arg1())
    564             );
    565         break;
    566     case glesv2debugger::Message_Function_glStencilOp:
    567         dbg->hooks->gl.glStencilOp(
    568             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    569             static_cast<GLenum>(cmd.arg2()));
    570         break;
    571     case glesv2debugger::Message_Function_glStencilOpSeparate:
    572         dbg->hooks->gl.glStencilOpSeparate(
    573             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    574             static_cast<GLenum>(cmd.arg2()), static_cast<GLenum>(cmd.arg3())
    575             );
    576         break;
    577     case glesv2debugger::Message_Function_glTexImage2D:
    578         ret = GenerateCall_glTexImage2D(dbg, cmd, msg, prevRet);
    579         break;
    580     case glesv2debugger::Message_Function_glTexParameterf:
    581         dbg->hooks->gl.glTexParameterf(
    582             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    583             static_cast<GLfloat>(cmd.arg2()));
    584         break;
    585     case glesv2debugger::Message_Function_glTexParameterfv:
    586         ret = GenerateCall_glTexParameterfv(dbg, cmd, msg, prevRet);
    587         break;
    588     case glesv2debugger::Message_Function_glTexParameteri:
    589         dbg->hooks->gl.glTexParameteri(
    590             static_cast<GLenum>(cmd.arg0()), static_cast<GLenum>(cmd.arg1()),
    591             static_cast<GLint>(cmd.arg2()));
    592         break;
    593     case glesv2debugger::Message_Function_glTexParameteriv:
    594         ret = GenerateCall_glTexParameteriv(dbg, cmd, msg, prevRet);
    595         break;
    596     case glesv2debugger::Message_Function_glTexSubImage2D:
    597         ret = GenerateCall_glTexSubImage2D(dbg, cmd, msg, prevRet);
    598         break;
    599     case glesv2debugger::Message_Function_glUniform1f:
    600         dbg->hooks->gl.glUniform1f(
    601             static_cast<GLint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1())
    602             );
    603         break;
    604     case glesv2debugger::Message_Function_glUniform1fv:
    605         dbg->hooks->gl.glUniform1fv(
    606             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    607             reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    608             );
    609         break;
    610     case glesv2debugger::Message_Function_glUniform1i:
    611         dbg->hooks->gl.glUniform1i(
    612             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1())
    613             );
    614         break;
    615     case glesv2debugger::Message_Function_glUniform1iv:
    616         dbg->hooks->gl.glUniform1iv(
    617             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    618             reinterpret_cast<GLint*>(const_cast<char *>(cmd.data().data()))
    619             );
    620         break;
    621     case glesv2debugger::Message_Function_glUniform2f:
    622         dbg->hooks->gl.glUniform2f(
    623             static_cast<GLint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    624             static_cast<GLfloat>(cmd.arg2()));
    625         break;
    626     case glesv2debugger::Message_Function_glUniform2fv:
    627         dbg->hooks->gl.glUniform2fv(
    628             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    629             reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    630             );
    631         break;
    632     case glesv2debugger::Message_Function_glUniform2i:
    633         dbg->hooks->gl.glUniform2i(
    634             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    635             static_cast<GLint>(cmd.arg2()));
    636         break;
    637     case glesv2debugger::Message_Function_glUniform2iv:
    638         dbg->hooks->gl.glUniform2iv(
    639             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    640             reinterpret_cast<GLint*>(const_cast<char *>(cmd.data().data()))
    641             );
    642         break;
    643     case glesv2debugger::Message_Function_glUniform3f:
    644         dbg->hooks->gl.glUniform3f(
    645             static_cast<GLint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    646             static_cast<GLfloat>(cmd.arg2()), static_cast<GLfloat>(cmd.arg3())
    647             );
    648         break;
    649     case glesv2debugger::Message_Function_glUniform3fv:
    650         dbg->hooks->gl.glUniform3fv(
    651             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    652             reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    653             );
    654         break;
    655     case glesv2debugger::Message_Function_glUniform3i:
    656         dbg->hooks->gl.glUniform3i(
    657             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    658             static_cast<GLint>(cmd.arg2()), static_cast<GLint>(cmd.arg3())
    659             );
    660         break;
    661     case glesv2debugger::Message_Function_glUniform3iv:
    662         dbg->hooks->gl.glUniform3iv(
    663             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    664             reinterpret_cast<GLint*>(const_cast<char *>(cmd.data().data()))
    665             );
    666         break;
    667     case glesv2debugger::Message_Function_glUniform4f:
    668         dbg->hooks->gl.glUniform4f(
    669             static_cast<GLint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    670             static_cast<GLfloat>(cmd.arg2()), static_cast<GLfloat>(cmd.arg3()),
    671             static_cast<GLfloat>(cmd.arg4()));
    672         break;
    673     case glesv2debugger::Message_Function_glUniform4fv:
    674         dbg->hooks->gl.glUniform4fv(
    675             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    676             reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    677             );
    678         break;
    679     case glesv2debugger::Message_Function_glUniform4i:
    680         dbg->hooks->gl.glUniform4i(
    681             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    682             static_cast<GLint>(cmd.arg2()), static_cast<GLint>(cmd.arg3()),
    683             static_cast<GLint>(cmd.arg4()));
    684         break;
    685     case glesv2debugger::Message_Function_glUniform4iv:
    686         dbg->hooks->gl.glUniform4iv(
    687             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    688             reinterpret_cast<GLint*>(const_cast<char *>(cmd.data().data()))
    689             );
    690         break;
    691     case glesv2debugger::Message_Function_glUniformMatrix2fv:
    692         dbg->hooks->gl.glUniformMatrix2fv(
    693             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    694             GLboolean(cmd.arg2()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    695             );
    696         break;
    697     case glesv2debugger::Message_Function_glUniformMatrix3fv:
    698         dbg->hooks->gl.glUniformMatrix3fv(
    699             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    700             GLboolean(cmd.arg2()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    701             );
    702         break;
    703     case glesv2debugger::Message_Function_glUniformMatrix4fv:
    704         dbg->hooks->gl.glUniformMatrix4fv(
    705             static_cast<GLint>(cmd.arg0()), static_cast<GLsizei>(cmd.arg1()),
    706             GLboolean(cmd.arg2()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    707             );
    708         break;
    709     case glesv2debugger::Message_Function_glUseProgram:
    710         dbg->hooks->gl.glUseProgram(
    711             static_cast<GLuint>(cmd.arg0()));
    712         break;
    713     case glesv2debugger::Message_Function_glValidateProgram:
    714         dbg->hooks->gl.glValidateProgram(
    715             static_cast<GLuint>(cmd.arg0()));
    716         break;
    717     case glesv2debugger::Message_Function_glVertexAttrib1f:
    718         dbg->hooks->gl.glVertexAttrib1f(
    719             static_cast<GLuint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1())
    720             );
    721         break;
    722     case glesv2debugger::Message_Function_glVertexAttrib1fv:
    723         dbg->hooks->gl.glVertexAttrib1fv(
    724             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    725             );
    726         break;
    727     case glesv2debugger::Message_Function_glVertexAttrib2f:
    728         dbg->hooks->gl.glVertexAttrib2f(
    729             static_cast<GLuint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    730             static_cast<GLfloat>(cmd.arg2()));
    731         break;
    732     case glesv2debugger::Message_Function_glVertexAttrib2fv:
    733         dbg->hooks->gl.glVertexAttrib2fv(
    734             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    735             );
    736         break;
    737     case glesv2debugger::Message_Function_glVertexAttrib3f:
    738         dbg->hooks->gl.glVertexAttrib3f(
    739             static_cast<GLuint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    740             static_cast<GLfloat>(cmd.arg2()), static_cast<GLfloat>(cmd.arg3())
    741             );
    742         break;
    743     case glesv2debugger::Message_Function_glVertexAttrib3fv:
    744         dbg->hooks->gl.glVertexAttrib3fv(
    745             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    746             );
    747         break;
    748     case glesv2debugger::Message_Function_glVertexAttrib4f:
    749         dbg->hooks->gl.glVertexAttrib4f(
    750             static_cast<GLuint>(cmd.arg0()), static_cast<GLfloat>(cmd.arg1()),
    751             static_cast<GLfloat>(cmd.arg2()), static_cast<GLfloat>(cmd.arg3()),
    752             static_cast<GLfloat>(cmd.arg4()));
    753         break;
    754     case glesv2debugger::Message_Function_glVertexAttrib4fv:
    755         dbg->hooks->gl.glVertexAttrib4fv(
    756             static_cast<GLuint>(cmd.arg0()), reinterpret_cast<GLfloat*>(const_cast<char *>(cmd.data().data()))
    757             );
    758         break;
    759     case glesv2debugger::Message_Function_glVertexAttribPointer:
    760         ret = GenerateCall_glVertexAttribPointer(dbg, cmd, msg, prevRet);
    761         break;
    762     case glesv2debugger::Message_Function_glViewport:
    763         dbg->hooks->gl.glViewport(
    764             static_cast<GLint>(cmd.arg0()), static_cast<GLint>(cmd.arg1()),
    765             static_cast<GLsizei>(cmd.arg2()), static_cast<GLsizei>(cmd.arg3())
    766             );
    767         break;
    768     default:
    769         assert(0);
    770     }
    771     msg.set_time((systemTime(timeMode) - c0) * 1e-6f);
    772     msg.set_context_id(reinterpret_cast<int>(dbg));
    773     msg.set_function(cmd.function());
    774     msg.set_type(glesv2debugger::Message_Type_AfterGeneratedCall);
    775     return ret;
    776 }
    777 
    778 }; // name space android {
    779