Home | History | Annotate | Download | only in client
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // This file is auto-generated from
      6 // gpu/command_buffer/build_gles2_cmd_buffer.py
      7 // DO NOT EDIT!
      8 
      9 // These functions emulate GLES2 over command buffers.
     10 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_C_LIB_AUTOGEN_H_
     11 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_C_LIB_AUTOGEN_H_
     12 
     13 void GLES2ActiveTexture(GLenum texture) {
     14   gles2::GetGLContext()->ActiveTexture(texture);
     15 }
     16 void GLES2AttachShader(GLuint program, GLuint shader) {
     17   gles2::GetGLContext()->AttachShader(program, shader);
     18 }
     19 void GLES2BindAttribLocation(GLuint program, GLuint index, const char* name) {
     20   gles2::GetGLContext()->BindAttribLocation(program, index, name);
     21 }
     22 void GLES2BindBuffer(GLenum target, GLuint buffer) {
     23   gles2::GetGLContext()->BindBuffer(target, buffer);
     24 }
     25 void GLES2BindFramebuffer(GLenum target, GLuint framebuffer) {
     26   gles2::GetGLContext()->BindFramebuffer(target, framebuffer);
     27 }
     28 void GLES2BindRenderbuffer(GLenum target, GLuint renderbuffer) {
     29   gles2::GetGLContext()->BindRenderbuffer(target, renderbuffer);
     30 }
     31 void GLES2BindTexture(GLenum target, GLuint texture) {
     32   gles2::GetGLContext()->BindTexture(target, texture);
     33 }
     34 void GLES2BlendColor(
     35     GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
     36   gles2::GetGLContext()->BlendColor(red, green, blue, alpha);
     37 }
     38 void GLES2BlendEquation(GLenum mode) {
     39   gles2::GetGLContext()->BlendEquation(mode);
     40 }
     41 void GLES2BlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha) {
     42   gles2::GetGLContext()->BlendEquationSeparate(modeRGB, modeAlpha);
     43 }
     44 void GLES2BlendFunc(GLenum sfactor, GLenum dfactor) {
     45   gles2::GetGLContext()->BlendFunc(sfactor, dfactor);
     46 }
     47 void GLES2BlendFuncSeparate(
     48     GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha) {
     49   gles2::GetGLContext()->BlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
     50 }
     51 void GLES2BufferData(
     52     GLenum target, GLsizeiptr size, const void* data, GLenum usage) {
     53   gles2::GetGLContext()->BufferData(target, size, data, usage);
     54 }
     55 void GLES2BufferSubData(
     56     GLenum target, GLintptr offset, GLsizeiptr size, const void* data) {
     57   gles2::GetGLContext()->BufferSubData(target, offset, size, data);
     58 }
     59 GLenum GLES2CheckFramebufferStatus(GLenum target) {
     60   return gles2::GetGLContext()->CheckFramebufferStatus(target);
     61 }
     62 void GLES2Clear(GLbitfield mask) {
     63   gles2::GetGLContext()->Clear(mask);
     64 }
     65 void GLES2ClearColor(
     66     GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha) {
     67   gles2::GetGLContext()->ClearColor(red, green, blue, alpha);
     68 }
     69 void GLES2ClearDepthf(GLclampf depth) {
     70   gles2::GetGLContext()->ClearDepthf(depth);
     71 }
     72 void GLES2ClearStencil(GLint s) {
     73   gles2::GetGLContext()->ClearStencil(s);
     74 }
     75 void GLES2ColorMask(
     76     GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha) {
     77   gles2::GetGLContext()->ColorMask(red, green, blue, alpha);
     78 }
     79 void GLES2CompileShader(GLuint shader) {
     80   gles2::GetGLContext()->CompileShader(shader);
     81 }
     82 void GLES2CompressedTexImage2D(
     83     GLenum target, GLint level, GLenum internalformat, GLsizei width,
     84     GLsizei height, GLint border, GLsizei imageSize, const void* data) {
     85   gles2::GetGLContext()->CompressedTexImage2D(
     86       target, level, internalformat, width, height, border, imageSize, data);
     87 }
     88 void GLES2CompressedTexSubImage2D(
     89     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
     90     GLsizei height, GLenum format, GLsizei imageSize, const void* data) {
     91   gles2::GetGLContext()->CompressedTexSubImage2D(
     92       target, level, xoffset, yoffset, width, height, format, imageSize, data);
     93 }
     94 void GLES2CopyTexImage2D(
     95     GLenum target, GLint level, GLenum internalformat, GLint x, GLint y,
     96     GLsizei width, GLsizei height, GLint border) {
     97   gles2::GetGLContext()->CopyTexImage2D(
     98       target, level, internalformat, x, y, width, height, border);
     99 }
    100 void GLES2CopyTexSubImage2D(
    101     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y,
    102     GLsizei width, GLsizei height) {
    103   gles2::GetGLContext()->CopyTexSubImage2D(
    104       target, level, xoffset, yoffset, x, y, width, height);
    105 }
    106 GLuint GLES2CreateProgram() {
    107   return gles2::GetGLContext()->CreateProgram();
    108 }
    109 GLuint GLES2CreateShader(GLenum type) {
    110   return gles2::GetGLContext()->CreateShader(type);
    111 }
    112 void GLES2CullFace(GLenum mode) {
    113   gles2::GetGLContext()->CullFace(mode);
    114 }
    115 void GLES2DeleteBuffers(GLsizei n, const GLuint* buffers) {
    116   gles2::GetGLContext()->DeleteBuffers(n, buffers);
    117 }
    118 void GLES2DeleteFramebuffers(GLsizei n, const GLuint* framebuffers) {
    119   gles2::GetGLContext()->DeleteFramebuffers(n, framebuffers);
    120 }
    121 void GLES2DeleteProgram(GLuint program) {
    122   gles2::GetGLContext()->DeleteProgram(program);
    123 }
    124 void GLES2DeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers) {
    125   gles2::GetGLContext()->DeleteRenderbuffers(n, renderbuffers);
    126 }
    127 void GLES2DeleteShader(GLuint shader) {
    128   gles2::GetGLContext()->DeleteShader(shader);
    129 }
    130 void GLES2DeleteTextures(GLsizei n, const GLuint* textures) {
    131   gles2::GetGLContext()->DeleteTextures(n, textures);
    132 }
    133 void GLES2DepthFunc(GLenum func) {
    134   gles2::GetGLContext()->DepthFunc(func);
    135 }
    136 void GLES2DepthMask(GLboolean flag) {
    137   gles2::GetGLContext()->DepthMask(flag);
    138 }
    139 void GLES2DepthRangef(GLclampf zNear, GLclampf zFar) {
    140   gles2::GetGLContext()->DepthRangef(zNear, zFar);
    141 }
    142 void GLES2DetachShader(GLuint program, GLuint shader) {
    143   gles2::GetGLContext()->DetachShader(program, shader);
    144 }
    145 void GLES2Disable(GLenum cap) {
    146   gles2::GetGLContext()->Disable(cap);
    147 }
    148 void GLES2DisableVertexAttribArray(GLuint index) {
    149   gles2::GetGLContext()->DisableVertexAttribArray(index);
    150 }
    151 void GLES2DrawArrays(GLenum mode, GLint first, GLsizei count) {
    152   gles2::GetGLContext()->DrawArrays(mode, first, count);
    153 }
    154 void GLES2DrawElements(
    155     GLenum mode, GLsizei count, GLenum type, const void* indices) {
    156   gles2::GetGLContext()->DrawElements(mode, count, type, indices);
    157 }
    158 void GLES2Enable(GLenum cap) {
    159   gles2::GetGLContext()->Enable(cap);
    160 }
    161 void GLES2EnableVertexAttribArray(GLuint index) {
    162   gles2::GetGLContext()->EnableVertexAttribArray(index);
    163 }
    164 void GLES2Finish() {
    165   gles2::GetGLContext()->Finish();
    166 }
    167 void GLES2Flush() {
    168   gles2::GetGLContext()->Flush();
    169 }
    170 void GLES2FramebufferRenderbuffer(
    171     GLenum target, GLenum attachment, GLenum renderbuffertarget,
    172     GLuint renderbuffer) {
    173   gles2::GetGLContext()->FramebufferRenderbuffer(
    174       target, attachment, renderbuffertarget, renderbuffer);
    175 }
    176 void GLES2FramebufferTexture2D(
    177     GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
    178     GLint level) {
    179   gles2::GetGLContext()->FramebufferTexture2D(
    180       target, attachment, textarget, texture, level);
    181 }
    182 void GLES2FrontFace(GLenum mode) {
    183   gles2::GetGLContext()->FrontFace(mode);
    184 }
    185 void GLES2GenBuffers(GLsizei n, GLuint* buffers) {
    186   gles2::GetGLContext()->GenBuffers(n, buffers);
    187 }
    188 void GLES2GenerateMipmap(GLenum target) {
    189   gles2::GetGLContext()->GenerateMipmap(target);
    190 }
    191 void GLES2GenFramebuffers(GLsizei n, GLuint* framebuffers) {
    192   gles2::GetGLContext()->GenFramebuffers(n, framebuffers);
    193 }
    194 void GLES2GenRenderbuffers(GLsizei n, GLuint* renderbuffers) {
    195   gles2::GetGLContext()->GenRenderbuffers(n, renderbuffers);
    196 }
    197 void GLES2GenTextures(GLsizei n, GLuint* textures) {
    198   gles2::GetGLContext()->GenTextures(n, textures);
    199 }
    200 void GLES2GetActiveAttrib(
    201     GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
    202     GLenum* type, char* name) {
    203   gles2::GetGLContext()->GetActiveAttrib(
    204       program, index, bufsize, length, size, type, name);
    205 }
    206 void GLES2GetActiveUniform(
    207     GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size,
    208     GLenum* type, char* name) {
    209   gles2::GetGLContext()->GetActiveUniform(
    210       program, index, bufsize, length, size, type, name);
    211 }
    212 void GLES2GetAttachedShaders(
    213     GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders) {
    214   gles2::GetGLContext()->GetAttachedShaders(program, maxcount, count, shaders);
    215 }
    216 GLint GLES2GetAttribLocation(GLuint program, const char* name) {
    217   return gles2::GetGLContext()->GetAttribLocation(program, name);
    218 }
    219 void GLES2GetBooleanv(GLenum pname, GLboolean* params) {
    220   gles2::GetGLContext()->GetBooleanv(pname, params);
    221 }
    222 void GLES2GetBufferParameteriv(GLenum target, GLenum pname, GLint* params) {
    223   gles2::GetGLContext()->GetBufferParameteriv(target, pname, params);
    224 }
    225 GLenum GLES2GetError() {
    226   return gles2::GetGLContext()->GetError();
    227 }
    228 void GLES2GetFloatv(GLenum pname, GLfloat* params) {
    229   gles2::GetGLContext()->GetFloatv(pname, params);
    230 }
    231 void GLES2GetFramebufferAttachmentParameteriv(
    232     GLenum target, GLenum attachment, GLenum pname, GLint* params) {
    233   gles2::GetGLContext()->GetFramebufferAttachmentParameteriv(
    234       target, attachment, pname, params);
    235 }
    236 void GLES2GetIntegerv(GLenum pname, GLint* params) {
    237   gles2::GetGLContext()->GetIntegerv(pname, params);
    238 }
    239 void GLES2GetProgramiv(GLuint program, GLenum pname, GLint* params) {
    240   gles2::GetGLContext()->GetProgramiv(program, pname, params);
    241 }
    242 void GLES2GetProgramInfoLog(
    243     GLuint program, GLsizei bufsize, GLsizei* length, char* infolog) {
    244   gles2::GetGLContext()->GetProgramInfoLog(program, bufsize, length, infolog);
    245 }
    246 void GLES2GetRenderbufferParameteriv(
    247     GLenum target, GLenum pname, GLint* params) {
    248   gles2::GetGLContext()->GetRenderbufferParameteriv(target, pname, params);
    249 }
    250 void GLES2GetShaderiv(GLuint shader, GLenum pname, GLint* params) {
    251   gles2::GetGLContext()->GetShaderiv(shader, pname, params);
    252 }
    253 void GLES2GetShaderInfoLog(
    254     GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog) {
    255   gles2::GetGLContext()->GetShaderInfoLog(shader, bufsize, length, infolog);
    256 }
    257 void GLES2GetShaderPrecisionFormat(
    258     GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision) {
    259   gles2::GetGLContext()->GetShaderPrecisionFormat(
    260       shadertype, precisiontype, range, precision);
    261 }
    262 void GLES2GetShaderSource(
    263     GLuint shader, GLsizei bufsize, GLsizei* length, char* source) {
    264   gles2::GetGLContext()->GetShaderSource(shader, bufsize, length, source);
    265 }
    266 const GLubyte* GLES2GetString(GLenum name) {
    267   return gles2::GetGLContext()->GetString(name);
    268 }
    269 void GLES2GetTexParameterfv(GLenum target, GLenum pname, GLfloat* params) {
    270   gles2::GetGLContext()->GetTexParameterfv(target, pname, params);
    271 }
    272 void GLES2GetTexParameteriv(GLenum target, GLenum pname, GLint* params) {
    273   gles2::GetGLContext()->GetTexParameteriv(target, pname, params);
    274 }
    275 void GLES2GetUniformfv(GLuint program, GLint location, GLfloat* params) {
    276   gles2::GetGLContext()->GetUniformfv(program, location, params);
    277 }
    278 void GLES2GetUniformiv(GLuint program, GLint location, GLint* params) {
    279   gles2::GetGLContext()->GetUniformiv(program, location, params);
    280 }
    281 GLint GLES2GetUniformLocation(GLuint program, const char* name) {
    282   return gles2::GetGLContext()->GetUniformLocation(program, name);
    283 }
    284 void GLES2GetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params) {
    285   gles2::GetGLContext()->GetVertexAttribfv(index, pname, params);
    286 }
    287 void GLES2GetVertexAttribiv(GLuint index, GLenum pname, GLint* params) {
    288   gles2::GetGLContext()->GetVertexAttribiv(index, pname, params);
    289 }
    290 void GLES2GetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer) {
    291   gles2::GetGLContext()->GetVertexAttribPointerv(index, pname, pointer);
    292 }
    293 void GLES2Hint(GLenum target, GLenum mode) {
    294   gles2::GetGLContext()->Hint(target, mode);
    295 }
    296 GLboolean GLES2IsBuffer(GLuint buffer) {
    297   return gles2::GetGLContext()->IsBuffer(buffer);
    298 }
    299 GLboolean GLES2IsEnabled(GLenum cap) {
    300   return gles2::GetGLContext()->IsEnabled(cap);
    301 }
    302 GLboolean GLES2IsFramebuffer(GLuint framebuffer) {
    303   return gles2::GetGLContext()->IsFramebuffer(framebuffer);
    304 }
    305 GLboolean GLES2IsProgram(GLuint program) {
    306   return gles2::GetGLContext()->IsProgram(program);
    307 }
    308 GLboolean GLES2IsRenderbuffer(GLuint renderbuffer) {
    309   return gles2::GetGLContext()->IsRenderbuffer(renderbuffer);
    310 }
    311 GLboolean GLES2IsShader(GLuint shader) {
    312   return gles2::GetGLContext()->IsShader(shader);
    313 }
    314 GLboolean GLES2IsTexture(GLuint texture) {
    315   return gles2::GetGLContext()->IsTexture(texture);
    316 }
    317 void GLES2LineWidth(GLfloat width) {
    318   gles2::GetGLContext()->LineWidth(width);
    319 }
    320 void GLES2LinkProgram(GLuint program) {
    321   gles2::GetGLContext()->LinkProgram(program);
    322 }
    323 void GLES2PixelStorei(GLenum pname, GLint param) {
    324   gles2::GetGLContext()->PixelStorei(pname, param);
    325 }
    326 void GLES2PolygonOffset(GLfloat factor, GLfloat units) {
    327   gles2::GetGLContext()->PolygonOffset(factor, units);
    328 }
    329 void GLES2ReadPixels(
    330     GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
    331     void* pixels) {
    332   gles2::GetGLContext()->ReadPixels(x, y, width, height, format, type, pixels);
    333 }
    334 void GLES2ReleaseShaderCompiler() {
    335   gles2::GetGLContext()->ReleaseShaderCompiler();
    336 }
    337 void GLES2RenderbufferStorage(
    338     GLenum target, GLenum internalformat, GLsizei width, GLsizei height) {
    339   gles2::GetGLContext()->RenderbufferStorage(
    340       target, internalformat, width, height);
    341 }
    342 void GLES2SampleCoverage(GLclampf value, GLboolean invert) {
    343   gles2::GetGLContext()->SampleCoverage(value, invert);
    344 }
    345 void GLES2Scissor(GLint x, GLint y, GLsizei width, GLsizei height) {
    346   gles2::GetGLContext()->Scissor(x, y, width, height);
    347 }
    348 void GLES2ShaderBinary(
    349     GLsizei n, const GLuint* shaders, GLenum binaryformat, const void* binary,
    350     GLsizei length) {
    351   gles2::GetGLContext()->ShaderBinary(
    352       n, shaders, binaryformat, binary, length);
    353 }
    354 void GLES2ShaderSource(
    355     GLuint shader, GLsizei count, const GLchar* const* str,
    356     const GLint* length) {
    357   gles2::GetGLContext()->ShaderSource(shader, count, str, length);
    358 }
    359 void GLES2ShallowFinishCHROMIUM() {
    360   gles2::GetGLContext()->ShallowFinishCHROMIUM();
    361 }
    362 void GLES2ShallowFlushCHROMIUM() {
    363   gles2::GetGLContext()->ShallowFlushCHROMIUM();
    364 }
    365 void GLES2StencilFunc(GLenum func, GLint ref, GLuint mask) {
    366   gles2::GetGLContext()->StencilFunc(func, ref, mask);
    367 }
    368 void GLES2StencilFuncSeparate(
    369     GLenum face, GLenum func, GLint ref, GLuint mask) {
    370   gles2::GetGLContext()->StencilFuncSeparate(face, func, ref, mask);
    371 }
    372 void GLES2StencilMask(GLuint mask) {
    373   gles2::GetGLContext()->StencilMask(mask);
    374 }
    375 void GLES2StencilMaskSeparate(GLenum face, GLuint mask) {
    376   gles2::GetGLContext()->StencilMaskSeparate(face, mask);
    377 }
    378 void GLES2StencilOp(GLenum fail, GLenum zfail, GLenum zpass) {
    379   gles2::GetGLContext()->StencilOp(fail, zfail, zpass);
    380 }
    381 void GLES2StencilOpSeparate(
    382     GLenum face, GLenum fail, GLenum zfail, GLenum zpass) {
    383   gles2::GetGLContext()->StencilOpSeparate(face, fail, zfail, zpass);
    384 }
    385 void GLES2TexImage2D(
    386     GLenum target, GLint level, GLint internalformat, GLsizei width,
    387     GLsizei height, GLint border, GLenum format, GLenum type,
    388     const void* pixels) {
    389   gles2::GetGLContext()->TexImage2D(
    390       target, level, internalformat, width, height, border, format, type,
    391       pixels);
    392 }
    393 void GLES2TexParameterf(GLenum target, GLenum pname, GLfloat param) {
    394   gles2::GetGLContext()->TexParameterf(target, pname, param);
    395 }
    396 void GLES2TexParameterfv(GLenum target, GLenum pname, const GLfloat* params) {
    397   gles2::GetGLContext()->TexParameterfv(target, pname, params);
    398 }
    399 void GLES2TexParameteri(GLenum target, GLenum pname, GLint param) {
    400   gles2::GetGLContext()->TexParameteri(target, pname, param);
    401 }
    402 void GLES2TexParameteriv(GLenum target, GLenum pname, const GLint* params) {
    403   gles2::GetGLContext()->TexParameteriv(target, pname, params);
    404 }
    405 void GLES2TexSubImage2D(
    406     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    407     GLsizei height, GLenum format, GLenum type, const void* pixels) {
    408   gles2::GetGLContext()->TexSubImage2D(
    409       target, level, xoffset, yoffset, width, height, format, type, pixels);
    410 }
    411 void GLES2Uniform1f(GLint location, GLfloat x) {
    412   gles2::GetGLContext()->Uniform1f(location, x);
    413 }
    414 void GLES2Uniform1fv(GLint location, GLsizei count, const GLfloat* v) {
    415   gles2::GetGLContext()->Uniform1fv(location, count, v);
    416 }
    417 void GLES2Uniform1i(GLint location, GLint x) {
    418   gles2::GetGLContext()->Uniform1i(location, x);
    419 }
    420 void GLES2Uniform1iv(GLint location, GLsizei count, const GLint* v) {
    421   gles2::GetGLContext()->Uniform1iv(location, count, v);
    422 }
    423 void GLES2Uniform2f(GLint location, GLfloat x, GLfloat y) {
    424   gles2::GetGLContext()->Uniform2f(location, x, y);
    425 }
    426 void GLES2Uniform2fv(GLint location, GLsizei count, const GLfloat* v) {
    427   gles2::GetGLContext()->Uniform2fv(location, count, v);
    428 }
    429 void GLES2Uniform2i(GLint location, GLint x, GLint y) {
    430   gles2::GetGLContext()->Uniform2i(location, x, y);
    431 }
    432 void GLES2Uniform2iv(GLint location, GLsizei count, const GLint* v) {
    433   gles2::GetGLContext()->Uniform2iv(location, count, v);
    434 }
    435 void GLES2Uniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z) {
    436   gles2::GetGLContext()->Uniform3f(location, x, y, z);
    437 }
    438 void GLES2Uniform3fv(GLint location, GLsizei count, const GLfloat* v) {
    439   gles2::GetGLContext()->Uniform3fv(location, count, v);
    440 }
    441 void GLES2Uniform3i(GLint location, GLint x, GLint y, GLint z) {
    442   gles2::GetGLContext()->Uniform3i(location, x, y, z);
    443 }
    444 void GLES2Uniform3iv(GLint location, GLsizei count, const GLint* v) {
    445   gles2::GetGLContext()->Uniform3iv(location, count, v);
    446 }
    447 void GLES2Uniform4f(
    448     GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    449   gles2::GetGLContext()->Uniform4f(location, x, y, z, w);
    450 }
    451 void GLES2Uniform4fv(GLint location, GLsizei count, const GLfloat* v) {
    452   gles2::GetGLContext()->Uniform4fv(location, count, v);
    453 }
    454 void GLES2Uniform4i(GLint location, GLint x, GLint y, GLint z, GLint w) {
    455   gles2::GetGLContext()->Uniform4i(location, x, y, z, w);
    456 }
    457 void GLES2Uniform4iv(GLint location, GLsizei count, const GLint* v) {
    458   gles2::GetGLContext()->Uniform4iv(location, count, v);
    459 }
    460 void GLES2UniformMatrix2fv(
    461     GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    462   gles2::GetGLContext()->UniformMatrix2fv(location, count, transpose, value);
    463 }
    464 void GLES2UniformMatrix3fv(
    465     GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    466   gles2::GetGLContext()->UniformMatrix3fv(location, count, transpose, value);
    467 }
    468 void GLES2UniformMatrix4fv(
    469     GLint location, GLsizei count, GLboolean transpose, const GLfloat* value) {
    470   gles2::GetGLContext()->UniformMatrix4fv(location, count, transpose, value);
    471 }
    472 void GLES2UseProgram(GLuint program) {
    473   gles2::GetGLContext()->UseProgram(program);
    474 }
    475 void GLES2ValidateProgram(GLuint program) {
    476   gles2::GetGLContext()->ValidateProgram(program);
    477 }
    478 void GLES2VertexAttrib1f(GLuint indx, GLfloat x) {
    479   gles2::GetGLContext()->VertexAttrib1f(indx, x);
    480 }
    481 void GLES2VertexAttrib1fv(GLuint indx, const GLfloat* values) {
    482   gles2::GetGLContext()->VertexAttrib1fv(indx, values);
    483 }
    484 void GLES2VertexAttrib2f(GLuint indx, GLfloat x, GLfloat y) {
    485   gles2::GetGLContext()->VertexAttrib2f(indx, x, y);
    486 }
    487 void GLES2VertexAttrib2fv(GLuint indx, const GLfloat* values) {
    488   gles2::GetGLContext()->VertexAttrib2fv(indx, values);
    489 }
    490 void GLES2VertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z) {
    491   gles2::GetGLContext()->VertexAttrib3f(indx, x, y, z);
    492 }
    493 void GLES2VertexAttrib3fv(GLuint indx, const GLfloat* values) {
    494   gles2::GetGLContext()->VertexAttrib3fv(indx, values);
    495 }
    496 void GLES2VertexAttrib4f(
    497     GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w) {
    498   gles2::GetGLContext()->VertexAttrib4f(indx, x, y, z, w);
    499 }
    500 void GLES2VertexAttrib4fv(GLuint indx, const GLfloat* values) {
    501   gles2::GetGLContext()->VertexAttrib4fv(indx, values);
    502 }
    503 void GLES2VertexAttribPointer(
    504     GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride,
    505     const void* ptr) {
    506   gles2::GetGLContext()->VertexAttribPointer(
    507       indx, size, type, normalized, stride, ptr);
    508 }
    509 void GLES2Viewport(GLint x, GLint y, GLsizei width, GLsizei height) {
    510   gles2::GetGLContext()->Viewport(x, y, width, height);
    511 }
    512 void GLES2BlitFramebufferEXT(
    513     GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0,
    514     GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter) {
    515   gles2::GetGLContext()->BlitFramebufferEXT(
    516       srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
    517 }
    518 void GLES2RenderbufferStorageMultisampleEXT(
    519     GLenum target, GLsizei samples, GLenum internalformat, GLsizei width,
    520     GLsizei height) {
    521   gles2::GetGLContext()->RenderbufferStorageMultisampleEXT(
    522       target, samples, internalformat, width, height);
    523 }
    524 void GLES2FramebufferTexture2DMultisampleEXT(
    525     GLenum target, GLenum attachment, GLenum textarget, GLuint texture,
    526     GLint level, GLsizei samples) {
    527   gles2::GetGLContext()->FramebufferTexture2DMultisampleEXT(
    528       target, attachment, textarget, texture, level, samples);
    529 }
    530 void GLES2TexStorage2DEXT(
    531     GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width,
    532     GLsizei height) {
    533   gles2::GetGLContext()->TexStorage2DEXT(
    534       target, levels, internalFormat, width, height);
    535 }
    536 void GLES2GenQueriesEXT(GLsizei n, GLuint* queries) {
    537   gles2::GetGLContext()->GenQueriesEXT(n, queries);
    538 }
    539 void GLES2DeleteQueriesEXT(GLsizei n, const GLuint* queries) {
    540   gles2::GetGLContext()->DeleteQueriesEXT(n, queries);
    541 }
    542 GLboolean GLES2IsQueryEXT(GLuint id) {
    543   return gles2::GetGLContext()->IsQueryEXT(id);
    544 }
    545 void GLES2BeginQueryEXT(GLenum target, GLuint id) {
    546   gles2::GetGLContext()->BeginQueryEXT(target, id);
    547 }
    548 void GLES2EndQueryEXT(GLenum target) {
    549   gles2::GetGLContext()->EndQueryEXT(target);
    550 }
    551 void GLES2GetQueryivEXT(GLenum target, GLenum pname, GLint* params) {
    552   gles2::GetGLContext()->GetQueryivEXT(target, pname, params);
    553 }
    554 void GLES2GetQueryObjectuivEXT(GLuint id, GLenum pname, GLuint* params) {
    555   gles2::GetGLContext()->GetQueryObjectuivEXT(id, pname, params);
    556 }
    557 void GLES2InsertEventMarkerEXT(GLsizei length, const GLchar* marker) {
    558   gles2::GetGLContext()->InsertEventMarkerEXT(length, marker);
    559 }
    560 void GLES2PushGroupMarkerEXT(GLsizei length, const GLchar* marker) {
    561   gles2::GetGLContext()->PushGroupMarkerEXT(length, marker);
    562 }
    563 void GLES2PopGroupMarkerEXT() {
    564   gles2::GetGLContext()->PopGroupMarkerEXT();
    565 }
    566 void GLES2GenVertexArraysOES(GLsizei n, GLuint* arrays) {
    567   gles2::GetGLContext()->GenVertexArraysOES(n, arrays);
    568 }
    569 void GLES2DeleteVertexArraysOES(GLsizei n, const GLuint* arrays) {
    570   gles2::GetGLContext()->DeleteVertexArraysOES(n, arrays);
    571 }
    572 GLboolean GLES2IsVertexArrayOES(GLuint array) {
    573   return gles2::GetGLContext()->IsVertexArrayOES(array);
    574 }
    575 void GLES2BindVertexArrayOES(GLuint array) {
    576   gles2::GetGLContext()->BindVertexArrayOES(array);
    577 }
    578 void GLES2SwapBuffers() {
    579   gles2::GetGLContext()->SwapBuffers();
    580 }
    581 GLuint GLES2GetMaxValueInBufferCHROMIUM(
    582     GLuint buffer_id, GLsizei count, GLenum type, GLuint offset) {
    583   return gles2::GetGLContext()->GetMaxValueInBufferCHROMIUM(
    584       buffer_id, count, type, offset);
    585 }
    586 void GLES2GenSharedIdsCHROMIUM(
    587     GLuint namespace_id, GLuint id_offset, GLsizei n, GLuint* ids) {
    588   gles2::GetGLContext()->GenSharedIdsCHROMIUM(namespace_id, id_offset, n, ids);
    589 }
    590 void GLES2DeleteSharedIdsCHROMIUM(
    591     GLuint namespace_id, GLsizei n, const GLuint* ids) {
    592   gles2::GetGLContext()->DeleteSharedIdsCHROMIUM(namespace_id, n, ids);
    593 }
    594 void GLES2RegisterSharedIdsCHROMIUM(
    595     GLuint namespace_id, GLsizei n, const GLuint* ids) {
    596   gles2::GetGLContext()->RegisterSharedIdsCHROMIUM(namespace_id, n, ids);
    597 }
    598 GLboolean GLES2EnableFeatureCHROMIUM(const char* feature) {
    599   return gles2::GetGLContext()->EnableFeatureCHROMIUM(feature);
    600 }
    601 void* GLES2MapBufferCHROMIUM(GLuint target, GLenum access) {
    602   return gles2::GetGLContext()->MapBufferCHROMIUM(target, access);
    603 }
    604 GLboolean GLES2UnmapBufferCHROMIUM(GLuint target) {
    605   return gles2::GetGLContext()->UnmapBufferCHROMIUM(target);
    606 }
    607 void* GLES2MapImageCHROMIUM(GLuint image_id, GLenum access) {
    608   return gles2::GetGLContext()->MapImageCHROMIUM(image_id, access);
    609 }
    610 void GLES2UnmapImageCHROMIUM(GLuint image_id) {
    611   gles2::GetGLContext()->UnmapImageCHROMIUM(image_id);
    612 }
    613 void* GLES2MapBufferSubDataCHROMIUM(
    614     GLuint target, GLintptr offset, GLsizeiptr size, GLenum access) {
    615   return gles2::GetGLContext()->MapBufferSubDataCHROMIUM(
    616       target, offset, size, access);
    617 }
    618 void GLES2UnmapBufferSubDataCHROMIUM(const void* mem) {
    619   gles2::GetGLContext()->UnmapBufferSubDataCHROMIUM(mem);
    620 }
    621 void* GLES2MapTexSubImage2DCHROMIUM(
    622     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    623     GLsizei height, GLenum format, GLenum type, GLenum access) {
    624   return gles2::GetGLContext()->MapTexSubImage2DCHROMIUM(
    625       target, level, xoffset, yoffset, width, height, format, type, access);
    626 }
    627 void GLES2UnmapTexSubImage2DCHROMIUM(const void* mem) {
    628   gles2::GetGLContext()->UnmapTexSubImage2DCHROMIUM(mem);
    629 }
    630 void GLES2ResizeCHROMIUM(GLuint width, GLuint height, GLfloat scale_factor) {
    631   gles2::GetGLContext()->ResizeCHROMIUM(width, height, scale_factor);
    632 }
    633 const GLchar* GLES2GetRequestableExtensionsCHROMIUM() {
    634   return gles2::GetGLContext()->GetRequestableExtensionsCHROMIUM();
    635 }
    636 void GLES2RequestExtensionCHROMIUM(const char* extension) {
    637   gles2::GetGLContext()->RequestExtensionCHROMIUM(extension);
    638 }
    639 void GLES2RateLimitOffscreenContextCHROMIUM() {
    640   gles2::GetGLContext()->RateLimitOffscreenContextCHROMIUM();
    641 }
    642 void GLES2GetMultipleIntegervCHROMIUM(
    643     const GLenum* pnames, GLuint count, GLint* results, GLsizeiptr size) {
    644   gles2::GetGLContext()->GetMultipleIntegervCHROMIUM(
    645       pnames, count, results, size);
    646 }
    647 void GLES2GetProgramInfoCHROMIUM(
    648     GLuint program, GLsizei bufsize, GLsizei* size, void* info) {
    649   gles2::GetGLContext()->GetProgramInfoCHROMIUM(program, bufsize, size, info);
    650 }
    651 GLuint GLES2CreateStreamTextureCHROMIUM(GLuint texture) {
    652   return gles2::GetGLContext()->CreateStreamTextureCHROMIUM(texture);
    653 }
    654 void GLES2DestroyStreamTextureCHROMIUM(GLuint texture) {
    655   gles2::GetGLContext()->DestroyStreamTextureCHROMIUM(texture);
    656 }
    657 GLuint GLES2CreateImageCHROMIUM(
    658     GLsizei width, GLsizei height, GLenum internalformat) {
    659   return gles2::GetGLContext()->CreateImageCHROMIUM(
    660       width, height, internalformat);
    661 }
    662 void GLES2DestroyImageCHROMIUM(GLuint image_id) {
    663   gles2::GetGLContext()->DestroyImageCHROMIUM(image_id);
    664 }
    665 void GLES2GetImageParameterivCHROMIUM(
    666     GLuint image_id, GLenum pname, GLint* params) {
    667   gles2::GetGLContext()->GetImageParameterivCHROMIUM(image_id, pname, params);
    668 }
    669 void GLES2GetTranslatedShaderSourceANGLE(
    670     GLuint shader, GLsizei bufsize, GLsizei* length, char* source) {
    671   gles2::GetGLContext()->GetTranslatedShaderSourceANGLE(
    672       shader, bufsize, length, source);
    673 }
    674 void GLES2PostSubBufferCHROMIUM(GLint x, GLint y, GLint width, GLint height) {
    675   gles2::GetGLContext()->PostSubBufferCHROMIUM(x, y, width, height);
    676 }
    677 void GLES2TexImageIOSurface2DCHROMIUM(
    678     GLenum target, GLsizei width, GLsizei height, GLuint ioSurfaceId,
    679     GLuint plane) {
    680   gles2::GetGLContext()->TexImageIOSurface2DCHROMIUM(
    681       target, width, height, ioSurfaceId, plane);
    682 }
    683 void GLES2CopyTextureCHROMIUM(
    684     GLenum target, GLenum source_id, GLenum dest_id, GLint level,
    685     GLint internalformat, GLenum dest_type) {
    686   gles2::GetGLContext()->CopyTextureCHROMIUM(
    687       target, source_id, dest_id, level, internalformat, dest_type);
    688 }
    689 void GLES2DrawArraysInstancedANGLE(
    690     GLenum mode, GLint first, GLsizei count, GLsizei primcount) {
    691   gles2::GetGLContext()->DrawArraysInstancedANGLE(
    692       mode, first, count, primcount);
    693 }
    694 void GLES2DrawElementsInstancedANGLE(
    695     GLenum mode, GLsizei count, GLenum type, const void* indices,
    696     GLsizei primcount) {
    697   gles2::GetGLContext()->DrawElementsInstancedANGLE(
    698       mode, count, type, indices, primcount);
    699 }
    700 void GLES2VertexAttribDivisorANGLE(GLuint index, GLuint divisor) {
    701   gles2::GetGLContext()->VertexAttribDivisorANGLE(index, divisor);
    702 }
    703 void GLES2GenMailboxCHROMIUM(GLbyte* mailbox) {
    704   gles2::GetGLContext()->GenMailboxCHROMIUM(mailbox);
    705 }
    706 void GLES2ProduceTextureCHROMIUM(GLenum target, const GLbyte* mailbox) {
    707   gles2::GetGLContext()->ProduceTextureCHROMIUM(target, mailbox);
    708 }
    709 void GLES2ConsumeTextureCHROMIUM(GLenum target, const GLbyte* mailbox) {
    710   gles2::GetGLContext()->ConsumeTextureCHROMIUM(target, mailbox);
    711 }
    712 void GLES2BindUniformLocationCHROMIUM(
    713     GLuint program, GLint location, const char* name) {
    714   gles2::GetGLContext()->BindUniformLocationCHROMIUM(program, location, name);
    715 }
    716 void GLES2BindTexImage2DCHROMIUM(GLenum target, GLint imageId) {
    717   gles2::GetGLContext()->BindTexImage2DCHROMIUM(target, imageId);
    718 }
    719 void GLES2ReleaseTexImage2DCHROMIUM(GLenum target, GLint imageId) {
    720   gles2::GetGLContext()->ReleaseTexImage2DCHROMIUM(target, imageId);
    721 }
    722 void GLES2TraceBeginCHROMIUM(const char* name) {
    723   gles2::GetGLContext()->TraceBeginCHROMIUM(name);
    724 }
    725 void GLES2TraceEndCHROMIUM() {
    726   gles2::GetGLContext()->TraceEndCHROMIUM();
    727 }
    728 void GLES2AsyncTexSubImage2DCHROMIUM(
    729     GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    730     GLsizei height, GLenum format, GLenum type, const void* data) {
    731   gles2::GetGLContext()->AsyncTexSubImage2DCHROMIUM(
    732       target, level, xoffset, yoffset, width, height, format, type, data);
    733 }
    734 void GLES2AsyncTexImage2DCHROMIUM(
    735     GLenum target, GLint level, GLint internalformat, GLsizei width,
    736     GLsizei height, GLint border, GLenum format, GLenum type,
    737     const void* pixels) {
    738   gles2::GetGLContext()->AsyncTexImage2DCHROMIUM(
    739       target, level, internalformat, width, height, border, format, type,
    740       pixels);
    741 }
    742 void GLES2WaitAsyncTexImage2DCHROMIUM(GLenum target) {
    743   gles2::GetGLContext()->WaitAsyncTexImage2DCHROMIUM(target);
    744 }
    745 void GLES2DiscardFramebufferEXT(
    746     GLenum target, GLsizei count, const GLenum* attachments) {
    747   gles2::GetGLContext()->DiscardFramebufferEXT(target, count, attachments);
    748 }
    749 void GLES2LoseContextCHROMIUM(GLenum current, GLenum other) {
    750   gles2::GetGLContext()->LoseContextCHROMIUM(current, other);
    751 }
    752 GLuint GLES2InsertSyncPointCHROMIUM() {
    753   return gles2::GetGLContext()->InsertSyncPointCHROMIUM();
    754 }
    755 void GLES2WaitSyncPointCHROMIUM(GLuint sync_point) {
    756   gles2::GetGLContext()->WaitSyncPointCHROMIUM(sync_point);
    757 }
    758 void GLES2DrawBuffersEXT(GLsizei count, const GLenum* bufs) {
    759   gles2::GetGLContext()->DrawBuffersEXT(count, bufs);
    760 }
    761 
    762 namespace gles2 {
    763 
    764 extern const NameToFunc g_gles2_function_table[] = {
    765   { "glActiveTexture", reinterpret_cast<GLES2FunctionPointer>(
    766       glActiveTexture), },
    767   { "glAttachShader", reinterpret_cast<GLES2FunctionPointer>(
    768       glAttachShader), },
    769   { "glBindAttribLocation", reinterpret_cast<GLES2FunctionPointer>(
    770       glBindAttribLocation), },
    771   { "glBindBuffer", reinterpret_cast<GLES2FunctionPointer>(glBindBuffer), },
    772   { "glBindFramebuffer", reinterpret_cast<GLES2FunctionPointer>(
    773       glBindFramebuffer), },
    774   { "glBindRenderbuffer", reinterpret_cast<GLES2FunctionPointer>(
    775       glBindRenderbuffer), },
    776   { "glBindTexture", reinterpret_cast<GLES2FunctionPointer>(glBindTexture), },
    777   { "glBlendColor", reinterpret_cast<GLES2FunctionPointer>(glBlendColor), },
    778   { "glBlendEquation", reinterpret_cast<GLES2FunctionPointer>(
    779       glBlendEquation), },
    780   { "glBlendEquationSeparate", reinterpret_cast<GLES2FunctionPointer>(
    781       glBlendEquationSeparate), },
    782   { "glBlendFunc", reinterpret_cast<GLES2FunctionPointer>(glBlendFunc), },
    783   { "glBlendFuncSeparate", reinterpret_cast<GLES2FunctionPointer>(
    784       glBlendFuncSeparate), },
    785   { "glBufferData", reinterpret_cast<GLES2FunctionPointer>(glBufferData), },
    786   { "glBufferSubData", reinterpret_cast<GLES2FunctionPointer>(
    787       glBufferSubData), },
    788   { "glCheckFramebufferStatus", reinterpret_cast<GLES2FunctionPointer>(
    789       glCheckFramebufferStatus), },
    790   { "glClear", reinterpret_cast<GLES2FunctionPointer>(glClear), },
    791   { "glClearColor", reinterpret_cast<GLES2FunctionPointer>(glClearColor), },
    792   { "glClearDepthf", reinterpret_cast<GLES2FunctionPointer>(glClearDepthf), },
    793   { "glClearStencil", reinterpret_cast<GLES2FunctionPointer>(
    794       glClearStencil), },
    795   { "glColorMask", reinterpret_cast<GLES2FunctionPointer>(glColorMask), },
    796   { "glCompileShader", reinterpret_cast<GLES2FunctionPointer>(
    797       glCompileShader), },
    798   { "glCompressedTexImage2D", reinterpret_cast<GLES2FunctionPointer>(
    799       glCompressedTexImage2D), },
    800   { "glCompressedTexSubImage2D", reinterpret_cast<GLES2FunctionPointer>(
    801       glCompressedTexSubImage2D), },
    802   { "glCopyTexImage2D", reinterpret_cast<GLES2FunctionPointer>(
    803       glCopyTexImage2D), },
    804   { "glCopyTexSubImage2D", reinterpret_cast<GLES2FunctionPointer>(
    805       glCopyTexSubImage2D), },
    806   { "glCreateProgram", reinterpret_cast<GLES2FunctionPointer>(
    807       glCreateProgram), },
    808   { "glCreateShader", reinterpret_cast<GLES2FunctionPointer>(
    809       glCreateShader), },
    810   { "glCullFace", reinterpret_cast<GLES2FunctionPointer>(glCullFace), },
    811   { "glDeleteBuffers", reinterpret_cast<GLES2FunctionPointer>(
    812       glDeleteBuffers), },
    813   { "glDeleteFramebuffers", reinterpret_cast<GLES2FunctionPointer>(
    814       glDeleteFramebuffers), },
    815   { "glDeleteProgram", reinterpret_cast<GLES2FunctionPointer>(
    816       glDeleteProgram), },
    817   { "glDeleteRenderbuffers", reinterpret_cast<GLES2FunctionPointer>(
    818       glDeleteRenderbuffers), },
    819   { "glDeleteShader", reinterpret_cast<GLES2FunctionPointer>(
    820       glDeleteShader), },
    821   { "glDeleteTextures", reinterpret_cast<GLES2FunctionPointer>(
    822       glDeleteTextures), },
    823   { "glDepthFunc", reinterpret_cast<GLES2FunctionPointer>(glDepthFunc), },
    824   { "glDepthMask", reinterpret_cast<GLES2FunctionPointer>(glDepthMask), },
    825   { "glDepthRangef", reinterpret_cast<GLES2FunctionPointer>(glDepthRangef), },
    826   { "glDetachShader", reinterpret_cast<GLES2FunctionPointer>(
    827       glDetachShader), },
    828   { "glDisable", reinterpret_cast<GLES2FunctionPointer>(glDisable), },
    829   { "glDisableVertexAttribArray", reinterpret_cast<GLES2FunctionPointer>(
    830       glDisableVertexAttribArray), },
    831   { "glDrawArrays", reinterpret_cast<GLES2FunctionPointer>(glDrawArrays), },
    832   { "glDrawElements", reinterpret_cast<GLES2FunctionPointer>(
    833       glDrawElements), },
    834   { "glEnable", reinterpret_cast<GLES2FunctionPointer>(glEnable), },
    835   { "glEnableVertexAttribArray", reinterpret_cast<GLES2FunctionPointer>(
    836       glEnableVertexAttribArray), },
    837   { "glFinish", reinterpret_cast<GLES2FunctionPointer>(glFinish), },
    838   { "glFlush", reinterpret_cast<GLES2FunctionPointer>(glFlush), },
    839   { "glFramebufferRenderbuffer", reinterpret_cast<GLES2FunctionPointer>(
    840       glFramebufferRenderbuffer), },
    841   { "glFramebufferTexture2D", reinterpret_cast<GLES2FunctionPointer>(
    842       glFramebufferTexture2D), },
    843   { "glFrontFace", reinterpret_cast<GLES2FunctionPointer>(glFrontFace), },
    844   { "glGenBuffers", reinterpret_cast<GLES2FunctionPointer>(glGenBuffers), },
    845   { "glGenerateMipmap", reinterpret_cast<GLES2FunctionPointer>(
    846       glGenerateMipmap), },
    847   { "glGenFramebuffers", reinterpret_cast<GLES2FunctionPointer>(
    848       glGenFramebuffers), },
    849   { "glGenRenderbuffers", reinterpret_cast<GLES2FunctionPointer>(
    850       glGenRenderbuffers), },
    851   { "glGenTextures", reinterpret_cast<GLES2FunctionPointer>(glGenTextures), },
    852   { "glGetActiveAttrib", reinterpret_cast<GLES2FunctionPointer>(
    853       glGetActiveAttrib), },
    854   { "glGetActiveUniform", reinterpret_cast<GLES2FunctionPointer>(
    855       glGetActiveUniform), },
    856   { "glGetAttachedShaders", reinterpret_cast<GLES2FunctionPointer>(
    857       glGetAttachedShaders), },
    858   { "glGetAttribLocation", reinterpret_cast<GLES2FunctionPointer>(
    859       glGetAttribLocation), },
    860   { "glGetBooleanv", reinterpret_cast<GLES2FunctionPointer>(glGetBooleanv), },
    861   { "glGetBufferParameteriv", reinterpret_cast<GLES2FunctionPointer>(
    862       glGetBufferParameteriv), },
    863   { "glGetError", reinterpret_cast<GLES2FunctionPointer>(glGetError), },
    864   { "glGetFloatv", reinterpret_cast<GLES2FunctionPointer>(glGetFloatv), },
    865   { "glGetFramebufferAttachmentParameteriv", reinterpret_cast<GLES2FunctionPointer>(glGetFramebufferAttachmentParameteriv), },  // NOLINT
    866   { "glGetIntegerv", reinterpret_cast<GLES2FunctionPointer>(glGetIntegerv), },
    867   { "glGetProgramiv", reinterpret_cast<GLES2FunctionPointer>(
    868       glGetProgramiv), },
    869   { "glGetProgramInfoLog", reinterpret_cast<GLES2FunctionPointer>(
    870       glGetProgramInfoLog), },
    871   { "glGetRenderbufferParameteriv", reinterpret_cast<GLES2FunctionPointer>(
    872       glGetRenderbufferParameteriv), },
    873   { "glGetShaderiv", reinterpret_cast<GLES2FunctionPointer>(glGetShaderiv), },
    874   { "glGetShaderInfoLog", reinterpret_cast<GLES2FunctionPointer>(
    875       glGetShaderInfoLog), },
    876   { "glGetShaderPrecisionFormat", reinterpret_cast<GLES2FunctionPointer>(
    877       glGetShaderPrecisionFormat), },
    878   { "glGetShaderSource", reinterpret_cast<GLES2FunctionPointer>(
    879       glGetShaderSource), },
    880   { "glGetString", reinterpret_cast<GLES2FunctionPointer>(glGetString), },
    881   { "glGetTexParameterfv", reinterpret_cast<GLES2FunctionPointer>(
    882       glGetTexParameterfv), },
    883   { "glGetTexParameteriv", reinterpret_cast<GLES2FunctionPointer>(
    884       glGetTexParameteriv), },
    885   { "glGetUniformfv", reinterpret_cast<GLES2FunctionPointer>(
    886       glGetUniformfv), },
    887   { "glGetUniformiv", reinterpret_cast<GLES2FunctionPointer>(
    888       glGetUniformiv), },
    889   { "glGetUniformLocation", reinterpret_cast<GLES2FunctionPointer>(
    890       glGetUniformLocation), },
    891   { "glGetVertexAttribfv", reinterpret_cast<GLES2FunctionPointer>(
    892       glGetVertexAttribfv), },
    893   { "glGetVertexAttribiv", reinterpret_cast<GLES2FunctionPointer>(
    894       glGetVertexAttribiv), },
    895   { "glGetVertexAttribPointerv", reinterpret_cast<GLES2FunctionPointer>(
    896       glGetVertexAttribPointerv), },
    897   { "glHint", reinterpret_cast<GLES2FunctionPointer>(glHint), },
    898   { "glIsBuffer", reinterpret_cast<GLES2FunctionPointer>(glIsBuffer), },
    899   { "glIsEnabled", reinterpret_cast<GLES2FunctionPointer>(glIsEnabled), },
    900   { "glIsFramebuffer", reinterpret_cast<GLES2FunctionPointer>(
    901       glIsFramebuffer), },
    902   { "glIsProgram", reinterpret_cast<GLES2FunctionPointer>(glIsProgram), },
    903   { "glIsRenderbuffer", reinterpret_cast<GLES2FunctionPointer>(
    904       glIsRenderbuffer), },
    905   { "glIsShader", reinterpret_cast<GLES2FunctionPointer>(glIsShader), },
    906   { "glIsTexture", reinterpret_cast<GLES2FunctionPointer>(glIsTexture), },
    907   { "glLineWidth", reinterpret_cast<GLES2FunctionPointer>(glLineWidth), },
    908   { "glLinkProgram", reinterpret_cast<GLES2FunctionPointer>(glLinkProgram), },
    909   { "glPixelStorei", reinterpret_cast<GLES2FunctionPointer>(glPixelStorei), },
    910   { "glPolygonOffset", reinterpret_cast<GLES2FunctionPointer>(
    911       glPolygonOffset), },
    912   { "glReadPixels", reinterpret_cast<GLES2FunctionPointer>(glReadPixels), },
    913   { "glReleaseShaderCompiler", reinterpret_cast<GLES2FunctionPointer>(
    914       glReleaseShaderCompiler), },
    915   { "glRenderbufferStorage", reinterpret_cast<GLES2FunctionPointer>(
    916       glRenderbufferStorage), },
    917   { "glSampleCoverage", reinterpret_cast<GLES2FunctionPointer>(
    918       glSampleCoverage), },
    919   { "glScissor", reinterpret_cast<GLES2FunctionPointer>(glScissor), },
    920   { "glShaderBinary", reinterpret_cast<GLES2FunctionPointer>(
    921       glShaderBinary), },
    922   { "glShaderSource", reinterpret_cast<GLES2FunctionPointer>(
    923       glShaderSource), },
    924   { "glShallowFinishCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
    925       glShallowFinishCHROMIUM), },
    926   { "glShallowFlushCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
    927       glShallowFlushCHROMIUM), },
    928   { "glStencilFunc", reinterpret_cast<GLES2FunctionPointer>(glStencilFunc), },
    929   { "glStencilFuncSeparate", reinterpret_cast<GLES2FunctionPointer>(
    930       glStencilFuncSeparate), },
    931   { "glStencilMask", reinterpret_cast<GLES2FunctionPointer>(glStencilMask), },
    932   { "glStencilMaskSeparate", reinterpret_cast<GLES2FunctionPointer>(
    933       glStencilMaskSeparate), },
    934   { "glStencilOp", reinterpret_cast<GLES2FunctionPointer>(glStencilOp), },
    935   { "glStencilOpSeparate", reinterpret_cast<GLES2FunctionPointer>(
    936       glStencilOpSeparate), },
    937   { "glTexImage2D", reinterpret_cast<GLES2FunctionPointer>(glTexImage2D), },
    938   { "glTexParameterf", reinterpret_cast<GLES2FunctionPointer>(
    939       glTexParameterf), },
    940   { "glTexParameterfv", reinterpret_cast<GLES2FunctionPointer>(
    941       glTexParameterfv), },
    942   { "glTexParameteri", reinterpret_cast<GLES2FunctionPointer>(
    943       glTexParameteri), },
    944   { "glTexParameteriv", reinterpret_cast<GLES2FunctionPointer>(
    945       glTexParameteriv), },
    946   { "glTexSubImage2D", reinterpret_cast<GLES2FunctionPointer>(
    947       glTexSubImage2D), },
    948   { "glUniform1f", reinterpret_cast<GLES2FunctionPointer>(glUniform1f), },
    949   { "glUniform1fv", reinterpret_cast<GLES2FunctionPointer>(glUniform1fv), },
    950   { "glUniform1i", reinterpret_cast<GLES2FunctionPointer>(glUniform1i), },
    951   { "glUniform1iv", reinterpret_cast<GLES2FunctionPointer>(glUniform1iv), },
    952   { "glUniform2f", reinterpret_cast<GLES2FunctionPointer>(glUniform2f), },
    953   { "glUniform2fv", reinterpret_cast<GLES2FunctionPointer>(glUniform2fv), },
    954   { "glUniform2i", reinterpret_cast<GLES2FunctionPointer>(glUniform2i), },
    955   { "glUniform2iv", reinterpret_cast<GLES2FunctionPointer>(glUniform2iv), },
    956   { "glUniform3f", reinterpret_cast<GLES2FunctionPointer>(glUniform3f), },
    957   { "glUniform3fv", reinterpret_cast<GLES2FunctionPointer>(glUniform3fv), },
    958   { "glUniform3i", reinterpret_cast<GLES2FunctionPointer>(glUniform3i), },
    959   { "glUniform3iv", reinterpret_cast<GLES2FunctionPointer>(glUniform3iv), },
    960   { "glUniform4f", reinterpret_cast<GLES2FunctionPointer>(glUniform4f), },
    961   { "glUniform4fv", reinterpret_cast<GLES2FunctionPointer>(glUniform4fv), },
    962   { "glUniform4i", reinterpret_cast<GLES2FunctionPointer>(glUniform4i), },
    963   { "glUniform4iv", reinterpret_cast<GLES2FunctionPointer>(glUniform4iv), },
    964   { "glUniformMatrix2fv", reinterpret_cast<GLES2FunctionPointer>(
    965       glUniformMatrix2fv), },
    966   { "glUniformMatrix3fv", reinterpret_cast<GLES2FunctionPointer>(
    967       glUniformMatrix3fv), },
    968   { "glUniformMatrix4fv", reinterpret_cast<GLES2FunctionPointer>(
    969       glUniformMatrix4fv), },
    970   { "glUseProgram", reinterpret_cast<GLES2FunctionPointer>(glUseProgram), },
    971   { "glValidateProgram", reinterpret_cast<GLES2FunctionPointer>(
    972       glValidateProgram), },
    973   { "glVertexAttrib1f", reinterpret_cast<GLES2FunctionPointer>(
    974       glVertexAttrib1f), },
    975   { "glVertexAttrib1fv", reinterpret_cast<GLES2FunctionPointer>(
    976       glVertexAttrib1fv), },
    977   { "glVertexAttrib2f", reinterpret_cast<GLES2FunctionPointer>(
    978       glVertexAttrib2f), },
    979   { "glVertexAttrib2fv", reinterpret_cast<GLES2FunctionPointer>(
    980       glVertexAttrib2fv), },
    981   { "glVertexAttrib3f", reinterpret_cast<GLES2FunctionPointer>(
    982       glVertexAttrib3f), },
    983   { "glVertexAttrib3fv", reinterpret_cast<GLES2FunctionPointer>(
    984       glVertexAttrib3fv), },
    985   { "glVertexAttrib4f", reinterpret_cast<GLES2FunctionPointer>(
    986       glVertexAttrib4f), },
    987   { "glVertexAttrib4fv", reinterpret_cast<GLES2FunctionPointer>(
    988       glVertexAttrib4fv), },
    989   { "glVertexAttribPointer", reinterpret_cast<GLES2FunctionPointer>(
    990       glVertexAttribPointer), },
    991   { "glViewport", reinterpret_cast<GLES2FunctionPointer>(glViewport), },
    992   { "glBlitFramebufferEXT", reinterpret_cast<GLES2FunctionPointer>(
    993       glBlitFramebufferEXT), },
    994   { "glRenderbufferStorageMultisampleEXT", reinterpret_cast<GLES2FunctionPointer>(glRenderbufferStorageMultisampleEXT), },  // NOLINT
    995   { "glFramebufferTexture2DMultisampleEXT", reinterpret_cast<GLES2FunctionPointer>(glFramebufferTexture2DMultisampleEXT), },  // NOLINT
    996   { "glTexStorage2DEXT", reinterpret_cast<GLES2FunctionPointer>(
    997       glTexStorage2DEXT), },
    998   { "glGenQueriesEXT", reinterpret_cast<GLES2FunctionPointer>(
    999       glGenQueriesEXT), },
   1000   { "glDeleteQueriesEXT", reinterpret_cast<GLES2FunctionPointer>(
   1001       glDeleteQueriesEXT), },
   1002   { "glIsQueryEXT", reinterpret_cast<GLES2FunctionPointer>(glIsQueryEXT), },
   1003   { "glBeginQueryEXT", reinterpret_cast<GLES2FunctionPointer>(
   1004       glBeginQueryEXT), },
   1005   { "glEndQueryEXT", reinterpret_cast<GLES2FunctionPointer>(glEndQueryEXT), },
   1006   { "glGetQueryivEXT", reinterpret_cast<GLES2FunctionPointer>(
   1007       glGetQueryivEXT), },
   1008   { "glGetQueryObjectuivEXT", reinterpret_cast<GLES2FunctionPointer>(
   1009       glGetQueryObjectuivEXT), },
   1010   { "glInsertEventMarkerEXT", reinterpret_cast<GLES2FunctionPointer>(
   1011       glInsertEventMarkerEXT), },
   1012   { "glPushGroupMarkerEXT", reinterpret_cast<GLES2FunctionPointer>(
   1013       glPushGroupMarkerEXT), },
   1014   { "glPopGroupMarkerEXT", reinterpret_cast<GLES2FunctionPointer>(
   1015       glPopGroupMarkerEXT), },
   1016   { "glGenVertexArraysOES", reinterpret_cast<GLES2FunctionPointer>(
   1017       glGenVertexArraysOES), },
   1018   { "glDeleteVertexArraysOES", reinterpret_cast<GLES2FunctionPointer>(
   1019       glDeleteVertexArraysOES), },
   1020   { "glIsVertexArrayOES", reinterpret_cast<GLES2FunctionPointer>(
   1021       glIsVertexArrayOES), },
   1022   { "glBindVertexArrayOES", reinterpret_cast<GLES2FunctionPointer>(
   1023       glBindVertexArrayOES), },
   1024   { "glSwapBuffers", reinterpret_cast<GLES2FunctionPointer>(glSwapBuffers), },
   1025   { "glGetMaxValueInBufferCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1026       glGetMaxValueInBufferCHROMIUM), },
   1027   { "glGenSharedIdsCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1028       glGenSharedIdsCHROMIUM), },
   1029   { "glDeleteSharedIdsCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1030       glDeleteSharedIdsCHROMIUM), },
   1031   { "glRegisterSharedIdsCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1032       glRegisterSharedIdsCHROMIUM), },
   1033   { "glEnableFeatureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1034       glEnableFeatureCHROMIUM), },
   1035   { "glMapBufferCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1036       glMapBufferCHROMIUM), },
   1037   { "glUnmapBufferCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1038       glUnmapBufferCHROMIUM), },
   1039   { "glMapImageCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1040       glMapImageCHROMIUM), },
   1041   { "glUnmapImageCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1042       glUnmapImageCHROMIUM), },
   1043   { "glMapBufferSubDataCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1044       glMapBufferSubDataCHROMIUM), },
   1045   { "glUnmapBufferSubDataCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1046       glUnmapBufferSubDataCHROMIUM), },
   1047   { "glMapTexSubImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1048       glMapTexSubImage2DCHROMIUM), },
   1049   { "glUnmapTexSubImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1050       glUnmapTexSubImage2DCHROMIUM), },
   1051   { "glResizeCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1052       glResizeCHROMIUM), },
   1053   { "glGetRequestableExtensionsCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(glGetRequestableExtensionsCHROMIUM), },  // NOLINT
   1054   { "glRequestExtensionCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1055       glRequestExtensionCHROMIUM), },
   1056   { "glRateLimitOffscreenContextCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(glRateLimitOffscreenContextCHROMIUM), },  // NOLINT
   1057   { "glGetMultipleIntegervCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1058       glGetMultipleIntegervCHROMIUM), },
   1059   { "glGetProgramInfoCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1060       glGetProgramInfoCHROMIUM), },
   1061   { "glCreateStreamTextureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1062       glCreateStreamTextureCHROMIUM), },
   1063   { "glDestroyStreamTextureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1064       glDestroyStreamTextureCHROMIUM), },
   1065   { "glCreateImageCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1066       glCreateImageCHROMIUM), },
   1067   { "glDestroyImageCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1068       glDestroyImageCHROMIUM), },
   1069   { "glGetImageParameterivCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1070       glGetImageParameterivCHROMIUM), },
   1071   { "glGetTranslatedShaderSourceANGLE", reinterpret_cast<GLES2FunctionPointer>(
   1072       glGetTranslatedShaderSourceANGLE), },
   1073   { "glPostSubBufferCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1074       glPostSubBufferCHROMIUM), },
   1075   { "glTexImageIOSurface2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1076       glTexImageIOSurface2DCHROMIUM), },
   1077   { "glCopyTextureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1078       glCopyTextureCHROMIUM), },
   1079   { "glDrawArraysInstancedANGLE", reinterpret_cast<GLES2FunctionPointer>(
   1080       glDrawArraysInstancedANGLE), },
   1081   { "glDrawElementsInstancedANGLE", reinterpret_cast<GLES2FunctionPointer>(
   1082       glDrawElementsInstancedANGLE), },
   1083   { "glVertexAttribDivisorANGLE", reinterpret_cast<GLES2FunctionPointer>(
   1084       glVertexAttribDivisorANGLE), },
   1085   { "glGenMailboxCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1086       glGenMailboxCHROMIUM), },
   1087   { "glProduceTextureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1088       glProduceTextureCHROMIUM), },
   1089   { "glConsumeTextureCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1090       glConsumeTextureCHROMIUM), },
   1091   { "glBindUniformLocationCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1092       glBindUniformLocationCHROMIUM), },
   1093   { "glBindTexImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1094       glBindTexImage2DCHROMIUM), },
   1095   { "glReleaseTexImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1096       glReleaseTexImage2DCHROMIUM), },
   1097   { "glTraceBeginCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1098       glTraceBeginCHROMIUM), },
   1099   { "glTraceEndCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1100       glTraceEndCHROMIUM), },
   1101   { "glAsyncTexSubImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1102       glAsyncTexSubImage2DCHROMIUM), },
   1103   { "glAsyncTexImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1104       glAsyncTexImage2DCHROMIUM), },
   1105   { "glWaitAsyncTexImage2DCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1106       glWaitAsyncTexImage2DCHROMIUM), },
   1107   { "glDiscardFramebufferEXT", reinterpret_cast<GLES2FunctionPointer>(
   1108       glDiscardFramebufferEXT), },
   1109   { "glLoseContextCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1110       glLoseContextCHROMIUM), },
   1111   { "glInsertSyncPointCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1112       glInsertSyncPointCHROMIUM), },
   1113   { "glWaitSyncPointCHROMIUM", reinterpret_cast<GLES2FunctionPointer>(
   1114       glWaitSyncPointCHROMIUM), },
   1115   { "glDrawBuffersEXT", reinterpret_cast<GLES2FunctionPointer>(
   1116       glDrawBuffersEXT), },
   1117   { NULL, NULL, },
   1118 };
   1119 
   1120 }  // namespace gles2
   1121 #endif  // GPU_COMMAND_BUFFER_CLIENT_GLES2_C_LIB_AUTOGEN_H_
   1122 
   1123