Home | History | Annotate | Download | only in opengl
      1 /*
      2  * Copyright (C) 2007 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 package android.opengl;
     18 
     19 import java.nio.Buffer;
     20 import java.nio.FloatBuffer;
     21 import java.nio.IntBuffer;
     22 import java.nio.ShortBuffer;
     23 
     24 import javax.microedition.khronos.opengles.GL;
     25 
     26 /**
     27  * Implement an error checking wrapper. The wrapper will automatically call
     28      * glError after each GL operation, and throw a GLException if an error
     29      * occurs. (By design, calling glError itself will not cause an exception
     30      * to be thrown.) Enabling error checking is an alternative to manually
     31      *  calling glError after every GL operation.
     32  */
     33 class GLErrorWrapper extends GLWrapperBase {
     34     boolean mCheckError;
     35     boolean mCheckThread;
     36     Thread mOurThread;
     37 
     38     public GLErrorWrapper(GL gl, int configFlags) {
     39         super(gl);
     40         mCheckError = (configFlags & GLDebugHelper.CONFIG_CHECK_GL_ERROR) != 0;
     41         mCheckThread = (configFlags & GLDebugHelper.CONFIG_CHECK_THREAD) != 0;
     42     }
     43 
     44     private void checkThread() {
     45         if (mCheckThread) {
     46             Thread currentThread = Thread.currentThread();
     47             if (mOurThread == null) {
     48                 mOurThread = currentThread;
     49             } else {
     50                 if (!mOurThread.equals(currentThread)) {
     51                     throw new GLException(GLDebugHelper.ERROR_WRONG_THREAD,
     52                             "OpenGL method called from wrong thread.");
     53                 }
     54             }
     55         }
     56     }
     57 
     58     private void checkError() {
     59         if (mCheckError) {
     60             int glError;
     61             if ((glError = mgl.glGetError()) != 0) {
     62                 throw new GLException(glError);
     63             }
     64         }
     65     }
     66 
     67     // ---------------------------------------------------------------------
     68     // GL10 methods:
     69 
     70     public void glActiveTexture(int texture) {
     71         checkThread();
     72         mgl.glActiveTexture(texture);
     73         checkError();
     74     }
     75 
     76     public void glAlphaFunc(int func, float ref) {
     77         checkThread();
     78         mgl.glAlphaFunc(func, ref);
     79         checkError();
     80     }
     81 
     82     public void glAlphaFuncx(int func, int ref) {
     83         checkThread();
     84         mgl.glAlphaFuncx(func, ref);
     85         checkError();
     86     }
     87 
     88     public void glBindTexture(int target, int texture) {
     89         checkThread();
     90         mgl.glBindTexture(target, texture);
     91         checkError();
     92     }
     93 
     94     public void glBlendFunc(int sfactor, int dfactor) {
     95         checkThread();
     96         mgl.glBlendFunc(sfactor, dfactor);
     97         checkError();
     98     }
     99 
    100     public void glClear(int mask) {
    101         checkThread();
    102         mgl.glClear(mask);
    103         checkError();
    104     }
    105 
    106     public void glClearColor(float red, float green, float blue, float alpha) {
    107         checkThread();
    108         mgl.glClearColor(red, green, blue, alpha);
    109         checkError();
    110     }
    111 
    112     public void glClearColorx(int red, int green, int blue, int alpha) {
    113         checkThread();
    114         mgl.glClearColorx(red, green, blue, alpha);
    115         checkError();
    116     }
    117 
    118     public void glClearDepthf(float depth) {
    119         checkThread();
    120         mgl.glClearDepthf(depth);
    121         checkError();
    122     }
    123 
    124     public void glClearDepthx(int depth) {
    125         checkThread();
    126         mgl.glClearDepthx(depth);
    127         checkError();
    128     }
    129 
    130     public void glClearStencil(int s) {
    131         checkThread();
    132         mgl.glClearStencil(s);
    133         checkError();
    134     }
    135 
    136     public void glClientActiveTexture(int texture) {
    137         checkThread();
    138         mgl.glClientActiveTexture(texture);
    139         checkError();
    140     }
    141 
    142     public void glColor4f(float red, float green, float blue, float alpha) {
    143         checkThread();
    144         mgl.glColor4f(red, green, blue, alpha);
    145         checkError();
    146     }
    147 
    148     public void glColor4x(int red, int green, int blue, int alpha) {
    149         checkThread();
    150         mgl.glColor4x(red, green, blue, alpha);
    151         checkError();
    152     }
    153 
    154     public void glColorMask(boolean red, boolean green, boolean blue,
    155             boolean alpha) {
    156         checkThread();
    157         mgl.glColorMask(red, green, blue, alpha);
    158         checkError();
    159     }
    160 
    161     public void glColorPointer(int size, int type, int stride, Buffer pointer) {
    162         checkThread();
    163         mgl.glColorPointer(size, type, stride, pointer);
    164         checkError();
    165     }
    166 
    167     public void glCompressedTexImage2D(int target, int level,
    168             int internalformat, int width, int height, int border,
    169             int imageSize, Buffer data) {
    170         checkThread();
    171         mgl.glCompressedTexImage2D(target, level, internalformat, width,
    172                 height, border, imageSize, data);
    173         checkError();
    174     }
    175 
    176     public void glCompressedTexSubImage2D(int target, int level, int xoffset,
    177             int yoffset, int width, int height, int format, int imageSize,
    178             Buffer data) {
    179         checkThread();
    180         mgl.glCompressedTexSubImage2D(target, level, xoffset, yoffset, width,
    181                 height, format, imageSize, data);
    182         checkError();
    183     }
    184 
    185     public void glCopyTexImage2D(int target, int level, int internalformat,
    186             int x, int y, int width, int height, int border) {
    187         checkThread();
    188         mgl.glCopyTexImage2D(target, level, internalformat, x, y, width,
    189                 height, border);
    190         checkError();
    191     }
    192 
    193     public void glCopyTexSubImage2D(int target, int level, int xoffset,
    194             int yoffset, int x, int y, int width, int height) {
    195         checkThread();
    196         mgl.glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width,
    197                 height);
    198         checkError();
    199     }
    200 
    201     public void glCullFace(int mode) {
    202         checkThread();
    203         mgl.glCullFace(mode);
    204         checkError();
    205     }
    206 
    207     public void glDeleteTextures(int n, int[] textures, int offset) {
    208         checkThread();
    209         mgl.glDeleteTextures(n, textures, offset);
    210         checkError();
    211     }
    212 
    213     public void glDeleteTextures(int n, IntBuffer textures) {
    214         checkThread();
    215         mgl.glDeleteTextures(n, textures);
    216         checkError();
    217     }
    218 
    219     public void glDepthFunc(int func) {
    220         checkThread();
    221         mgl.glDepthFunc(func);
    222         checkError();
    223     }
    224 
    225     public void glDepthMask(boolean flag) {
    226         checkThread();
    227         mgl.glDepthMask(flag);
    228         checkError();
    229     }
    230 
    231     public void glDepthRangef(float near, float far) {
    232         checkThread();
    233         mgl.glDepthRangef(near, far);
    234         checkError();
    235     }
    236 
    237     public void glDepthRangex(int near, int far) {
    238         checkThread();
    239         mgl.glDepthRangex(near, far);
    240         checkError();
    241     }
    242 
    243     public void glDisable(int cap) {
    244         checkThread();
    245         mgl.glDisable(cap);
    246         checkError();
    247     }
    248 
    249     public void glDisableClientState(int array) {
    250         checkThread();
    251         mgl.glDisableClientState(array);
    252         checkError();
    253     }
    254 
    255     public void glDrawArrays(int mode, int first, int count) {
    256         checkThread();
    257         mgl.glDrawArrays(mode, first, count);
    258         checkError();
    259     }
    260 
    261     public void glDrawElements(int mode, int count, int type, Buffer indices) {
    262         checkThread();
    263         mgl.glDrawElements(mode, count, type, indices);
    264         checkError();
    265     }
    266 
    267     public void glEnable(int cap) {
    268         checkThread();
    269         mgl.glEnable(cap);
    270         checkError();
    271     }
    272 
    273     public void glEnableClientState(int array) {
    274         checkThread();
    275         mgl.glEnableClientState(array);
    276         checkError();
    277     }
    278 
    279     public void glFinish() {
    280         checkThread();
    281         mgl.glFinish();
    282         checkError();
    283     }
    284 
    285     public void glFlush() {
    286         checkThread();
    287         mgl.glFlush();
    288         checkError();
    289     }
    290 
    291     public void glFogf(int pname, float param) {
    292         checkThread();
    293         mgl.glFogf(pname, param);
    294         checkError();
    295     }
    296 
    297     public void glFogfv(int pname, float[] params, int offset) {
    298         checkThread();
    299         mgl.glFogfv(pname, params, offset);
    300         checkError();
    301     }
    302 
    303     public void glFogfv(int pname, FloatBuffer params) {
    304         checkThread();
    305         mgl.glFogfv(pname, params);
    306         checkError();
    307     }
    308 
    309     public void glFogx(int pname, int param) {
    310         checkThread();
    311         mgl.glFogx(pname, param);
    312         checkError();
    313     }
    314 
    315     public void glFogxv(int pname, int[] params, int offset) {
    316         checkThread();
    317         mgl.glFogxv(pname, params, offset);
    318         checkError();
    319     }
    320 
    321     public void glFogxv(int pname, IntBuffer params) {
    322         checkThread();
    323         mgl.glFogxv(pname, params);
    324         checkError();
    325     }
    326 
    327     public void glFrontFace(int mode) {
    328         checkThread();
    329         mgl.glFrontFace(mode);
    330         checkError();
    331     }
    332 
    333     public void glFrustumf(float left, float right, float bottom, float top,
    334             float near, float far) {
    335         checkThread();
    336         mgl.glFrustumf(left, right, bottom, top, near, far);
    337         checkError();
    338     }
    339 
    340     public void glFrustumx(int left, int right, int bottom, int top, int near,
    341             int far) {
    342         checkThread();
    343         mgl.glFrustumx(left, right, bottom, top, near, far);
    344         checkError();
    345     }
    346 
    347     public void glGenTextures(int n, int[] textures, int offset) {
    348         checkThread();
    349         mgl.glGenTextures(n, textures, offset);
    350         checkError();
    351     }
    352 
    353     public void glGenTextures(int n, IntBuffer textures) {
    354         checkThread();
    355         mgl.glGenTextures(n, textures);
    356         checkError();
    357     }
    358 
    359     public int glGetError() {
    360         checkThread();
    361         int result = mgl.glGetError();
    362         return result;
    363     }
    364 
    365     public void glGetIntegerv(int pname, int[] params, int offset) {
    366         checkThread();
    367         mgl.glGetIntegerv(pname, params, offset);
    368         checkError();
    369     }
    370 
    371     public void glGetIntegerv(int pname, IntBuffer params) {
    372         checkThread();
    373         mgl.glGetIntegerv(pname, params);
    374         checkError();
    375     }
    376 
    377     public String glGetString(int name) {
    378         checkThread();
    379         String result = mgl.glGetString(name);
    380         checkError();
    381         return result;
    382     }
    383 
    384     public void glHint(int target, int mode) {
    385         checkThread();
    386         mgl.glHint(target, mode);
    387         checkError();
    388     }
    389 
    390     public void glLightModelf(int pname, float param) {
    391         checkThread();
    392         mgl.glLightModelf(pname, param);
    393         checkError();
    394     }
    395 
    396     public void glLightModelfv(int pname, float[] params, int offset) {
    397         checkThread();
    398         mgl.glLightModelfv(pname, params, offset);
    399         checkError();
    400     }
    401 
    402     public void glLightModelfv(int pname, FloatBuffer params) {
    403         checkThread();
    404         mgl.glLightModelfv(pname, params);
    405         checkError();
    406     }
    407 
    408     public void glLightModelx(int pname, int param) {
    409         checkThread();
    410         mgl.glLightModelx(pname, param);
    411         checkError();
    412     }
    413 
    414     public void glLightModelxv(int pname, int[] params, int offset) {
    415         checkThread();
    416         mgl.glLightModelxv(pname, params, offset);
    417         checkError();
    418     }
    419 
    420     public void glLightModelxv(int pname, IntBuffer params) {
    421         checkThread();
    422         mgl.glLightModelxv(pname, params);
    423         checkError();
    424     }
    425 
    426     public void glLightf(int light, int pname, float param) {
    427         checkThread();
    428         mgl.glLightf(light, pname, param);
    429         checkError();
    430     }
    431 
    432     public void glLightfv(int light, int pname, float[] params, int offset) {
    433         checkThread();
    434         mgl.glLightfv(light, pname, params, offset);
    435         checkError();
    436     }
    437 
    438     public void glLightfv(int light, int pname, FloatBuffer params) {
    439         checkThread();
    440         mgl.glLightfv(light, pname, params);
    441         checkError();
    442     }
    443 
    444     public void glLightx(int light, int pname, int param) {
    445         checkThread();
    446         mgl.glLightx(light, pname, param);
    447         checkError();
    448     }
    449 
    450     public void glLightxv(int light, int pname, int[] params, int offset) {
    451         checkThread();
    452         mgl.glLightxv(light, pname, params, offset);
    453         checkError();
    454     }
    455 
    456     public void glLightxv(int light, int pname, IntBuffer params) {
    457         checkThread();
    458         mgl.glLightxv(light, pname, params);
    459         checkError();
    460     }
    461 
    462     public void glLineWidth(float width) {
    463         checkThread();
    464         mgl.glLineWidth(width);
    465         checkError();
    466     }
    467 
    468     public void glLineWidthx(int width) {
    469         checkThread();
    470         mgl.glLineWidthx(width);
    471         checkError();
    472     }
    473 
    474     public void glLoadIdentity() {
    475         checkThread();
    476         mgl.glLoadIdentity();
    477         checkError();
    478     }
    479 
    480     public void glLoadMatrixf(float[] m, int offset) {
    481         checkThread();
    482         mgl.glLoadMatrixf(m, offset);
    483         checkError();
    484     }
    485 
    486     public void glLoadMatrixf(FloatBuffer m) {
    487         checkThread();
    488         mgl.glLoadMatrixf(m);
    489         checkError();
    490     }
    491 
    492     public void glLoadMatrixx(int[] m, int offset) {
    493         checkThread();
    494         mgl.glLoadMatrixx(m, offset);
    495         checkError();
    496     }
    497 
    498     public void glLoadMatrixx(IntBuffer m) {
    499         checkThread();
    500         mgl.glLoadMatrixx(m);
    501         checkError();
    502     }
    503 
    504     public void glLogicOp(int opcode) {
    505         checkThread();
    506         mgl.glLogicOp(opcode);
    507         checkError();
    508     }
    509 
    510     public void glMaterialf(int face, int pname, float param) {
    511         checkThread();
    512         mgl.glMaterialf(face, pname, param);
    513         checkError();
    514     }
    515 
    516     public void glMaterialfv(int face, int pname, float[] params, int offset) {
    517         checkThread();
    518         mgl.glMaterialfv(face, pname, params, offset);
    519         checkError();
    520     }
    521 
    522     public void glMaterialfv(int face, int pname, FloatBuffer params) {
    523         checkThread();
    524         mgl.glMaterialfv(face, pname, params);
    525         checkError();
    526     }
    527 
    528     public void glMaterialx(int face, int pname, int param) {
    529         checkThread();
    530         mgl.glMaterialx(face, pname, param);
    531         checkError();
    532     }
    533 
    534     public void glMaterialxv(int face, int pname, int[] params, int offset) {
    535         checkThread();
    536         mgl.glMaterialxv(face, pname, params, offset);
    537         checkError();
    538     }
    539 
    540     public void glMaterialxv(int face, int pname, IntBuffer params) {
    541         checkThread();
    542         mgl.glMaterialxv(face, pname, params);
    543         checkError();
    544     }
    545 
    546     public void glMatrixMode(int mode) {
    547         checkThread();
    548         mgl.glMatrixMode(mode);
    549         checkError();
    550     }
    551 
    552     public void glMultMatrixf(float[] m, int offset) {
    553         checkThread();
    554         mgl.glMultMatrixf(m, offset);
    555         checkError();
    556     }
    557 
    558     public void glMultMatrixf(FloatBuffer m) {
    559         checkThread();
    560         mgl.glMultMatrixf(m);
    561         checkError();
    562     }
    563 
    564     public void glMultMatrixx(int[] m, int offset) {
    565         checkThread();
    566         mgl.glMultMatrixx(m, offset);
    567         checkError();
    568     }
    569 
    570     public void glMultMatrixx(IntBuffer m) {
    571         checkThread();
    572         mgl.glMultMatrixx(m);
    573         checkError();
    574     }
    575 
    576     public void glMultiTexCoord4f(int target,
    577             float s, float t, float r, float q) {
    578         checkThread();
    579         mgl.glMultiTexCoord4f(target, s, t, r, q);
    580         checkError();
    581     }
    582 
    583     public void glMultiTexCoord4x(int target, int s, int t, int r, int q) {
    584         checkThread();
    585         mgl.glMultiTexCoord4x(target, s, t, r, q);
    586         checkError();
    587     }
    588 
    589     public void glNormal3f(float nx, float ny, float nz) {
    590         checkThread();
    591         mgl.glNormal3f(nx, ny, nz);
    592         checkError();
    593     }
    594 
    595     public void glNormal3x(int nx, int ny, int nz) {
    596         checkThread();
    597         mgl.glNormal3x(nx, ny, nz);
    598         checkError();
    599     }
    600 
    601     public void glNormalPointer(int type, int stride, Buffer pointer) {
    602         checkThread();
    603         mgl.glNormalPointer(type, stride, pointer);
    604         checkError();
    605     }
    606 
    607     public void glOrthof(float left, float right, float bottom, float top,
    608             float near, float far) {
    609         checkThread();
    610         mgl.glOrthof(left, right, bottom, top, near, far);
    611         checkError();
    612     }
    613 
    614     public void glOrthox(int left, int right, int bottom, int top, int near,
    615             int far) {
    616         checkThread();
    617         mgl.glOrthox(left, right, bottom, top, near, far);
    618         checkError();
    619     }
    620 
    621     public void glPixelStorei(int pname, int param) {
    622         checkThread();
    623         mgl.glPixelStorei(pname, param);
    624         checkError();
    625     }
    626 
    627     public void glPointSize(float size) {
    628         checkThread();
    629         mgl.glPointSize(size);
    630         checkError();
    631     }
    632 
    633     public void glPointSizex(int size) {
    634         checkThread();
    635         mgl.glPointSizex(size);
    636         checkError();
    637     }
    638 
    639     public void glPolygonOffset(float factor, float units) {
    640         checkThread();
    641         mgl.glPolygonOffset(factor, units);
    642         checkError();
    643     }
    644 
    645     public void glPolygonOffsetx(int factor, int units) {
    646         checkThread();
    647         mgl.glPolygonOffsetx(factor, units);
    648         checkError();
    649     }
    650 
    651     public void glPopMatrix() {
    652         checkThread();
    653         mgl.glPopMatrix();
    654         checkError();
    655     }
    656 
    657     public void glPushMatrix() {
    658         checkThread();
    659         mgl.glPushMatrix();
    660         checkError();
    661     }
    662 
    663     public void glReadPixels(int x, int y, int width, int height, int format,
    664             int type, Buffer pixels) {
    665         checkThread();
    666         mgl.glReadPixels(x, y, width, height, format, type, pixels);
    667         checkError();
    668     }
    669 
    670     public void glRotatef(float angle, float x, float y, float z) {
    671         checkThread();
    672         mgl.glRotatef(angle, x, y, z);
    673         checkError();
    674     }
    675 
    676     public void glRotatex(int angle, int x, int y, int z) {
    677         checkThread();
    678         mgl.glRotatex(angle, x, y, z);
    679         checkError();
    680     }
    681 
    682     public void glSampleCoverage(float value, boolean invert) {
    683         checkThread();
    684         mgl.glSampleCoverage(value, invert);
    685         checkError();
    686     }
    687 
    688     public void glSampleCoveragex(int value, boolean invert) {
    689         checkThread();
    690         mgl.glSampleCoveragex(value, invert);
    691         checkError();
    692     }
    693 
    694     public void glScalef(float x, float y, float z) {
    695         checkThread();
    696         mgl.glScalef(x, y, z);
    697         checkError();
    698     }
    699 
    700     public void glScalex(int x, int y, int z) {
    701         checkThread();
    702         mgl.glScalex(x, y, z);
    703         checkError();
    704     }
    705 
    706     public void glScissor(int x, int y, int width, int height) {
    707         checkThread();
    708         mgl.glScissor(x, y, width, height);
    709         checkError();
    710     }
    711 
    712     public void glShadeModel(int mode) {
    713         checkThread();
    714         mgl.glShadeModel(mode);
    715         checkError();
    716     }
    717 
    718     public void glStencilFunc(int func, int ref, int mask) {
    719         checkThread();
    720         mgl.glStencilFunc(func, ref, mask);
    721         checkError();
    722     }
    723 
    724     public void glStencilMask(int mask) {
    725         checkThread();
    726         mgl.glStencilMask(mask);
    727         checkError();
    728     }
    729 
    730     public void glStencilOp(int fail, int zfail, int zpass) {
    731         checkThread();
    732         mgl.glStencilOp(fail, zfail, zpass);
    733         checkError();
    734     }
    735 
    736     public void glTexCoordPointer(int size, int type,
    737             int stride, Buffer pointer) {
    738         checkThread();
    739         mgl.glTexCoordPointer(size, type, stride, pointer);
    740         checkError();
    741     }
    742 
    743     public void glTexEnvf(int target, int pname, float param) {
    744         checkThread();
    745         mgl.glTexEnvf(target, pname, param);
    746         checkError();
    747     }
    748 
    749     public void glTexEnvfv(int target, int pname, float[] params, int offset) {
    750         checkThread();
    751         mgl.glTexEnvfv(target, pname, params, offset);
    752         checkError();
    753     }
    754 
    755     public void glTexEnvfv(int target, int pname, FloatBuffer params) {
    756         checkThread();
    757         mgl.glTexEnvfv(target, pname, params);
    758         checkError();
    759     }
    760 
    761     public void glTexEnvx(int target, int pname, int param) {
    762         checkThread();
    763         mgl.glTexEnvx(target, pname, param);
    764         checkError();
    765     }
    766 
    767     public void glTexEnvxv(int target, int pname, int[] params, int offset) {
    768         checkThread();
    769         mgl.glTexEnvxv(target, pname, params, offset);
    770         checkError();
    771     }
    772 
    773     public void glTexEnvxv(int target, int pname, IntBuffer params) {
    774         checkThread();
    775         mgl.glTexEnvxv(target, pname, params);
    776         checkError();
    777     }
    778 
    779     public void glTexImage2D(int target, int level, int internalformat,
    780             int width, int height, int border, int format, int type,
    781             Buffer pixels) {
    782         checkThread();
    783         mgl.glTexImage2D(target, level, internalformat, width, height, border,
    784                 format, type, pixels);
    785         checkError();
    786     }
    787 
    788     public void glTexParameterf(int target, int pname, float param) {
    789         checkThread();
    790         mgl.glTexParameterf(target, pname, param);
    791         checkError();
    792     }
    793 
    794     public void glTexParameterx(int target, int pname, int param) {
    795         checkThread();
    796         mgl.glTexParameterx(target, pname, param);
    797         checkError();
    798     }
    799 
    800     public void glTexParameteriv(int target, int pname, int[] params, int offset) {
    801         checkThread();
    802         mgl11.glTexParameteriv(target, pname, params, offset);
    803         checkError();
    804     }
    805 
    806     public void glTexParameteriv(int target, int pname, IntBuffer params) {
    807         checkThread();
    808         mgl11.glTexParameteriv(target, pname, params);
    809         checkError();
    810     }
    811 
    812     public void glTexSubImage2D(int target, int level, int xoffset,
    813             int yoffset, int width, int height, int format, int type,
    814             Buffer pixels) {
    815         checkThread();
    816         mgl.glTexSubImage2D(target, level, xoffset, yoffset, width, height,
    817                 format, type, pixels);
    818         checkError();
    819     }
    820 
    821     public void glTranslatef(float x, float y, float z) {
    822         checkThread();
    823         mgl.glTranslatef(x, y, z);
    824         checkError();
    825     }
    826 
    827     public void glTranslatex(int x, int y, int z) {
    828         checkThread();
    829         mgl.glTranslatex(x, y, z);
    830         checkError();
    831     }
    832 
    833     public void glVertexPointer(int size, int type,
    834             int stride, Buffer pointer) {
    835         checkThread();
    836         mgl.glVertexPointer(size, type, stride, pointer);
    837         checkError();
    838     }
    839 
    840     public void glViewport(int x, int y, int width, int height) {
    841         checkThread();
    842         mgl.glViewport(x, y, width, height);
    843         checkError();
    844     }
    845 
    846     public void glClipPlanef(int plane, float[] equation, int offset) {
    847         checkThread();
    848         mgl11.glClipPlanef(plane, equation, offset);
    849         checkError();
    850     }
    851 
    852     public void glClipPlanef(int plane, FloatBuffer equation) {
    853         checkThread();
    854         mgl11.glClipPlanef(plane, equation);
    855         checkError();
    856     }
    857 
    858     public void glClipPlanex(int plane, int[] equation, int offset) {
    859         checkThread();
    860         mgl11.glClipPlanex(plane, equation, offset);
    861         checkError();
    862     }
    863 
    864     public void glClipPlanex(int plane, IntBuffer equation) {
    865         checkThread();
    866         mgl11.glClipPlanex(plane, equation);
    867         checkError();
    868     }
    869 
    870     // Draw Texture Extension
    871 
    872     public void glDrawTexfOES(float x, float y, float z,
    873         float width, float height) {
    874         checkThread();
    875         mgl11Ext.glDrawTexfOES(x, y, z, width, height);
    876         checkError();
    877     }
    878 
    879     public void glDrawTexfvOES(float[] coords, int offset) {
    880         checkThread();
    881         mgl11Ext.glDrawTexfvOES(coords, offset);
    882         checkError();
    883     }
    884 
    885     public void glDrawTexfvOES(FloatBuffer coords) {
    886         checkThread();
    887         mgl11Ext.glDrawTexfvOES(coords);
    888         checkError();
    889     }
    890 
    891     public void glDrawTexiOES(int x, int y, int z, int width, int height) {
    892         checkThread();
    893         mgl11Ext.glDrawTexiOES(x, y, z, width, height);
    894         checkError();
    895     }
    896 
    897     public void glDrawTexivOES(int[] coords, int offset) {
    898         checkThread();
    899         mgl11Ext.glDrawTexivOES(coords, offset);
    900         checkError();
    901     }
    902 
    903     public void glDrawTexivOES(IntBuffer coords) {
    904         checkThread();
    905         mgl11Ext.glDrawTexivOES(coords);
    906         checkError();
    907     }
    908 
    909     public void glDrawTexsOES(short x, short y, short z,
    910         short width, short height) {
    911         checkThread();
    912         mgl11Ext.glDrawTexsOES(x, y, z, width, height);
    913         checkError();
    914     }
    915 
    916     public void glDrawTexsvOES(short[] coords, int offset) {
    917         checkThread();
    918         mgl11Ext.glDrawTexsvOES(coords, offset);
    919         checkError();
    920     }
    921 
    922     public void glDrawTexsvOES(ShortBuffer coords) {
    923         checkThread();
    924         mgl11Ext.glDrawTexsvOES(coords);
    925         checkError();
    926     }
    927 
    928     public void glDrawTexxOES(int x, int y, int z, int width, int height) {
    929         checkThread();
    930         mgl11Ext.glDrawTexxOES(x, y, z, width, height);
    931         checkError();
    932     }
    933 
    934     public void glDrawTexxvOES(int[] coords, int offset) {
    935         checkThread();
    936         mgl11Ext.glDrawTexxvOES(coords, offset);
    937         checkError();
    938     }
    939 
    940     public void glDrawTexxvOES(IntBuffer coords) {
    941         checkThread();
    942         mgl11Ext.glDrawTexxvOES(coords);
    943         checkError();
    944     }
    945 
    946     public int glQueryMatrixxOES(int[] mantissa, int mantissaOffset,
    947         int[] exponent, int exponentOffset) {
    948         checkThread();
    949         int valid = mgl10Ext.glQueryMatrixxOES(mantissa, mantissaOffset,
    950             exponent, exponentOffset);
    951         checkError();
    952         return valid;
    953     }
    954 
    955     public int glQueryMatrixxOES(IntBuffer mantissa, IntBuffer exponent) {
    956         checkThread();
    957         int valid = mgl10Ext.glQueryMatrixxOES(mantissa, exponent);
    958         checkError();
    959         return valid;
    960     }
    961 
    962     public void glBindBuffer(int target, int buffer) {
    963         checkThread();
    964         mgl11.glBindBuffer(target, buffer);
    965         checkError();
    966     }
    967 
    968     public void glBufferData(int target, int size, Buffer data, int usage) {
    969         checkThread();
    970         mgl11.glBufferData(target, size, data, usage);
    971         checkError();
    972     }
    973 
    974     public void glBufferSubData(int target, int offset, int size, Buffer data) {
    975         checkThread();
    976         mgl11.glBufferSubData(target, offset, size, data);
    977         checkError();
    978     }
    979 
    980     public void glColor4ub(byte red, byte green, byte blue, byte alpha) {
    981         checkThread();
    982         mgl11.glColor4ub(red, green, blue, alpha);
    983         checkError();    }
    984 
    985     public void glColorPointer(int size, int type, int stride, int offset) {
    986         checkThread();
    987         mgl11.glColorPointer(size, type, stride, offset);
    988         checkError();
    989     }
    990 
    991     public void glDeleteBuffers(int n, int[] buffers, int offset) {
    992         checkThread();
    993         mgl11.glDeleteBuffers(n, buffers, offset);
    994         checkError();
    995     }
    996 
    997     public void glDeleteBuffers(int n, IntBuffer buffers) {
    998         checkThread();
    999         mgl11.glDeleteBuffers(n, buffers);
   1000         checkError();
   1001     }
   1002 
   1003     public void glDrawElements(int mode, int count, int type, int offset) {
   1004         checkThread();
   1005         mgl11.glDrawElements(mode, count, type, offset);
   1006         checkError();
   1007     }
   1008 
   1009     public void glGenBuffers(int n, int[] buffers, int offset) {
   1010         checkThread();
   1011         mgl11.glGenBuffers(n, buffers, offset);
   1012         checkError();
   1013     }
   1014 
   1015     public void glGenBuffers(int n, IntBuffer buffers) {
   1016         checkThread();
   1017         mgl11.glGenBuffers(n, buffers);
   1018         checkError();
   1019     }
   1020 
   1021     public void glGetBooleanv(int pname, boolean[] params, int offset) {
   1022         checkThread();
   1023         mgl11.glGetBooleanv(pname, params, offset);
   1024         checkError();
   1025     }
   1026 
   1027     public void glGetBooleanv(int pname, IntBuffer params) {
   1028         checkThread();
   1029         mgl11.glGetBooleanv(pname, params);
   1030         checkError();
   1031     }
   1032 
   1033     public void glGetBufferParameteriv(int target, int pname, int[] params,
   1034             int offset) {
   1035         checkThread();
   1036         mgl11.glGetBufferParameteriv(target, pname, params, offset);
   1037         checkError();
   1038     }
   1039 
   1040     public void glGetBufferParameteriv(int target, int pname, IntBuffer params) {
   1041         checkThread();
   1042         mgl11.glGetBufferParameteriv(target, pname, params);
   1043         checkError();
   1044     }
   1045 
   1046     public void glGetClipPlanef(int pname, float[] eqn, int offset) {
   1047         checkThread();
   1048         mgl11.glGetClipPlanef(pname, eqn, offset);
   1049         checkError();
   1050     }
   1051 
   1052     public void glGetClipPlanef(int pname, FloatBuffer eqn) {
   1053         checkThread();
   1054         mgl11.glGetClipPlanef(pname, eqn);
   1055         checkError();
   1056     }
   1057 
   1058     public void glGetClipPlanex(int pname, int[] eqn, int offset) {
   1059         checkThread();
   1060         mgl11.glGetClipPlanex(pname, eqn, offset);
   1061         checkError();
   1062     }
   1063 
   1064     public void glGetClipPlanex(int pname, IntBuffer eqn) {
   1065         checkThread();
   1066         mgl11.glGetClipPlanex(pname, eqn);
   1067         checkError();
   1068     }
   1069 
   1070     public void glGetFixedv(int pname, int[] params, int offset) {
   1071         checkThread();
   1072         mgl11.glGetFixedv(pname, params, offset);
   1073         checkError();
   1074     }
   1075 
   1076     public void glGetFixedv(int pname, IntBuffer params) {
   1077         checkThread();
   1078         mgl11.glGetFixedv(pname, params);
   1079         checkError();
   1080     }
   1081 
   1082     public void glGetFloatv(int pname, float[] params, int offset) {
   1083         checkThread();
   1084         mgl11.glGetFloatv(pname, params, offset);
   1085         checkError();
   1086     }
   1087 
   1088     public void glGetFloatv(int pname, FloatBuffer params) {
   1089         checkThread();
   1090         mgl11.glGetFloatv(pname, params);
   1091         checkError();
   1092     }
   1093 
   1094     public void glGetLightfv(int light, int pname, float[] params, int offset) {
   1095         checkThread();
   1096         mgl11.glGetLightfv(light, pname, params, offset);
   1097         checkError();
   1098     }
   1099 
   1100     public void glGetLightfv(int light, int pname, FloatBuffer params) {
   1101         checkThread();
   1102         mgl11.glGetLightfv(light, pname, params);
   1103         checkError();
   1104     }
   1105 
   1106     public void glGetLightxv(int light, int pname, int[] params, int offset) {
   1107         checkThread();
   1108         mgl11.glGetLightxv(light, pname, params, offset);
   1109         checkError();
   1110     }
   1111 
   1112     public void glGetLightxv(int light, int pname, IntBuffer params) {
   1113         checkThread();
   1114         mgl11.glGetLightxv(light, pname, params);
   1115         checkError();
   1116     }
   1117 
   1118     public void glGetMaterialfv(int face, int pname, float[] params, int offset) {
   1119         checkThread();
   1120         mgl11.glGetMaterialfv(face, pname, params, offset);
   1121         checkError();
   1122     }
   1123 
   1124     public void glGetMaterialfv(int face, int pname, FloatBuffer params) {
   1125         checkThread();
   1126         mgl11.glGetMaterialfv(face, pname, params);
   1127         checkError();
   1128     }
   1129 
   1130     public void glGetMaterialxv(int face, int pname, int[] params, int offset) {
   1131         checkThread();
   1132         mgl11.glGetMaterialxv(face, pname, params, offset);
   1133         checkError();
   1134     }
   1135 
   1136     public void glGetMaterialxv(int face, int pname, IntBuffer params) {
   1137         checkThread();
   1138         mgl11.glGetMaterialxv(face, pname, params);
   1139         checkError();
   1140     }
   1141 
   1142     public void glGetPointerv(int pname, Buffer[] params) {
   1143         checkThread();
   1144         mgl11.glGetPointerv(pname, params);
   1145         checkError();
   1146     }
   1147 
   1148     public void glGetTexEnviv(int env, int pname, int[] params, int offset) {
   1149         checkThread();
   1150         mgl11.glGetTexEnviv(env, pname, params, offset);
   1151         checkError();
   1152     }
   1153 
   1154     public void glGetTexEnviv(int env, int pname, IntBuffer params) {
   1155         checkThread();
   1156         mgl11.glGetTexEnviv(env, pname, params);
   1157         checkError();
   1158     }
   1159 
   1160     public void glGetTexEnvxv(int env, int pname, int[] params, int offset) {
   1161         checkThread();
   1162         mgl11.glGetTexEnvxv(env, pname, params, offset);
   1163         checkError();
   1164     }
   1165 
   1166     public void glGetTexEnvxv(int env, int pname, IntBuffer params) {
   1167         checkThread();
   1168         mgl11.glGetTexEnvxv(env, pname, params);
   1169         checkError();
   1170     }
   1171 
   1172     public void glGetTexParameterfv(int target, int pname, float[] params,
   1173             int offset) {
   1174         checkThread();
   1175         mgl11.glGetTexParameterfv(target, pname, params, offset);
   1176         checkError();
   1177     }
   1178 
   1179     public void glGetTexParameterfv(int target, int pname, FloatBuffer params) {
   1180         checkThread();
   1181         mgl11.glGetTexParameterfv(target, pname, params);
   1182         checkError();
   1183     }
   1184 
   1185     public void glGetTexParameteriv(int target, int pname, int[] params,
   1186             int offset) {
   1187         checkThread();
   1188         mgl11.glGetTexParameteriv(target, pname, params, offset);
   1189         checkError();
   1190     }
   1191 
   1192     public void glGetTexParameteriv(int target, int pname, IntBuffer params) {
   1193         checkThread();
   1194         mgl11.glGetTexParameteriv(target, pname, params);
   1195         checkError();
   1196     }
   1197 
   1198     public void glGetTexParameterxv(int target, int pname, int[] params,
   1199             int offset) {
   1200         checkThread();
   1201         mgl11.glGetTexParameterxv(target, pname, params, offset);
   1202         checkError();
   1203     }
   1204 
   1205     public void glGetTexParameterxv(int target, int pname, IntBuffer params) {
   1206         checkThread();
   1207         mgl11.glGetTexParameterxv(target, pname, params);
   1208         checkError();
   1209     }
   1210 
   1211     public boolean glIsBuffer(int buffer) {
   1212         checkThread();
   1213         boolean valid = mgl11.glIsBuffer(buffer);
   1214         checkError();
   1215         return valid;
   1216     }
   1217 
   1218     public boolean glIsEnabled(int cap) {
   1219         checkThread();
   1220         boolean valid = mgl11.glIsEnabled(cap);
   1221         checkError();
   1222         return valid;
   1223     }
   1224 
   1225     public boolean glIsTexture(int texture) {
   1226         checkThread();
   1227         boolean valid = mgl11.glIsTexture(texture);
   1228         checkError();
   1229         return valid;
   1230     }
   1231 
   1232     public void glNormalPointer(int type, int stride, int offset) {
   1233         checkThread();
   1234         mgl11.glNormalPointer(type, stride, offset);
   1235         checkError();
   1236     }
   1237 
   1238     public void glPointParameterf(int pname, float param) {
   1239         checkThread();
   1240         mgl11.glPointParameterf(pname, param);
   1241         checkError();
   1242     }
   1243 
   1244     public void glPointParameterfv(int pname, float[] params, int offset) {
   1245         checkThread();
   1246         mgl11.glPointParameterfv(pname, params, offset);
   1247         checkError();
   1248     }
   1249 
   1250     public void glPointParameterfv(int pname, FloatBuffer params) {
   1251         checkThread();
   1252         mgl11.glPointParameterfv(pname, params);
   1253         checkError();
   1254     }
   1255 
   1256     public void glPointParameterx(int pname, int param) {
   1257         checkThread();
   1258         mgl11.glPointParameterx(pname, param);
   1259         checkError();
   1260     }
   1261 
   1262     public void glPointParameterxv(int pname, int[] params, int offset) {
   1263         checkThread();
   1264         mgl11.glPointParameterxv(pname, params, offset);
   1265         checkError();
   1266     }
   1267 
   1268     public void glPointParameterxv(int pname, IntBuffer params) {
   1269         checkThread();
   1270         mgl11.glPointParameterxv(pname, params);
   1271         checkError();
   1272     }
   1273 
   1274     public void glPointSizePointerOES(int type, int stride, Buffer pointer) {
   1275         checkThread();
   1276         mgl11.glPointSizePointerOES(type, stride, pointer);
   1277         checkError();
   1278     }
   1279 
   1280     public void glTexCoordPointer(int size, int type, int stride, int offset) {
   1281         checkThread();
   1282         mgl11.glTexCoordPointer(size, type, stride, offset);
   1283         checkError();
   1284     }
   1285 
   1286     public void glTexEnvi(int target, int pname, int param) {
   1287         checkThread();
   1288         mgl11.glTexEnvi(target, pname, param);
   1289         checkError();
   1290     }
   1291 
   1292     public void glTexEnviv(int target, int pname, int[] params, int offset) {
   1293         checkThread();
   1294         mgl11.glTexEnviv(target, pname, params, offset);
   1295         checkError();
   1296     }
   1297 
   1298     public void glTexEnviv(int target, int pname, IntBuffer params) {
   1299         checkThread();
   1300         mgl11.glTexEnviv(target, pname, params);
   1301         checkError();
   1302     }
   1303 
   1304     public void glTexParameterfv(int target, int pname, float[] params,
   1305             int offset) {
   1306         checkThread();
   1307         mgl11.glTexParameterfv(target, pname, params, offset);
   1308         checkError();
   1309     }
   1310 
   1311     public void glTexParameterfv(int target, int pname, FloatBuffer params) {
   1312         checkThread();
   1313         mgl11.glTexParameterfv(target, pname, params);
   1314         checkError();
   1315     }
   1316 
   1317     public void glTexParameteri(int target, int pname, int param) {
   1318         checkThread();
   1319         mgl11.glTexParameteri(target, pname, param);
   1320         checkError();
   1321     }
   1322 
   1323     public void glTexParameterxv(int target, int pname, int[] params, int offset) {
   1324         checkThread();
   1325         mgl11.glTexParameterxv(target, pname, params, offset);
   1326         checkError();
   1327     }
   1328 
   1329     public void glTexParameterxv(int target, int pname, IntBuffer params) {
   1330         checkThread();
   1331         mgl11.glTexParameterxv(target, pname, params);
   1332         checkError();
   1333     }
   1334 
   1335     public void glVertexPointer(int size, int type, int stride, int offset) {
   1336         checkThread();
   1337         mgl11.glVertexPointer(size, type, stride, offset);
   1338         checkError();
   1339     }
   1340 
   1341     public void glCurrentPaletteMatrixOES(int matrixpaletteindex) {
   1342         checkThread();
   1343         mgl11Ext.glCurrentPaletteMatrixOES(matrixpaletteindex);
   1344         checkError();
   1345     }
   1346 
   1347     public void glLoadPaletteFromModelViewMatrixOES() {
   1348         checkThread();
   1349         mgl11Ext.glLoadPaletteFromModelViewMatrixOES();
   1350         checkError();
   1351     }
   1352 
   1353     public void glMatrixIndexPointerOES(int size, int type, int stride,
   1354             Buffer pointer) {
   1355         checkThread();
   1356         mgl11Ext.glMatrixIndexPointerOES(size, type, stride, pointer);
   1357         checkError();
   1358     }
   1359 
   1360     public void glMatrixIndexPointerOES(int size, int type, int stride,
   1361             int offset) {
   1362         checkThread();
   1363         mgl11Ext.glMatrixIndexPointerOES(size, type, stride, offset);
   1364         checkError();
   1365     }
   1366 
   1367     public void glWeightPointerOES(int size, int type, int stride,
   1368             Buffer pointer) {
   1369         checkThread();
   1370         mgl11Ext.glWeightPointerOES(size, type, stride, pointer);
   1371         checkError();
   1372     }
   1373 
   1374     public void glWeightPointerOES(int size, int type, int stride, int offset) {
   1375         checkThread();
   1376         mgl11Ext.glWeightPointerOES(size, type, stride, offset);
   1377         checkError();
   1378     }
   1379 
   1380     @Override
   1381     public void glBindFramebufferOES(int target, int framebuffer) {
   1382         checkThread();
   1383         mgl11ExtensionPack.glBindFramebufferOES(target, framebuffer);
   1384         checkError();
   1385     }
   1386 
   1387     @Override
   1388     public void glBindRenderbufferOES(int target, int renderbuffer) {
   1389         checkThread();
   1390         mgl11ExtensionPack.glBindRenderbufferOES(target, renderbuffer);
   1391         checkError();
   1392     }
   1393 
   1394     @Override
   1395     public void glBlendEquation(int mode) {
   1396         checkThread();
   1397         mgl11ExtensionPack.glBlendEquation(mode);
   1398         checkError();
   1399     }
   1400 
   1401     @Override
   1402     public void glBlendEquationSeparate(int modeRGB, int modeAlpha) {
   1403         checkThread();
   1404         mgl11ExtensionPack.glBlendEquationSeparate(modeRGB, modeAlpha);
   1405         checkError();
   1406     }
   1407 
   1408     @Override
   1409     public void glBlendFuncSeparate(int srcRGB, int dstRGB, int srcAlpha,
   1410             int dstAlpha) {
   1411         checkThread();
   1412         mgl11ExtensionPack.glBlendFuncSeparate(srcRGB, dstRGB, srcAlpha, dstAlpha);
   1413         checkError();
   1414     }
   1415 
   1416     @Override
   1417     public int glCheckFramebufferStatusOES(int target) {
   1418         checkThread();
   1419         int result = mgl11ExtensionPack.glCheckFramebufferStatusOES(target);
   1420         checkError();
   1421         return result;
   1422     }
   1423 
   1424     @Override
   1425     public void glDeleteFramebuffersOES(int n, int[] framebuffers, int offset) {
   1426         checkThread();
   1427         mgl11ExtensionPack.glDeleteFramebuffersOES(n, framebuffers, offset);
   1428         checkError();
   1429     }
   1430 
   1431     @Override
   1432     public void glDeleteFramebuffersOES(int n, IntBuffer framebuffers) {
   1433         checkThread();
   1434         mgl11ExtensionPack.glDeleteFramebuffersOES(n, framebuffers);
   1435         checkError();
   1436     }
   1437 
   1438     @Override
   1439     public void glDeleteRenderbuffersOES(int n, int[] renderbuffers, int offset) {
   1440         checkThread();
   1441         mgl11ExtensionPack.glDeleteRenderbuffersOES(n, renderbuffers, offset);
   1442         checkError();
   1443     }
   1444 
   1445     @Override
   1446     public void glDeleteRenderbuffersOES(int n, IntBuffer renderbuffers) {
   1447         checkThread();
   1448         mgl11ExtensionPack.glDeleteRenderbuffersOES(n, renderbuffers);
   1449         checkError();
   1450     }
   1451 
   1452     @Override
   1453     public void glFramebufferRenderbufferOES(int target, int attachment,
   1454             int renderbuffertarget, int renderbuffer) {
   1455         checkThread();
   1456         mgl11ExtensionPack.glFramebufferRenderbufferOES(target, attachment, renderbuffertarget, renderbuffer);
   1457         checkError();
   1458     }
   1459 
   1460     @Override
   1461     public void glFramebufferTexture2DOES(int target, int attachment,
   1462             int textarget, int texture, int level) {
   1463         checkThread();
   1464         mgl11ExtensionPack.glFramebufferTexture2DOES(target, attachment, textarget, texture, level);
   1465         checkError();
   1466     }
   1467 
   1468     @Override
   1469     public void glGenerateMipmapOES(int target) {
   1470         checkThread();
   1471         mgl11ExtensionPack.glGenerateMipmapOES(target);
   1472         checkError();
   1473     }
   1474 
   1475     @Override
   1476     public void glGenFramebuffersOES(int n, int[] framebuffers, int offset) {
   1477         checkThread();
   1478         mgl11ExtensionPack.glGenFramebuffersOES(n, framebuffers, offset);
   1479         checkError();
   1480     }
   1481 
   1482     @Override
   1483     public void glGenFramebuffersOES(int n, IntBuffer framebuffers) {
   1484         checkThread();
   1485         mgl11ExtensionPack.glGenFramebuffersOES(n, framebuffers);
   1486         checkError();
   1487     }
   1488 
   1489     @Override
   1490     public void glGenRenderbuffersOES(int n, int[] renderbuffers, int offset) {
   1491         checkThread();
   1492         mgl11ExtensionPack.glGenRenderbuffersOES(n, renderbuffers, offset);
   1493         checkError();
   1494     }
   1495 
   1496     @Override
   1497     public void glGenRenderbuffersOES(int n, IntBuffer renderbuffers) {
   1498         checkThread();
   1499         mgl11ExtensionPack.glGenRenderbuffersOES(n, renderbuffers);
   1500         checkError();
   1501     }
   1502 
   1503     @Override
   1504     public void glGetFramebufferAttachmentParameterivOES(int target,
   1505             int attachment, int pname, int[] params, int offset) {
   1506         checkThread();
   1507         mgl11ExtensionPack.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params, offset);
   1508         checkError();
   1509     }
   1510 
   1511     @Override
   1512     public void glGetFramebufferAttachmentParameterivOES(int target,
   1513             int attachment, int pname, IntBuffer params) {
   1514         checkThread();
   1515         mgl11ExtensionPack.glGetFramebufferAttachmentParameterivOES(target, attachment, pname, params);
   1516         checkError();
   1517     }
   1518 
   1519     @Override
   1520     public void glGetRenderbufferParameterivOES(int target, int pname,
   1521             int[] params, int offset) {
   1522         checkThread();
   1523         mgl11ExtensionPack.glGetRenderbufferParameterivOES(target, pname, params, offset);
   1524         checkError();
   1525     }
   1526 
   1527     @Override
   1528     public void glGetRenderbufferParameterivOES(int target, int pname,
   1529             IntBuffer params) {
   1530         checkThread();
   1531         mgl11ExtensionPack.glGetRenderbufferParameterivOES(target, pname, params);
   1532         checkError();
   1533     }
   1534 
   1535     @Override
   1536     public void glGetTexGenfv(int coord, int pname, float[] params, int offset) {
   1537         checkThread();
   1538         mgl11ExtensionPack.glGetTexGenfv(coord, pname, params, offset);
   1539         checkError();
   1540     }
   1541 
   1542     @Override
   1543     public void glGetTexGenfv(int coord, int pname, FloatBuffer params) {
   1544         checkThread();
   1545         mgl11ExtensionPack.glGetTexGenfv(coord, pname, params);
   1546         checkError();
   1547     }
   1548 
   1549     @Override
   1550     public void glGetTexGeniv(int coord, int pname, int[] params, int offset) {
   1551         checkThread();
   1552         mgl11ExtensionPack.glGetTexGeniv(coord, pname, params, offset);
   1553         checkError();
   1554     }
   1555 
   1556     @Override
   1557     public void glGetTexGeniv(int coord, int pname, IntBuffer params) {
   1558         checkThread();
   1559         mgl11ExtensionPack.glGetTexGeniv(coord, pname, params);
   1560         checkError();
   1561     }
   1562 
   1563     @Override
   1564     public void glGetTexGenxv(int coord, int pname, int[] params, int offset) {
   1565         checkThread();
   1566         mgl11ExtensionPack.glGetTexGenxv(coord, pname, params, offset);
   1567         checkError();
   1568     }
   1569 
   1570     @Override
   1571     public void glGetTexGenxv(int coord, int pname, IntBuffer params) {
   1572         checkThread();
   1573         mgl11ExtensionPack.glGetTexGenxv(coord, pname, params);
   1574         checkError();
   1575     }
   1576 
   1577     @Override
   1578     public boolean glIsFramebufferOES(int framebuffer) {
   1579         checkThread();
   1580         boolean result = mgl11ExtensionPack.glIsFramebufferOES(framebuffer);
   1581         checkError();
   1582         return result;
   1583     }
   1584 
   1585     @Override
   1586     public boolean glIsRenderbufferOES(int renderbuffer) {
   1587         checkThread();
   1588         mgl11ExtensionPack.glIsRenderbufferOES(renderbuffer);
   1589         checkError();
   1590         return false;
   1591     }
   1592 
   1593     @Override
   1594     public void glRenderbufferStorageOES(int target, int internalformat,
   1595             int width, int height) {
   1596         checkThread();
   1597         mgl11ExtensionPack.glRenderbufferStorageOES(target, internalformat, width, height);
   1598         checkError();
   1599     }
   1600 
   1601     @Override
   1602     public void glTexGenf(int coord, int pname, float param) {
   1603         checkThread();
   1604         mgl11ExtensionPack.glTexGenf(coord, pname, param);
   1605         checkError();
   1606     }
   1607 
   1608     @Override
   1609     public void glTexGenfv(int coord, int pname, float[] params, int offset) {
   1610         checkThread();
   1611         mgl11ExtensionPack.glTexGenfv(coord, pname, params, offset);
   1612         checkError();
   1613     }
   1614 
   1615     @Override
   1616     public void glTexGenfv(int coord, int pname, FloatBuffer params) {
   1617         checkThread();
   1618         mgl11ExtensionPack.glTexGenfv(coord, pname, params);
   1619         checkError();
   1620     }
   1621 
   1622     @Override
   1623     public void glTexGeni(int coord, int pname, int param) {
   1624         checkThread();
   1625         mgl11ExtensionPack.glTexGeni(coord, pname, param);
   1626         checkError();
   1627     }
   1628 
   1629     @Override
   1630     public void glTexGeniv(int coord, int pname, int[] params, int offset) {
   1631         checkThread();
   1632         mgl11ExtensionPack.glTexGeniv(coord, pname, params, offset);
   1633         checkError();
   1634     }
   1635 
   1636     @Override
   1637     public void glTexGeniv(int coord, int pname, IntBuffer params) {
   1638         checkThread();
   1639         mgl11ExtensionPack.glTexGeniv(coord, pname, params);
   1640         checkError();
   1641     }
   1642 
   1643     @Override
   1644     public void glTexGenx(int coord, int pname, int param) {
   1645         checkThread();
   1646         mgl11ExtensionPack.glTexGenx(coord, pname, param);
   1647         checkError();
   1648     }
   1649 
   1650     @Override
   1651     public void glTexGenxv(int coord, int pname, int[] params, int offset) {
   1652         checkThread();
   1653         mgl11ExtensionPack.glTexGenxv(coord, pname, params, offset);
   1654         checkError();
   1655     }
   1656 
   1657     @Override
   1658     public void glTexGenxv(int coord, int pname, IntBuffer params) {
   1659         checkThread();
   1660         mgl11ExtensionPack.glTexGenxv(coord, pname, params);
   1661         checkError();
   1662     }
   1663 }
   1664