Home | History | Annotate | Download | only in gles_android_wrapper
      1 /*
      2 * Copyright (C) 2011 The Android Open Source Project
      3 *
      4 * Licensed under the Apache License, Version 2.0 (the "License");
      5 * you may not use this file except in compliance with the License.
      6 * You may obtain a copy of the License at
      7 *
      8 * http://www.apache.org/licenses/LICENSE-2.0
      9 *
     10 * Unless required by applicable law or agreed to in writing, software
     11 * distributed under the License is distributed on an "AS IS" BASIS,
     12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13 * See the License for the specific language governing permissions and
     14 * limitations under the License.
     15 */
     16 #include <stdio.h>
     17 #include <stdlib.h>
     18 #include <string.h>
     19 #include "gles_dispatch.h"
     20 #include "gles_ftable.h"
     21 #include <EGL/egl.h>
     22 #include <cutils/log.h>
     23 
     24 static struct gles_dispatch *s_dispatch = NULL;
     25 
     26 void init_gles(void *gles_android)
     27 {
     28     s_dispatch = create_gles_dispatch(gles_android);
     29     if (s_dispatch == NULL) {
     30         ALOGE("failed to create gles dispatch\n");
     31     }
     32 }
     33 
     34 static struct gles_dispatch *getDispatch()
     35 {
     36     if (!s_dispatch) {
     37         fprintf(stderr,"FATAL ERROR: GLES has not been initialized\n");
     38         exit(-1);
     39     }
     40 
     41     return s_dispatch;
     42 }
     43 
     44 __eglMustCastToProperFunctionPointerType gles_getProcAddress(const char *procname)
     45 {
     46      for (int i=0; i<gles_num_funcs; i++) {
     47          if (!strcmp(gles_funcs_by_name[i].name, procname)) {
     48              return (__eglMustCastToProperFunctionPointerType)gles_funcs_by_name[i].proc;
     49          }
     50      }
     51 
     52      return NULL;
     53 }
     54 
     55 ///////////// Path-through functions ///////////////
     56 void glAlphaFunc(GLenum func, GLclampf ref)
     57 {
     58      getDispatch()->glAlphaFunc(func, ref);
     59 }
     60 
     61 void glClearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
     62 {
     63      getDispatch()->glClearColor(red, green, blue, alpha);
     64 }
     65 
     66 void glClearDepthf(GLclampf depth)
     67 {
     68      getDispatch()->glClearDepthf(depth);
     69 }
     70 
     71 void glClipPlanef(GLenum plane, const GLfloat *equation)
     72 {
     73      getDispatch()->glClipPlanef(plane, equation);
     74 }
     75 
     76 void glColor4f(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha)
     77 {
     78      getDispatch()->glColor4f(red, green, blue, alpha);
     79 }
     80 
     81 void glDepthRangef(GLclampf zNear, GLclampf zFar)
     82 {
     83      getDispatch()->glDepthRangef(zNear, zFar);
     84 }
     85 
     86 void glFogf(GLenum pname, GLfloat param)
     87 {
     88      getDispatch()->glFogf(pname, param);
     89 }
     90 
     91 void glFogfv(GLenum pname, const GLfloat *params)
     92 {
     93      getDispatch()->glFogfv(pname, params);
     94 }
     95 
     96 void glFrustumf(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
     97 {
     98      getDispatch()->glFrustumf(left, right, bottom, top, zNear, zFar);
     99 }
    100 
    101 void glGetClipPlanef(GLenum pname, GLfloat eqn[4])
    102 {
    103      getDispatch()->glGetClipPlanef(pname, eqn);
    104 }
    105 
    106 void glGetFloatv(GLenum pname, GLfloat *params)
    107 {
    108      getDispatch()->glGetFloatv(pname, params);
    109 }
    110 
    111 void glGetLightfv(GLenum light, GLenum pname, GLfloat *params)
    112 {
    113      getDispatch()->glGetLightfv(light, pname, params);
    114 }
    115 
    116 void glGetMaterialfv(GLenum face, GLenum pname, GLfloat *params)
    117 {
    118      getDispatch()->glGetMaterialfv(face, pname, params);
    119 }
    120 
    121 void glGetTexEnvfv(GLenum env, GLenum pname, GLfloat *params)
    122 {
    123      getDispatch()->glGetTexEnvfv(env, pname, params);
    124 }
    125 
    126 void glGetTexParameterfv(GLenum target, GLenum pname, GLfloat *params)
    127 {
    128      getDispatch()->glGetTexParameterfv(target, pname, params);
    129 }
    130 
    131 void glLightModelf(GLenum pname, GLfloat param)
    132 {
    133      getDispatch()->glLightModelf(pname, param);
    134 }
    135 
    136 void glLightModelfv(GLenum pname, const GLfloat *params)
    137 {
    138      getDispatch()->glLightModelfv(pname, params);
    139 }
    140 
    141 void glLightf(GLenum light, GLenum pname, GLfloat param)
    142 {
    143      getDispatch()->glLightf(light, pname, param);
    144 }
    145 
    146 void glLightfv(GLenum light, GLenum pname, const GLfloat *params)
    147 {
    148      getDispatch()->glLightfv(light, pname, params);
    149 }
    150 
    151 void glLineWidth(GLfloat width)
    152 {
    153      getDispatch()->glLineWidth(width);
    154 }
    155 
    156 void glLoadMatrixf(const GLfloat *m)
    157 {
    158      getDispatch()->glLoadMatrixf(m);
    159 }
    160 
    161 void glMaterialf(GLenum face, GLenum pname, GLfloat param)
    162 {
    163      getDispatch()->glMaterialf(face, pname, param);
    164 }
    165 
    166 void glMaterialfv(GLenum face, GLenum pname, const GLfloat *params)
    167 {
    168      getDispatch()->glMaterialfv(face, pname, params);
    169 }
    170 
    171 void glMultMatrixf(const GLfloat *m)
    172 {
    173      getDispatch()->glMultMatrixf(m);
    174 }
    175 
    176 void glMultiTexCoord4f(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q)
    177 {
    178      getDispatch()->glMultiTexCoord4f(target, s, t, r, q);
    179 }
    180 
    181 void glNormal3f(GLfloat nx, GLfloat ny, GLfloat nz)
    182 {
    183      getDispatch()->glNormal3f(nx, ny, nz);
    184 }
    185 
    186 void glOrthof(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
    187 {
    188      getDispatch()->glOrthof(left, right, bottom, top, zNear, zFar);
    189 }
    190 
    191 void glPointParameterf(GLenum pname, GLfloat param)
    192 {
    193      getDispatch()->glPointParameterf(pname, param);
    194 }
    195 
    196 void glPointParameterfv(GLenum pname, const GLfloat *params)
    197 {
    198      getDispatch()->glPointParameterfv(pname, params);
    199 }
    200 
    201 void glPointSize(GLfloat size)
    202 {
    203      getDispatch()->glPointSize(size);
    204 }
    205 
    206 void glPolygonOffset(GLfloat factor, GLfloat units)
    207 {
    208      getDispatch()->glPolygonOffset(factor, units);
    209 }
    210 
    211 void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
    212 {
    213      getDispatch()->glRotatef(angle, x, y, z);
    214 }
    215 
    216 void glScalef(GLfloat x, GLfloat y, GLfloat z)
    217 {
    218      getDispatch()->glScalef(x, y, z);
    219 }
    220 
    221 void glTexEnvf(GLenum target, GLenum pname, GLfloat param)
    222 {
    223      getDispatch()->glTexEnvf(target, pname, param);
    224 }
    225 
    226 void glTexEnvfv(GLenum target, GLenum pname, const GLfloat *params)
    227 {
    228      getDispatch()->glTexEnvfv(target, pname, params);
    229 }
    230 
    231 void glTexParameterf(GLenum target, GLenum pname, GLfloat param)
    232 {
    233      getDispatch()->glTexParameterf(target, pname, param);
    234 }
    235 
    236 void glTexParameterfv(GLenum target, GLenum pname, const GLfloat *params)
    237 {
    238      getDispatch()->glTexParameterfv(target, pname, params);
    239 }
    240 
    241 void glTranslatef(GLfloat x, GLfloat y, GLfloat z)
    242 {
    243      getDispatch()->glTranslatef(x, y, z);
    244 }
    245 
    246 void glActiveTexture(GLenum texture)
    247 {
    248      getDispatch()->glActiveTexture(texture);
    249 }
    250 
    251 void glAlphaFuncx(GLenum func, GLclampx ref)
    252 {
    253      getDispatch()->glAlphaFuncx(func, ref);
    254 }
    255 
    256 void glBindBuffer(GLenum target, GLuint buffer)
    257 {
    258      getDispatch()->glBindBuffer(target, buffer);
    259 }
    260 
    261 void glBindTexture(GLenum target, GLuint texture)
    262 {
    263      getDispatch()->glBindTexture(target, texture);
    264 }
    265 
    266 void glBlendFunc(GLenum sfactor, GLenum dfactor)
    267 {
    268      getDispatch()->glBlendFunc(sfactor, dfactor);
    269 }
    270 
    271 void glBufferData(GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage)
    272 {
    273      getDispatch()->glBufferData(target, size, data, usage);
    274 }
    275 
    276 void glBufferSubData(GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data)
    277 {
    278      getDispatch()->glBufferSubData(target, offset, size, data);
    279 }
    280 
    281 void glClear(GLbitfield mask)
    282 {
    283      getDispatch()->glClear(mask);
    284 }
    285 
    286 void glClearColorx(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
    287 {
    288      getDispatch()->glClearColorx(red, green, blue, alpha);
    289 }
    290 
    291 void glClearDepthx(GLclampx depth)
    292 {
    293      getDispatch()->glClearDepthx(depth);
    294 }
    295 
    296 void glClearStencil(GLint s)
    297 {
    298      getDispatch()->glClearStencil(s);
    299 }
    300 
    301 void glClientActiveTexture(GLenum texture)
    302 {
    303      getDispatch()->glClientActiveTexture(texture);
    304 }
    305 
    306 void glClipPlanex(GLenum plane, const GLfixed *equation)
    307 {
    308      getDispatch()->glClipPlanex(plane, equation);
    309 }
    310 
    311 void glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
    312 {
    313      getDispatch()->glColor4ub(red, green, blue, alpha);
    314 }
    315 
    316 void glColor4x(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
    317 {
    318      getDispatch()->glColor4x(red, green, blue, alpha);
    319 }
    320 
    321 void glColorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha)
    322 {
    323      getDispatch()->glColorMask(red, green, blue, alpha);
    324 }
    325 
    326 void glColorPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
    327 {
    328      getDispatch()->glColorPointer(size, type, stride, pointer);
    329 }
    330 
    331 void glCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data)
    332 {
    333      getDispatch()->glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data);
    334 }
    335 
    336 void glCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data)
    337 {
    338      getDispatch()->glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data);
    339 }
    340 
    341 void glCopyTexImage2D(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
    342 {
    343      getDispatch()->glCopyTexImage2D(target, level, internalformat, x, y, width, height, border);
    344 }
    345 
    346 void glCopyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
    347 {
    348      getDispatch()->glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height);
    349 }
    350 
    351 void glCullFace(GLenum mode)
    352 {
    353      getDispatch()->glCullFace(mode);
    354 }
    355 
    356 void glDeleteBuffers(GLsizei n, const GLuint *buffers)
    357 {
    358      getDispatch()->glDeleteBuffers(n, buffers);
    359 }
    360 
    361 void glDeleteTextures(GLsizei n, const GLuint *textures)
    362 {
    363      getDispatch()->glDeleteTextures(n, textures);
    364 }
    365 
    366 void glDepthFunc(GLenum func)
    367 {
    368      getDispatch()->glDepthFunc(func);
    369 }
    370 
    371 void glDepthMask(GLboolean flag)
    372 {
    373      getDispatch()->glDepthMask(flag);
    374 }
    375 
    376 void glDepthRangex(GLclampx zNear, GLclampx zFar)
    377 {
    378      getDispatch()->glDepthRangex(zNear, zFar);
    379 }
    380 
    381 void glDisable(GLenum cap)
    382 {
    383      getDispatch()->glDisable(cap);
    384 }
    385 
    386 void glDisableClientState(GLenum array)
    387 {
    388      getDispatch()->glDisableClientState(array);
    389 }
    390 
    391 void glDrawArrays(GLenum mode, GLint first, GLsizei count)
    392 {
    393      getDispatch()->glDrawArrays(mode, first, count);
    394 }
    395 
    396 void glDrawElements(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices)
    397 {
    398      getDispatch()->glDrawElements(mode, count, type, indices);
    399 }
    400 
    401 void glEnable(GLenum cap)
    402 {
    403      getDispatch()->glEnable(cap);
    404 }
    405 
    406 void glEnableClientState(GLenum array)
    407 {
    408      getDispatch()->glEnableClientState(array);
    409 }
    410 
    411 void glFinish()
    412 {
    413      getDispatch()->glFinish();
    414 }
    415 
    416 void glFlush()
    417 {
    418      getDispatch()->glFlush();
    419 }
    420 
    421 void glFogx(GLenum pname, GLfixed param)
    422 {
    423      getDispatch()->glFogx(pname, param);
    424 }
    425 
    426 void glFogxv(GLenum pname, const GLfixed *params)
    427 {
    428      getDispatch()->glFogxv(pname, params);
    429 }
    430 
    431 void glFrontFace(GLenum mode)
    432 {
    433      getDispatch()->glFrontFace(mode);
    434 }
    435 
    436 void glFrustumx(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
    437 {
    438      getDispatch()->glFrustumx(left, right, bottom, top, zNear, zFar);
    439 }
    440 
    441 void glGetBooleanv(GLenum pname, GLboolean *params)
    442 {
    443      getDispatch()->glGetBooleanv(pname, params);
    444 }
    445 
    446 void glGetBufferParameteriv(GLenum target, GLenum pname, GLint *params)
    447 {
    448      getDispatch()->glGetBufferParameteriv(target, pname, params);
    449 }
    450 
    451 void glGetClipPlanex(GLenum pname, GLfixed eqn[4])
    452 {
    453      getDispatch()->glGetClipPlanex(pname, eqn);
    454 }
    455 
    456 void glGenBuffers(GLsizei n, GLuint *buffers)
    457 {
    458      getDispatch()->glGenBuffers(n, buffers);
    459 }
    460 
    461 void glGenTextures(GLsizei n, GLuint *textures)
    462 {
    463      getDispatch()->glGenTextures(n, textures);
    464 }
    465 
    466 GLenum glGetError()
    467 {
    468      return getDispatch()->glGetError();
    469 }
    470 
    471 void glGetFixedv(GLenum pname, GLfixed *params)
    472 {
    473      getDispatch()->glGetFixedv(pname, params);
    474 }
    475 
    476 void glGetIntegerv(GLenum pname, GLint *params)
    477 {
    478      getDispatch()->glGetIntegerv(pname, params);
    479 }
    480 
    481 void glGetLightxv(GLenum light, GLenum pname, GLfixed *params)
    482 {
    483      getDispatch()->glGetLightxv(light, pname, params);
    484 }
    485 
    486 void glGetMaterialxv(GLenum face, GLenum pname, GLfixed *params)
    487 {
    488      getDispatch()->glGetMaterialxv(face, pname, params);
    489 }
    490 
    491 void glGetPointerv(GLenum pname, GLvoid **params)
    492 {
    493      getDispatch()->glGetPointerv(pname, params);
    494 }
    495 
    496 const GLubyte* glGetString(GLenum name)
    497 {
    498      return getDispatch()->glGetString(name);
    499 }
    500 
    501 void glGetTexEnviv(GLenum env, GLenum pname, GLint *params)
    502 {
    503      getDispatch()->glGetTexEnviv(env, pname, params);
    504 }
    505 
    506 void glGetTexEnvxv(GLenum env, GLenum pname, GLfixed *params)
    507 {
    508      getDispatch()->glGetTexEnvxv(env, pname, params);
    509 }
    510 
    511 void glGetTexParameteriv(GLenum target, GLenum pname, GLint *params)
    512 {
    513      getDispatch()->glGetTexParameteriv(target, pname, params);
    514 }
    515 
    516 void glGetTexParameterxv(GLenum target, GLenum pname, GLfixed *params)
    517 {
    518      getDispatch()->glGetTexParameterxv(target, pname, params);
    519 }
    520 
    521 void glHint(GLenum target, GLenum mode)
    522 {
    523      getDispatch()->glHint(target, mode);
    524 }
    525 
    526 GLboolean glIsBuffer(GLuint buffer)
    527 {
    528      return getDispatch()->glIsBuffer(buffer);
    529 }
    530 
    531 GLboolean glIsEnabled(GLenum cap)
    532 {
    533      return getDispatch()->glIsEnabled(cap);
    534 }
    535 
    536 GLboolean glIsTexture(GLuint texture)
    537 {
    538      return getDispatch()->glIsTexture(texture);
    539 }
    540 
    541 void glLightModelx(GLenum pname, GLfixed param)
    542 {
    543      getDispatch()->glLightModelx(pname, param);
    544 }
    545 
    546 void glLightModelxv(GLenum pname, const GLfixed *params)
    547 {
    548      getDispatch()->glLightModelxv(pname, params);
    549 }
    550 
    551 void glLightx(GLenum light, GLenum pname, GLfixed param)
    552 {
    553      getDispatch()->glLightx(light, pname, param);
    554 }
    555 
    556 void glLightxv(GLenum light, GLenum pname, const GLfixed *params)
    557 {
    558      getDispatch()->glLightxv(light, pname, params);
    559 }
    560 
    561 void glLineWidthx(GLfixed width)
    562 {
    563      getDispatch()->glLineWidthx(width);
    564 }
    565 
    566 void glLoadIdentity()
    567 {
    568      getDispatch()->glLoadIdentity();
    569 }
    570 
    571 void glLoadMatrixx(const GLfixed *m)
    572 {
    573      getDispatch()->glLoadMatrixx(m);
    574 }
    575 
    576 void glLogicOp(GLenum opcode)
    577 {
    578      getDispatch()->glLogicOp(opcode);
    579 }
    580 
    581 void glMaterialx(GLenum face, GLenum pname, GLfixed param)
    582 {
    583      getDispatch()->glMaterialx(face, pname, param);
    584 }
    585 
    586 void glMaterialxv(GLenum face, GLenum pname, const GLfixed *params)
    587 {
    588      getDispatch()->glMaterialxv(face, pname, params);
    589 }
    590 
    591 void glMatrixMode(GLenum mode)
    592 {
    593      getDispatch()->glMatrixMode(mode);
    594 }
    595 
    596 void glMultMatrixx(const GLfixed *m)
    597 {
    598      getDispatch()->glMultMatrixx(m);
    599 }
    600 
    601 void glMultiTexCoord4x(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
    602 {
    603      getDispatch()->glMultiTexCoord4x(target, s, t, r, q);
    604 }
    605 
    606 void glNormal3x(GLfixed nx, GLfixed ny, GLfixed nz)
    607 {
    608      getDispatch()->glNormal3x(nx, ny, nz);
    609 }
    610 
    611 void glNormalPointer(GLenum type, GLsizei stride, const GLvoid *pointer)
    612 {
    613      getDispatch()->glNormalPointer(type, stride, pointer);
    614 }
    615 
    616 void glOrthox(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
    617 {
    618      getDispatch()->glOrthox(left, right, bottom, top, zNear, zFar);
    619 }
    620 
    621 void glPixelStorei(GLenum pname, GLint param)
    622 {
    623      getDispatch()->glPixelStorei(pname, param);
    624 }
    625 
    626 void glPointParameterx(GLenum pname, GLfixed param)
    627 {
    628      getDispatch()->glPointParameterx(pname, param);
    629 }
    630 
    631 void glPointParameterxv(GLenum pname, const GLfixed *params)
    632 {
    633      getDispatch()->glPointParameterxv(pname, params);
    634 }
    635 
    636 void glPointSizex(GLfixed size)
    637 {
    638      getDispatch()->glPointSizex(size);
    639 }
    640 
    641 void glPolygonOffsetx(GLfixed factor, GLfixed units)
    642 {
    643      getDispatch()->glPolygonOffsetx(factor, units);
    644 }
    645 
    646 void glPopMatrix()
    647 {
    648      getDispatch()->glPopMatrix();
    649 }
    650 
    651 void glPushMatrix()
    652 {
    653      getDispatch()->glPushMatrix();
    654 }
    655 
    656 void glReadPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels)
    657 {
    658      getDispatch()->glReadPixels(x, y, width, height, format, type, pixels);
    659 }
    660 
    661 void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
    662 {
    663      getDispatch()->glRotatex(angle, x, y, z);
    664 }
    665 
    666 void glSampleCoverage(GLclampf value, GLboolean invert)
    667 {
    668      getDispatch()->glSampleCoverage(value, invert);
    669 }
    670 
    671 void glSampleCoveragex(GLclampx value, GLboolean invert)
    672 {
    673      getDispatch()->glSampleCoveragex(value, invert);
    674 }
    675 
    676 void glScalex(GLfixed x, GLfixed y, GLfixed z)
    677 {
    678      getDispatch()->glScalex(x, y, z);
    679 }
    680 
    681 void glScissor(GLint x, GLint y, GLsizei width, GLsizei height)
    682 {
    683      getDispatch()->glScissor(x, y, width, height);
    684 }
    685 
    686 void glShadeModel(GLenum mode)
    687 {
    688      getDispatch()->glShadeModel(mode);
    689 }
    690 
    691 void glStencilFunc(GLenum func, GLint ref, GLuint mask)
    692 {
    693      getDispatch()->glStencilFunc(func, ref, mask);
    694 }
    695 
    696 void glStencilMask(GLuint mask)
    697 {
    698      getDispatch()->glStencilMask(mask);
    699 }
    700 
    701 void glStencilOp(GLenum fail, GLenum zfail, GLenum zpass)
    702 {
    703      getDispatch()->glStencilOp(fail, zfail, zpass);
    704 }
    705 
    706 void glTexCoordPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
    707 {
    708      getDispatch()->glTexCoordPointer(size, type, stride, pointer);
    709 }
    710 
    711 void glTexEnvi(GLenum target, GLenum pname, GLint param)
    712 {
    713      getDispatch()->glTexEnvi(target, pname, param);
    714 }
    715 
    716 void glTexEnvx(GLenum target, GLenum pname, GLfixed param)
    717 {
    718      getDispatch()->glTexEnvx(target, pname, param);
    719 }
    720 
    721 void glTexEnviv(GLenum target, GLenum pname, const GLint *params)
    722 {
    723      getDispatch()->glTexEnviv(target, pname, params);
    724 }
    725 
    726 void glTexEnvxv(GLenum target, GLenum pname, const GLfixed *params)
    727 {
    728      getDispatch()->glTexEnvxv(target, pname, params);
    729 }
    730 
    731 void glTexImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
    732 {
    733      getDispatch()->glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels);
    734 }
    735 
    736 void glTexParameteri(GLenum target, GLenum pname, GLint param)
    737 {
    738      getDispatch()->glTexParameteri(target, pname, param);
    739 }
    740 
    741 void glTexParameterx(GLenum target, GLenum pname, GLfixed param)
    742 {
    743      getDispatch()->glTexParameterx(target, pname, param);
    744 }
    745 
    746 void glTexParameteriv(GLenum target, GLenum pname, const GLint *params)
    747 {
    748      getDispatch()->glTexParameteriv(target, pname, params);
    749 }
    750 
    751 void glTexParameterxv(GLenum target, GLenum pname, const GLfixed *params)
    752 {
    753      getDispatch()->glTexParameterxv(target, pname, params);
    754 }
    755 
    756 void glTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
    757 {
    758      getDispatch()->glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels);
    759 }
    760 
    761 void glTranslatex(GLfixed x, GLfixed y, GLfixed z)
    762 {
    763      getDispatch()->glTranslatex(x, y, z);
    764 }
    765 
    766 void glVertexPointer(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
    767 {
    768      getDispatch()->glVertexPointer(size, type, stride, pointer);
    769 }
    770 
    771 void glViewport(GLint x, GLint y, GLsizei width, GLsizei height)
    772 {
    773      getDispatch()->glViewport(x, y, width, height);
    774 }
    775 
    776 void glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)
    777 {
    778      getDispatch()->glPointSizePointerOES(type, stride, pointer);
    779 }
    780 
    781 void glBlendEquationSeparateOES(GLenum modeRGB, GLenum modeAlpha)
    782 {
    783      getDispatch()->glBlendEquationSeparateOES(modeRGB, modeAlpha);
    784 }
    785 
    786 void glBlendFuncSeparateOES(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
    787 {
    788      getDispatch()->glBlendFuncSeparateOES(srcRGB, dstRGB, srcAlpha, dstAlpha);
    789 }
    790 
    791 void glBlendEquationOES(GLenum mode)
    792 {
    793      getDispatch()->glBlendEquationOES(mode);
    794 }
    795 
    796 void glDrawTexsOES(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height)
    797 {
    798      getDispatch()->glDrawTexsOES(x, y, z, width, height);
    799 }
    800 
    801 void glDrawTexiOES(GLint x, GLint y, GLint z, GLint width, GLint height)
    802 {
    803      getDispatch()->glDrawTexiOES(x, y, z, width, height);
    804 }
    805 
    806 void glDrawTexxOES(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height)
    807 {
    808      getDispatch()->glDrawTexxOES(x, y, z, width, height);
    809 }
    810 
    811 void glDrawTexsvOES(const GLshort *coords)
    812 {
    813      getDispatch()->glDrawTexsvOES(coords);
    814 }
    815 
    816 void glDrawTexivOES(const GLint *coords)
    817 {
    818      getDispatch()->glDrawTexivOES(coords);
    819 }
    820 
    821 void glDrawTexxvOES(const GLfixed *coords)
    822 {
    823      getDispatch()->glDrawTexxvOES(coords);
    824 }
    825 
    826 void glDrawTexfOES(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height)
    827 {
    828      getDispatch()->glDrawTexfOES(x, y, z, width, height);
    829 }
    830 
    831 void glDrawTexfvOES(const GLfloat *coords)
    832 {
    833      getDispatch()->glDrawTexfvOES(coords);
    834 }
    835 
    836 void glEGLImageTargetTexture2DOES(GLenum target, GLeglImageOES image)
    837 {
    838      getDispatch()->glEGLImageTargetTexture2DOES(target, image);
    839 }
    840 
    841 void glEGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image)
    842 {
    843      getDispatch()->glEGLImageTargetRenderbufferStorageOES(target, image);
    844 }
    845 
    846 void glAlphaFuncxOES(GLenum func, GLclampx ref)
    847 {
    848      getDispatch()->glAlphaFuncxOES(func, ref);
    849 }
    850 
    851 void glClearColorxOES(GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha)
    852 {
    853      getDispatch()->glClearColorxOES(red, green, blue, alpha);
    854 }
    855 
    856 void glClearDepthxOES(GLclampx depth)
    857 {
    858      getDispatch()->glClearDepthxOES(depth);
    859 }
    860 
    861 void glClipPlanexOES(GLenum plane, const GLfixed *equation)
    862 {
    863      getDispatch()->glClipPlanexOES(plane, equation);
    864 }
    865 
    866 void glColor4xOES(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha)
    867 {
    868      getDispatch()->glColor4xOES(red, green, blue, alpha);
    869 }
    870 
    871 void glDepthRangexOES(GLclampx zNear, GLclampx zFar)
    872 {
    873      getDispatch()->glDepthRangexOES(zNear, zFar);
    874 }
    875 
    876 void glFogxOES(GLenum pname, GLfixed param)
    877 {
    878      getDispatch()->glFogxOES(pname, param);
    879 }
    880 
    881 void glFogxvOES(GLenum pname, const GLfixed *params)
    882 {
    883      getDispatch()->glFogxvOES(pname, params);
    884 }
    885 
    886 void glFrustumxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
    887 {
    888      getDispatch()->glFrustumxOES(left, right, bottom, top, zNear, zFar);
    889 }
    890 
    891 void glGetClipPlanexOES(GLenum pname, GLfixed eqn[4])
    892 {
    893      getDispatch()->glGetClipPlanexOES(pname, eqn);
    894 }
    895 
    896 void glGetFixedvOES(GLenum pname, GLfixed *params)
    897 {
    898      getDispatch()->glGetFixedvOES(pname, params);
    899 }
    900 
    901 void glGetLightxvOES(GLenum light, GLenum pname, GLfixed *params)
    902 {
    903      getDispatch()->glGetLightxvOES(light, pname, params);
    904 }
    905 
    906 void glGetMaterialxvOES(GLenum face, GLenum pname, GLfixed *params)
    907 {
    908      getDispatch()->glGetMaterialxvOES(face, pname, params);
    909 }
    910 
    911 void glGetTexEnvxvOES(GLenum env, GLenum pname, GLfixed *params)
    912 {
    913      getDispatch()->glGetTexEnvxvOES(env, pname, params);
    914 }
    915 
    916 void glGetTexParameterxvOES(GLenum target, GLenum pname, GLfixed *params)
    917 {
    918      getDispatch()->glGetTexParameterxvOES(target, pname, params);
    919 }
    920 
    921 void glLightModelxOES(GLenum pname, GLfixed param)
    922 {
    923      getDispatch()->glLightModelxOES(pname, param);
    924 }
    925 
    926 void glLightModelxvOES(GLenum pname, const GLfixed *params)
    927 {
    928      getDispatch()->glLightModelxvOES(pname, params);
    929 }
    930 
    931 void glLightxOES(GLenum light, GLenum pname, GLfixed param)
    932 {
    933      getDispatch()->glLightxOES(light, pname, param);
    934 }
    935 
    936 void glLightxvOES(GLenum light, GLenum pname, const GLfixed *params)
    937 {
    938      getDispatch()->glLightxvOES(light, pname, params);
    939 }
    940 
    941 void glLineWidthxOES(GLfixed width)
    942 {
    943      getDispatch()->glLineWidthxOES(width);
    944 }
    945 
    946 void glLoadMatrixxOES(const GLfixed *m)
    947 {
    948      getDispatch()->glLoadMatrixxOES(m);
    949 }
    950 
    951 void glMaterialxOES(GLenum face, GLenum pname, GLfixed param)
    952 {
    953      getDispatch()->glMaterialxOES(face, pname, param);
    954 }
    955 
    956 void glMaterialxvOES(GLenum face, GLenum pname, const GLfixed *params)
    957 {
    958      getDispatch()->glMaterialxvOES(face, pname, params);
    959 }
    960 
    961 void glMultMatrixxOES(const GLfixed *m)
    962 {
    963      getDispatch()->glMultMatrixxOES(m);
    964 }
    965 
    966 void glMultiTexCoord4xOES(GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q)
    967 {
    968      getDispatch()->glMultiTexCoord4xOES(target, s, t, r, q);
    969 }
    970 
    971 void glNormal3xOES(GLfixed nx, GLfixed ny, GLfixed nz)
    972 {
    973      getDispatch()->glNormal3xOES(nx, ny, nz);
    974 }
    975 
    976 void glOrthoxOES(GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar)
    977 {
    978      getDispatch()->glOrthoxOES(left, right, bottom, top, zNear, zFar);
    979 }
    980 
    981 void glPointParameterxOES(GLenum pname, GLfixed param)
    982 {
    983      getDispatch()->glPointParameterxOES(pname, param);
    984 }
    985 
    986 void glPointParameterxvOES(GLenum pname, const GLfixed *params)
    987 {
    988      getDispatch()->glPointParameterxvOES(pname, params);
    989 }
    990 
    991 void glPointSizexOES(GLfixed size)
    992 {
    993      getDispatch()->glPointSizexOES(size);
    994 }
    995 
    996 void glPolygonOffsetxOES(GLfixed factor, GLfixed units)
    997 {
    998      getDispatch()->glPolygonOffsetxOES(factor, units);
    999 }
   1000 
   1001 void glRotatexOES(GLfixed angle, GLfixed x, GLfixed y, GLfixed z)
   1002 {
   1003      getDispatch()->glRotatexOES(angle, x, y, z);
   1004 }
   1005 
   1006 void glSampleCoveragexOES(GLclampx value, GLboolean invert)
   1007 {
   1008      getDispatch()->glSampleCoveragexOES(value, invert);
   1009 }
   1010 
   1011 void glScalexOES(GLfixed x, GLfixed y, GLfixed z)
   1012 {
   1013      getDispatch()->glScalexOES(x, y, z);
   1014 }
   1015 
   1016 void glTexEnvxOES(GLenum target, GLenum pname, GLfixed param)
   1017 {
   1018      getDispatch()->glTexEnvxOES(target, pname, param);
   1019 }
   1020 
   1021 void glTexEnvxvOES(GLenum target, GLenum pname, const GLfixed *params)
   1022 {
   1023      getDispatch()->glTexEnvxvOES(target, pname, params);
   1024 }
   1025 
   1026 void glTexParameterxOES(GLenum target, GLenum pname, GLfixed param)
   1027 {
   1028      getDispatch()->glTexParameterxOES(target, pname, param);
   1029 }
   1030 
   1031 void glTexParameterxvOES(GLenum target, GLenum pname, const GLfixed *params)
   1032 {
   1033      getDispatch()->glTexParameterxvOES(target, pname, params);
   1034 }
   1035 
   1036 void glTranslatexOES(GLfixed x, GLfixed y, GLfixed z)
   1037 {
   1038      getDispatch()->glTranslatexOES(x, y, z);
   1039 }
   1040 
   1041 GLboolean glIsRenderbufferOES(GLuint renderbuffer)
   1042 {
   1043      return getDispatch()->glIsRenderbufferOES(renderbuffer);
   1044 }
   1045 
   1046 void glBindRenderbufferOES(GLenum target, GLuint renderbuffer)
   1047 {
   1048      getDispatch()->glBindRenderbufferOES(target, renderbuffer);
   1049 }
   1050 
   1051 void glDeleteRenderbuffersOES(GLsizei n, const GLuint *renderbuffers)
   1052 {
   1053      getDispatch()->glDeleteRenderbuffersOES(n, renderbuffers);
   1054 }
   1055 
   1056 void glGenRenderbuffersOES(GLsizei n, GLuint *renderbuffers)
   1057 {
   1058      getDispatch()->glGenRenderbuffersOES(n, renderbuffers);
   1059 }
   1060 
   1061 void glRenderbufferStorageOES(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
   1062 {
   1063      getDispatch()->glRenderbufferStorageOES(target, internalformat, width, height);
   1064 }
   1065 
   1066 void glGetRenderbufferParameterivOES(GLenum target, GLenum pname, GLint *params)
   1067 {
   1068      getDispatch()->glGetRenderbufferParameterivOES(target, pname, params);
   1069 }
   1070 
   1071 GLboolean glIsFramebufferOES(GLuint framebuffer)
   1072 {
   1073      return getDispatch()->glIsFramebufferOES(framebuffer);
   1074 }
   1075 
   1076 void glBindFramebufferOES(GLenum target, GLuint framebuffer)
   1077 {
   1078      getDispatch()->glBindFramebufferOES(target, framebuffer);
   1079 }
   1080 
   1081 void glDeleteFramebuffersOES(GLsizei n, const GLuint *framebuffers)
   1082 {
   1083      getDispatch()->glDeleteFramebuffersOES(n, framebuffers);
   1084 }
   1085 
   1086 void glGenFramebuffersOES(GLsizei n, GLuint *framebuffers)
   1087 {
   1088      getDispatch()->glGenFramebuffersOES(n, framebuffers);
   1089 }
   1090 
   1091 GLenum glCheckFramebufferStatusOES(GLenum target)
   1092 {
   1093      return getDispatch()->glCheckFramebufferStatusOES(target);
   1094 }
   1095 
   1096 void glFramebufferRenderbufferOES(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
   1097 {
   1098      getDispatch()->glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
   1099 }
   1100 
   1101 void glFramebufferTexture2DOES(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
   1102 {
   1103      getDispatch()->glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
   1104 }
   1105 
   1106 void glGetFramebufferAttachmentParameterivOES(GLenum target, GLenum attachment, GLenum pname, GLint *params)
   1107 {
   1108      getDispatch()->glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
   1109 }
   1110 
   1111 void glGenerateMipmapOES(GLenum target)
   1112 {
   1113      getDispatch()->glGenerateMipmapOES(target);
   1114 }
   1115 
   1116 void* glMapBufferOES(GLenum target, GLenum access)
   1117 {
   1118      return getDispatch()->glMapBufferOES(target, access);
   1119 }
   1120 
   1121 GLboolean glUnmapBufferOES(GLenum target)
   1122 {
   1123      return getDispatch()->glUnmapBufferOES(target);
   1124 }
   1125 
   1126 void glGetBufferPointervOES(GLenum target, GLenum pname, GLvoid **ptr)
   1127 {
   1128      getDispatch()->glGetBufferPointervOES(target, pname, ptr);
   1129 }
   1130 
   1131 void glCurrentPaletteMatrixOES(GLuint matrixpaletteindex)
   1132 {
   1133      getDispatch()->glCurrentPaletteMatrixOES(matrixpaletteindex);
   1134 }
   1135 
   1136 void glLoadPaletteFromModelViewMatrixOES()
   1137 {
   1138      getDispatch()->glLoadPaletteFromModelViewMatrixOES();
   1139 }
   1140 
   1141 void glMatrixIndexPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
   1142 {
   1143      getDispatch()->glMatrixIndexPointerOES(size, type, stride, pointer);
   1144 }
   1145 
   1146 void glWeightPointerOES(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer)
   1147 {
   1148      getDispatch()->glWeightPointerOES(size, type, stride, pointer);
   1149 }
   1150 
   1151 GLbitfield glQueryMatrixxOES(GLfixed mantissa[16], GLint exponent[16])
   1152 {
   1153      return getDispatch()->glQueryMatrixxOES(mantissa, exponent);
   1154 }
   1155 
   1156 void glDepthRangefOES(GLclampf zNear, GLclampf zFar)
   1157 {
   1158      getDispatch()->glDepthRangefOES(zNear, zFar);
   1159 }
   1160 
   1161 void glFrustumfOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
   1162 {
   1163      getDispatch()->glFrustumfOES(left, right, bottom, top, zNear, zFar);
   1164 }
   1165 
   1166 void glOrthofOES(GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar)
   1167 {
   1168      getDispatch()->glOrthofOES(left, right, bottom, top, zNear, zFar);
   1169 }
   1170 
   1171 void glClipPlanefOES(GLenum plane, const GLfloat *equation)
   1172 {
   1173      getDispatch()->glClipPlanefOES(plane, equation);
   1174 }
   1175 
   1176 void glGetClipPlanefOES(GLenum pname, GLfloat eqn[4])
   1177 {
   1178      getDispatch()->glGetClipPlanefOES(pname, eqn);
   1179 }
   1180 
   1181 void glClearDepthfOES(GLclampf depth)
   1182 {
   1183      getDispatch()->glClearDepthfOES(depth);
   1184 }
   1185 
   1186 void glTexGenfOES(GLenum coord, GLenum pname, GLfloat param)
   1187 {
   1188      getDispatch()->glTexGenfOES(coord, pname, param);
   1189 }
   1190 
   1191 void glTexGenfvOES(GLenum coord, GLenum pname, const GLfloat *params)
   1192 {
   1193      getDispatch()->glTexGenfvOES(coord, pname, params);
   1194 }
   1195 
   1196 void glTexGeniOES(GLenum coord, GLenum pname, GLint param)
   1197 {
   1198      getDispatch()->glTexGeniOES(coord, pname, param);
   1199 }
   1200 
   1201 void glTexGenivOES(GLenum coord, GLenum pname, const GLint *params)
   1202 {
   1203      getDispatch()->glTexGenivOES(coord, pname, params);
   1204 }
   1205 
   1206 void glTexGenxOES(GLenum coord, GLenum pname, GLfixed param)
   1207 {
   1208      getDispatch()->glTexGenxOES(coord, pname, param);
   1209 }
   1210 
   1211 void glTexGenxvOES(GLenum coord, GLenum pname, const GLfixed *params)
   1212 {
   1213      getDispatch()->glTexGenxvOES(coord, pname, params);
   1214 }
   1215 
   1216 void glGetTexGenfvOES(GLenum coord, GLenum pname, GLfloat *params)
   1217 {
   1218      getDispatch()->glGetTexGenfvOES(coord, pname, params);
   1219 }
   1220 
   1221 void glGetTexGenivOES(GLenum coord, GLenum pname, GLint *params)
   1222 {
   1223      getDispatch()->glGetTexGenivOES(coord, pname, params);
   1224 }
   1225 
   1226 void glGetTexGenxvOES(GLenum coord, GLenum pname, GLfixed *params)
   1227 {
   1228      getDispatch()->glGetTexGenxvOES(coord, pname, params);
   1229 }
   1230 
   1231 void glBindVertexArrayOES(GLuint array)
   1232 {
   1233      getDispatch()->glBindVertexArrayOES(array);
   1234 }
   1235 
   1236 void glDeleteVertexArraysOES(GLsizei n, const GLuint *arrays)
   1237 {
   1238      getDispatch()->glDeleteVertexArraysOES(n, arrays);
   1239 }
   1240 
   1241 void glGenVertexArraysOES(GLsizei n, GLuint *arrays)
   1242 {
   1243      getDispatch()->glGenVertexArraysOES(n, arrays);
   1244 }
   1245 
   1246 GLboolean glIsVertexArrayOES(GLuint array)
   1247 {
   1248      return getDispatch()->glIsVertexArrayOES(array);
   1249 }
   1250 
   1251 void glDiscardFramebufferEXT(GLenum target, GLsizei numAttachments, const GLenum *attachments)
   1252 {
   1253      getDispatch()->glDiscardFramebufferEXT(target, numAttachments, attachments);
   1254 }
   1255 
   1256 void glMultiDrawArraysEXT(GLenum mode, GLint *first, GLsizei *count, GLsizei primcount)
   1257 {
   1258      getDispatch()->glMultiDrawArraysEXT(mode, first, count, primcount);
   1259 }
   1260 
   1261 void glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount)
   1262 {
   1263      getDispatch()->glMultiDrawElementsEXT(mode, count, type, indices, primcount);
   1264 }
   1265 
   1266 void glClipPlanefIMG(GLenum p, const GLfloat *eqn)
   1267 {
   1268      getDispatch()->glClipPlanefIMG(p, eqn);
   1269 }
   1270 
   1271 void glClipPlanexIMG(GLenum p, const GLfixed *eqn)
   1272 {
   1273      getDispatch()->glClipPlanexIMG(p, eqn);
   1274 }
   1275 
   1276 void glRenderbufferStorageMultisampleIMG(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height)
   1277 {
   1278      getDispatch()->glRenderbufferStorageMultisampleIMG(target, samples, internalformat, width, height);
   1279 }
   1280 
   1281 void glFramebufferTexture2DMultisampleIMG(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples)
   1282 {
   1283      getDispatch()->glFramebufferTexture2DMultisampleIMG(target, attachment, textarget, texture, level, samples);
   1284 }
   1285 
   1286 void glDeleteFencesNV(GLsizei n, const GLuint *fences)
   1287 {
   1288      getDispatch()->glDeleteFencesNV(n, fences);
   1289 }
   1290 
   1291 void glGenFencesNV(GLsizei n, GLuint *fences)
   1292 {
   1293      getDispatch()->glGenFencesNV(n, fences);
   1294 }
   1295 
   1296 GLboolean glIsFenceNV(GLuint fence)
   1297 {
   1298      return getDispatch()->glIsFenceNV(fence);
   1299 }
   1300 
   1301 GLboolean glTestFenceNV(GLuint fence)
   1302 {
   1303      return getDispatch()->glTestFenceNV(fence);
   1304 }
   1305 
   1306 void glGetFenceivNV(GLuint fence, GLenum pname, GLint *params)
   1307 {
   1308      getDispatch()->glGetFenceivNV(fence, pname, params);
   1309 }
   1310 
   1311 void glFinishFenceNV(GLuint fence)
   1312 {
   1313      getDispatch()->glFinishFenceNV(fence);
   1314 }
   1315 
   1316 void glSetFenceNV(GLuint fence, GLenum condition)
   1317 {
   1318      getDispatch()->glSetFenceNV(fence, condition);
   1319 }
   1320 
   1321 void glGetDriverControlsQCOM(GLint *num, GLsizei size, GLuint *driverControls)
   1322 {
   1323      getDispatch()->glGetDriverControlsQCOM(num, size, driverControls);
   1324 }
   1325 
   1326 void glGetDriverControlStringQCOM(GLuint driverControl, GLsizei bufSize, GLsizei *length, GLchar *driverControlString)
   1327 {
   1328      getDispatch()->glGetDriverControlStringQCOM(driverControl, bufSize, length, driverControlString);
   1329 }
   1330 
   1331 void glEnableDriverControlQCOM(GLuint driverControl)
   1332 {
   1333      getDispatch()->glEnableDriverControlQCOM(driverControl);
   1334 }
   1335 
   1336 void glDisableDriverControlQCOM(GLuint driverControl)
   1337 {
   1338      getDispatch()->glDisableDriverControlQCOM(driverControl);
   1339 }
   1340 
   1341 void glExtGetTexturesQCOM(GLuint *textures, GLint maxTextures, GLint *numTextures)
   1342 {
   1343      getDispatch()->glExtGetTexturesQCOM(textures, maxTextures, numTextures);
   1344 }
   1345 
   1346 void glExtGetBuffersQCOM(GLuint *buffers, GLint maxBuffers, GLint *numBuffers)
   1347 {
   1348      getDispatch()->glExtGetBuffersQCOM(buffers, maxBuffers, numBuffers);
   1349 }
   1350 
   1351 void glExtGetRenderbuffersQCOM(GLuint *renderbuffers, GLint maxRenderbuffers, GLint *numRenderbuffers)
   1352 {
   1353      getDispatch()->glExtGetRenderbuffersQCOM(renderbuffers, maxRenderbuffers, numRenderbuffers);
   1354 }
   1355 
   1356 void glExtGetFramebuffersQCOM(GLuint *framebuffers, GLint maxFramebuffers, GLint *numFramebuffers)
   1357 {
   1358      getDispatch()->glExtGetFramebuffersQCOM(framebuffers, maxFramebuffers, numFramebuffers);
   1359 }
   1360 
   1361 void glExtGetTexLevelParameterivQCOM(GLuint texture, GLenum face, GLint level, GLenum pname, GLint *params)
   1362 {
   1363      getDispatch()->glExtGetTexLevelParameterivQCOM(texture, face, level, pname, params);
   1364 }
   1365 
   1366 void glExtTexObjectStateOverrideiQCOM(GLenum target, GLenum pname, GLint param)
   1367 {
   1368      getDispatch()->glExtTexObjectStateOverrideiQCOM(target, pname, param);
   1369 }
   1370 
   1371 void glExtGetTexSubImageQCOM(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLvoid *texels)
   1372 {
   1373      getDispatch()->glExtGetTexSubImageQCOM(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, texels);
   1374 }
   1375 
   1376 void glExtGetBufferPointervQCOM(GLenum target, GLvoid **params)
   1377 {
   1378      getDispatch()->glExtGetBufferPointervQCOM(target, params);
   1379 }
   1380 
   1381 void glExtGetShadersQCOM(GLuint *shaders, GLint maxShaders, GLint *numShaders)
   1382 {
   1383      getDispatch()->glExtGetShadersQCOM(shaders, maxShaders, numShaders);
   1384 }
   1385 
   1386 void glExtGetProgramsQCOM(GLuint *programs, GLint maxPrograms, GLint *numPrograms)
   1387 {
   1388      getDispatch()->glExtGetProgramsQCOM(programs, maxPrograms, numPrograms);
   1389 }
   1390 
   1391 GLboolean glExtIsProgramBinaryQCOM(GLuint program)
   1392 {
   1393      return getDispatch()->glExtIsProgramBinaryQCOM(program);
   1394 }
   1395 
   1396 void glExtGetProgramBinarySourceQCOM(GLuint program, GLenum shadertype, GLchar *source, GLint *length)
   1397 {
   1398      getDispatch()->glExtGetProgramBinarySourceQCOM(program, shadertype, source, length);
   1399 }
   1400 
   1401 void glStartTilingQCOM(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask)
   1402 {
   1403      getDispatch()->glStartTilingQCOM(x, y, width, height, preserveMask);
   1404 }
   1405 
   1406 void glEndTilingQCOM(GLbitfield preserveMask)
   1407 {
   1408      getDispatch()->glEndTilingQCOM(preserveMask);
   1409 }
   1410 
   1411