127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/*
227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** Copyright 2009, The Android Open Source Project
427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
524ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Licensed under the Apache License, Version 2.0 (the "License");
624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** you may not use this file except in compliance with the License.
724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** You may obtain a copy of the License at
827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
924ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes**     http://www.apache.org/licenses/LICENSE-2.0
1027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich**
1124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** Unless required by applicable law or agreed to in writing, software
1224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** distributed under the License is distributed on an "AS IS" BASIS,
1324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes** See the License for the specific language governing permissions and
1527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich** limitations under the License.
1627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich*/
1727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
1827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// This source file is automatically generated
1927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/gl.h>
212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#include <GLES/glext.h>
222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "jni.h"
2424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes#include "JNIHelp.h"
2527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <android_runtime/AndroidRuntime.h>
2627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <utils/misc.h>
2727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#include <assert.h>
282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int initialized = 0;
302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jclass nioAccessClass;
322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jclass bufferClass;
332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBasePointerID;
342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBaseArrayID;
352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jmethodID getBaseArrayOffsetID;
362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID positionID;
372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID limitID;
382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic jfieldID elementSizeShiftID;
392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
4027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
418331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian/* special calls implemented in Android's GLES wrapper used to more
428331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian * efficiently bound-check passed arrays */
438331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopianextern "C" {
442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1
458331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride,
468331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *ptr, GLsizei count);
478331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride,
488331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        const GLvoid *pointer, GLsizei count);
498331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type,
508331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
518331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias AgopianGL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type,
528331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
532ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glPointSizePointerOESBounds(GLenum type,
542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
552ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glMatrixIndexPointerOESBounds(GLint size, GLenum type,
562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
572ad0477f16c64dc3126741933f11e27353521bb4Mathias AgopianGL_API void GL_APIENTRY glWeightPointerOESBounds(GLint size, GLenum type,
582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLsizei stride, const GLvoid *pointer, GLsizei count);
592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0
612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type,
622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) {
632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    glVertexAttribPointer(indx, size, type, normalized, stride, pointer);
642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
66cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#ifdef GL_ES_VERSION_3_0
67cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFaddenstatic void glVertexAttribIPointerBounds(GLuint indx, GLint size, GLenum type,
68cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden        GLsizei stride, const GLvoid *pointer, GLsizei count) {
69cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    glVertexAttribIPointer(indx, size, type, stride, pointer);
70cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden}
71cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden#endif
728331f72078051cdf5a26230ee819f7ef7f9fcc24Mathias Agopian}
7327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* Cache method IDs each time the class is loaded. */
7527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
7627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
7724ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott HughesnativeClassInit(JNIEnv *_env, jclass glImplClass)
7827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
7927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
8027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
8127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
8327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
8427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
8527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
8627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBasePointer", "(Ljava/nio/Buffer;)J");
8727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
8827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
8927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
9027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
9127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
9227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    positionID = _env->GetFieldID(bufferClass, "position", "I");
9327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limitID = _env->GetFieldID(bufferClass, "limit", "I");
9427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShiftID =
9527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
9627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
9727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
9827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void *
9917045a16575ece34cfadb63da4791f115625df78Thomas TafertshofergetPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
10027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
10127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint position;
10227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint limit;
10327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint elementSizeShift;
10427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jlong pointer;
10527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
10627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    position = _env->GetIntField(buffer, positionID);
10727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    limit = _env->GetIntField(buffer, limitID);
10827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
10927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *remaining = (limit - position) << elementSizeShift;
11027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    pointer = _env->CallStaticLongMethod(nioAccessClass,
11127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBasePointerID, buffer);
11227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pointer != 0L) {
11327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        *array = NULL;
11427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        return (void *) (jint) pointer;
11527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
11624ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
11727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
11827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayID, buffer);
11917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    *offset = _env->CallStaticIntMethod(nioAccessClass,
12027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            getBaseArrayOffsetID, buffer);
12124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes
12217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    return NULL;
12327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
12427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
12527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
12627f8002e591b5c579f75b2580183b5d1c4219cd4Jack PalevichreleasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
12727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
12827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _env->ReleasePrimitiveArrayCritical(array, data,
1292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian                       commit ? 0 : JNI_ABORT);
13027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
13127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
13216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevichstatic void *
13316e7972f0d986eebf846ea8feb50f4435a9c6970Jack PalevichgetDirectBufferPointer(JNIEnv *_env, jobject buffer) {
13416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    char* buf = (char*) _env->GetDirectBufferAddress(buffer);
13516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    if (buf) {
13616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint position = _env->GetIntField(buffer, positionID);
13716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
13816e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        buf += position << elementSizeShift;
13916e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    } else {
14024ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes        jniThrowException(_env, "java/lang/IllegalArgumentException",
14124ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes                          "Must use a native order direct Buffer");
14216e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    }
14316e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich    return (void*) buf;
14416e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich}
14516e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich
1462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian// --------------------------------------------------------------------------
1472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian/*
1492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * returns the number of values glGet returns for a given pname.
1502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian *
1512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * The code below is written such that pnames requiring only one values
1522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * are the default (and are not explicitely tested for). This makes the
1532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * checking code much shorter/readable/efficient.
1542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian *
1552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * This means that unknown pnames (e.g.: extensions) will default to 1. If
1562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * that unknown pname needs more than 1 value, then the validation check
1572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian * is incomplete and the app may crash if it passed the wrong number params.
1582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian */
1592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic int getNeededCount(GLint pname) {
1602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int needed = 1;
1612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_ES_VERSION_2_0
1622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // GLES 2.x pnames
1632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    switch (pname) {
1642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_LINE_WIDTH_RANGE:
1652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_POINT_SIZE_RANGE:
1662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 2;
1672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
1682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_BLEND_COLOR:
1702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_CLEAR_VALUE:
1712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_WRITEMASK:
1722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SCISSOR_BOX:
1732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_VIEWPORT:
1742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 4;
1752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
1762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COMPRESSED_TEXTURE_FORMATS:
1782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
1792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
1802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SHADER_BINARY_FORMATS:
1822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &needed);
1832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
1842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
1852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
1862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#ifdef GL_VERSION_ES_CM_1_1
1882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // GLES 1.x pnames
1892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    switch (pname) {
1902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_LINE_WIDTH_RANGE:
1912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_ALIASED_POINT_SIZE_RANGE:
1922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_DEPTH_RANGE:
1932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SMOOTH_LINE_WIDTH_RANGE:
1942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SMOOTH_POINT_SIZE_RANGE:
1952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 2;
1962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
1972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
1982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_NORMAL:
1992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_POINT_DISTANCE_ATTENUATION:
2002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 3;
2012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_CLEAR_VALUE:
2042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COLOR_WRITEMASK:
2052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_COLOR:
2062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_CURRENT_TEXTURE_COORDS:
2072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_FOG_COLOR:
2082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_LIGHT_MODEL_AMBIENT:
2092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_SCISSOR_BOX:
2102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_VIEWPORT:
2112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 4;
2122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_MODELVIEW_MATRIX:
2152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_PROJECTION_MATRIX:
2162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_TEXTURE_MATRIX:
2172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            needed = 16;
2182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        case GL_COMPRESSED_TEXTURE_FORMATS:
2212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &needed);
2222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            break;
2232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2242ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian#endif
2252ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    return needed;
2262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
2272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename JTYPEARRAY, typename CTYPE, void GET(GLenum, CTYPE*)>
2292ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void
2302ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianget
2312ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian  (JNIEnv *_env, jobject _this, jint pname, JTYPEARRAY params_ref, jint offset) {
2322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _exception = 0;
2332ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType;
2342ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage;
2352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params_base = (CTYPE *) 0;
2362ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _remaining;
2372ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params = (CTYPE *) 0;
2382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int _needed = 0;
2392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2402ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (!params_ref) {
2412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
2422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
2432ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "params == null";
2442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
2452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2462ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (offset < 0) {
2472ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
2482ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
2492ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "offset < 0";
2502ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
2512ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2522ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _remaining = _env->GetArrayLength(params_ref) - offset;
2532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _needed = getNeededCount(pname);
2542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // if we didn't find this pname, we just assume the user passed
2552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // an array of the right size -- this might happen with extensions
2562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // or if we forget an enum here.
2572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_remaining < _needed) {
2582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
2592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
2602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "length - offset < needed";
2612ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
2622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    params_base = (CTYPE *)
2642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
2652ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    params = params_base + offset;
2662ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2672ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    GET(
2682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (GLenum)pname,
2692ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (CTYPE *)params
2702ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    );
2712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2722ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit:
2732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (params_base) {
2742ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
2752ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _exception ? JNI_ABORT: 0);
2762ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_exception) {
2782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        jniThrowException(_env, _exceptionType, _exceptionMessage);
2792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
2802ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian}
2812ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2822ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiantemplate <typename CTYPE, void GET(GLenum, CTYPE*)>
2842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianstatic void
2852ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopiangetarray
2862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
2872ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _exception = 0;
2882ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType;
2892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage;
2902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jarray _array = (jarray) 0;
2912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _bufferOffset = (jint) 0;
2922ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    jint _remaining;
2932ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    CTYPE *params = (CTYPE *) 0;
2942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    int _needed = 0;
2952ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
2962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    params = (CTYPE *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
297cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    _remaining /= sizeof(CTYPE);    // convert from bytes to item count
2982ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    _needed = getNeededCount(pname);
2992ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // if we didn't find this pname, we just assume the user passed
3002ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // an array of the right size -- this might happen with extensions
3012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    // or if we forget an enum here.
3022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_needed>0 && _remaining < _needed) {
3032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exception = 1;
3042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionType = "java/lang/IllegalArgumentException";
3052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        _exceptionMessage = "remaining() < needed";
3062ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        goto exit;
3072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (params == NULL) {
3092ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
3102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        params = (CTYPE *) (_paramsBase + _bufferOffset);
3112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    GET(
3132ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (GLenum)pname,
3142ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        (CTYPE *)params
3152ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    );
3162ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian
3172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopianexit:
3182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_array) {
3192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE);
3202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
3212ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    if (_exception) {
3222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian        jniThrowException(_env, _exceptionType, _exceptionMessage);
3232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    }
324be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich}
325be509c9c7de5929d014dfe6d45e71cc8454ede0fJack Palevich
32627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich// --------------------------------------------------------------------------
32727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glActiveTexture ( GLenum texture ) */
32827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
32927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glActiveTexture__I
33027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
33127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glActiveTexture(
33227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
33327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
33427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
33527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
33627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFunc ( GLenum func, GLclampf ref ) */
33727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
33827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFunc__IF
33927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jfloat ref) {
34027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFunc(
34127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
34227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)ref
34327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
34427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
34527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
34627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */
34727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
34827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glAlphaFuncx__II
34927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref) {
35027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glAlphaFuncx(
35127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
35227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)ref
35327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
35427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
35527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
35627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBindTexture ( GLenum target, GLuint texture ) */
35727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
35827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBindTexture__II
35927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint texture) {
36027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBindTexture(
36127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
36227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)texture
36327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
36427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
36527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
36627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */
36727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
36827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glBlendFunc__II
36927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) {
37027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glBlendFunc(
37127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)sfactor,
37227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)dfactor
37327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
37427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
37527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
37627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClear ( GLbitfield mask ) */
37727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
37827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClear__I
37927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
38027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClear(
38127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLbitfield)mask
38227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
38327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
38427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
38527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */
38627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
38727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColor__FFFF
38827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
38927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColor(
39027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)red,
39127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)green,
39227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)blue,
39327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)alpha
39427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
39527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
39627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
39727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */
39827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
39927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearColorx__IIII
40027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
40127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearColorx(
40227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)red,
40327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)green,
40427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)blue,
40527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)alpha
40627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
40727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
40827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
40927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthf ( GLclampf depth ) */
41027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
41127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthf__F
41227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat depth) {
41327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthf(
41427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)depth
41527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
41627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
41727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
41827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearDepthx ( GLclampx depth ) */
41927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
42027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearDepthx__I
42127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint depth) {
42227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearDepthx(
42327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)depth
42427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
42527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
42627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
42727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClearStencil ( GLint s ) */
42827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
42927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClearStencil__I
43027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint s) {
43127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClearStencil(
43227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)s
43327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
43427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
43527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
43627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glClientActiveTexture ( GLenum texture ) */
43727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
43827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glClientActiveTexture__I
43927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint texture) {
44027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glClientActiveTexture(
44127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)texture
44227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
44327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
44427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
44527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */
44627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
44727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4f__FFFF
44827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) {
44927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4f(
45027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)red,
45127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)green,
45227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)blue,
45327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)alpha
45427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
45527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
45627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
45727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */
45827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
45927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColor4x__IIII
46027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) {
46127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColor4x(
46227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)red,
46327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)green,
46427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)blue,
46527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)alpha
46627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
46727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
46827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
46927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */
47027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
47127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorMask__ZZZZ
47227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) {
47327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorMask(
47427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)red,
47527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)green,
47627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)blue,
47727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)alpha
47827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
47927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
48027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
48127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
48227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
48327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glColorPointerBounds__IIILjava_nio_Buffer_2I
48427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
48527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
48617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
48727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
48827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
48927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
490e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
49116e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
492e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
493e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
494e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
495e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
49627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glColorPointerBounds(
49727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
49827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
49927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
50027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
50127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
50227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
50327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
50427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
50527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */
50627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
50727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2
50827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) {
50927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
51017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
51127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
51227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
51327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
51417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
51517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
51617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
51717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
51817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
51927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexImage2D(
52027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
52127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
52227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
52327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
52427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
52527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
52627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
52727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
52827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
52927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
53027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
53127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
53227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
53327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
53427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */
53527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
53627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
53727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) {
53827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
53917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
54027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
54127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *data = (GLvoid *) 0;
54227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
54317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset);
54417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (data == NULL) {
54517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
54617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        data = (GLvoid *) (_dataBase + _bufferOffset);
54717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
54827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCompressedTexSubImage2D(
54927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
55027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
55127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
55227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
55327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
55427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
55527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
55627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)imageSize,
55727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)data
55827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
55927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
56027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, data, JNI_FALSE);
56127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
56227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
56327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
56427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */
56527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
56627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexImage2D__IIIIIIII
56727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) {
56827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexImage2D(
56927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
57027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
57127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)internalformat,
57227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
57327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
57427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
57527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
57627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border
57727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
57827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
57927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
58027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */
58127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
58227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCopyTexSubImage2D__IIIIIIII
58327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) {
58427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCopyTexSubImage2D(
58527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
58627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
58727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
58827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
58927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
59027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
59127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
59227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
59327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
59427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
59527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
59627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glCullFace ( GLenum mode ) */
59727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
59827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glCullFace__I
59927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
60027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glCullFace(
60127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
60227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
60327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
60427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
60527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
60627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
60727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__I_3II
60827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
6092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6102ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
6112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
61227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
61327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
61427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
61527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
61627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
6172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
62027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
6232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
62627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
62727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
62827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
62927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
6302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
63327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
63427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
63527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
63627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
63727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
63827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
63927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
64027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
64127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
64227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
64327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
64427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
64527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
64627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
64727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
64827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
6492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
6502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
6512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
65227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
65327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
65427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */
65527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
65627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDeleteTextures__ILjava_nio_IntBuffer_2
65727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
6582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
6592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
6602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
66127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
66217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
66327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
66427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
66527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
66617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
66727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
6682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
6692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
6702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
67127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
67227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
67317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
67417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
67517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
67617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
67727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDeleteTextures(
67827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
67927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
68027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
68127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
68227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
68327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
68427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, JNI_FALSE);
68527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
6862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
6872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
6882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
68927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
69027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
69127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthFunc ( GLenum func ) */
69227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
69327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthFunc__I
69427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func) {
69527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthFunc(
69627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func
69727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
69827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
69927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
70027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthMask ( GLboolean flag ) */
70127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
70227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthMask__Z
70327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jboolean flag) {
70427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthMask(
70527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)flag
70627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
70727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
70827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
70927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */
71027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
71127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangef__FF
71227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) {
71327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangef(
71427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zNear,
71527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)zFar
71627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
71727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
71827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
71927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */
72027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
72127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDepthRangex__II
72227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint zNear, jint zFar) {
72327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDepthRangex(
72427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zNear,
72527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)zFar
72627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
72727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
72827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
72927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisable ( GLenum cap ) */
73027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
73127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisable__I
73227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
73327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisable(
73427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
73527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
73627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
73727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
73827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDisableClientState ( GLenum array ) */
73927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
74027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDisableClientState__I
74127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
74227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDisableClientState(
74327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
74427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
74527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
74627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
74727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */
74827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
74927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawArrays__III
75027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) {
75127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawArrays(
75227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
75327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)first,
75427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count
75527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
75627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
75727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
75827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */
75927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
76027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glDrawElements__IIILjava_nio_Buffer_2
76127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) {
7622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
7632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
7642ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
76527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
76617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
76727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
76827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *indices = (GLvoid *) 0;
76927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
77017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
77127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < count) {
7722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
7732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
7742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < count < needed";
77527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
77627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
77717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (indices == NULL) {
77817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
77917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        indices = (GLvoid *) (_indicesBase + _bufferOffset);
78017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
78127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glDrawElements(
78227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode,
78327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)count,
78427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
78527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)indices
78627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
78727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
78827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
78927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
79027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, indices, JNI_FALSE);
79127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
7922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
7932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
7942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
79527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
79627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
79727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnable ( GLenum cap ) */
79827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
79927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnable__I
80027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint cap) {
80127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnable(
80227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)cap
80327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
80427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
80527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
80627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glEnableClientState ( GLenum array ) */
80727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
80827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glEnableClientState__I
80927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint array) {
81027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glEnableClientState(
81127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)array
81227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
81327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
81427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
81527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFinish ( void ) */
81627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
81727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFinish__
81827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
81927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFinish();
82027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
82127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
82227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFlush ( void ) */
82327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
82427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFlush__
82527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
82627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFlush();
82727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
82827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
82927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogf ( GLenum pname, GLfloat param ) */
83027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
83127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogf__IF
83227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
83327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogf(
83427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
83527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
83627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
83727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
83827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
83927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
84027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
84127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__I_3FI
84227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
8432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
8442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
8452ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
84627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
84727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
84827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
84927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
85027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
8512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
85427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
85527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
85627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
8572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
86027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
86127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
86227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
86327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
86427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
86527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
86627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
86727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
86827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
86927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
87027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
8712ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
87227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
87327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
87427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
8752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
8762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
8772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
87827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
87927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
88027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
88127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
88227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
88327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
88427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
88527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
88627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
88727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
88827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
88927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
89027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
89127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
89227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
89327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
8942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
8952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
8962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
89727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
89827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
89927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogfv ( GLenum pname, const GLfloat *params ) */
90027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
90127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogfv__ILjava_nio_FloatBuffer_2
90227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
9032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
9042ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
9052ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
90627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
90717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
90827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
90927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
91027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
91117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
91227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
91327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
91427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
91527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
91627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
91727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
91827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
91927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
9202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
92127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
92227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
92327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
9242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
92727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
92827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
92917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
93017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
93117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
93217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
93327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogfv(
93427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
93527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
93627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
93727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
93827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
93927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
94027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
94127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
9422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
9432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
9442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
94527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
94627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
94727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogx ( GLenum pname, GLfixed param ) */
94827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
94927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogx__II
95027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
95127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogx(
95227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
95327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
95427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
95527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
95627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
95727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
95827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
95927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__I_3II
96027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
9612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
9622ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
9632ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
96427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
96527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
96627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
96727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
96827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
9692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9712545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
97227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
97327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
97427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
9752545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9762545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
97827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
97927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
98027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
98127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
98227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
98327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
98427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
98527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
98627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
98727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
98827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
9892ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
99027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
99127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
99227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
9932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
9942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
9952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
99627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
99727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
99827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
99927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
100027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
100127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
100227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
100327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
100427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
100527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
100627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
100727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
100827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
100927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
101027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
101127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
10122545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10132545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10142545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
101527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
101627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
101727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFogxv ( GLenum pname, const GLfixed *params ) */
101827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
101927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFogxv__ILjava_nio_IntBuffer_2
102027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
10212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
10222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
10232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
102427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
102517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
102627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
102727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
102827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
102917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
103027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
103127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
103227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_FOG_COLOR)
103327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_FOG_COLOR:
103427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_FOG_COLOR)
103527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
103627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
103727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
10382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
103927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
104027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
104127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
10422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
10432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
10442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
104527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
104627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
104717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
104817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
104917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
105017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
105127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFogxv(
105227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
105327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
105427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
105527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
105627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
105727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
105827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
105927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
10602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
10612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
10622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
106327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
106427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
106527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrontFace ( GLenum mode ) */
106627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
106727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrontFace__I
106827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
106927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrontFace(
107027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
107127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
107227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
107327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
107427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
107527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
107627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumf__FFFFFF
107727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
107827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumf(
107927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
108027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
108127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
108227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
108327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
108427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
108527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
108627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
108727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
108827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
108927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
109027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glFrustumx__IIIIII
109127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
109227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glFrustumx(
109327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
109427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
109527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
109627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
109727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
109827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
109927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
110027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
110127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
110227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
110327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
110427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__I_3II
110527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) {
110627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
11072ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
11082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
110927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures_base = (GLuint *) 0;
111027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
111127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
111227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
111327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!textures_ref) {
111427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
11152545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "textures == null";
111727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
111827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
111927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
112027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
11212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
112327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
112427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
112527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(textures_ref) - offset;
112627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
112727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
11282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < n < needed";
113027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
113127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
113227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures_base = (GLuint *)
113327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0);
113427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    textures = textures_base + offset;
113527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
113627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
113727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
113827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
113927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
114027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
114127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
114227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (textures_base) {
114327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base,
114427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _exception ? JNI_ABORT: 0);
114527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
11462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
11472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
11482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
114927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
115027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
115127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGenTextures ( GLsizei n, GLuint *textures ) */
115227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
115327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGenTextures__ILjava_nio_IntBuffer_2
115427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) {
115527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _exception = 0;
11562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
11572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
115827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
115917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
116027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
116127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLuint *textures = (GLuint *) 0;
116227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
116317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset);
116427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < n) {
116527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _exception = 1;
11662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
11672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < n < needed";
116827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
116927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
117017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (textures == NULL) {
117117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
117217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        textures = (GLuint *) (_texturesBase + _bufferOffset);
117317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
117427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glGenTextures(
117527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)n,
117627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint *)textures
117727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
117827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
117927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
118027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
118127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE);
118227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
11832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
11842545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
11852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
118627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
118727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
118827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* GLenum glGetError ( void ) */
118927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic jint
119027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetError__
119127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
119227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLenum _returnValue;
119327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _returnValue = glGetError();
1194cee5198e7199fcbb131ff0d30165fb1d5c0107cfAndy McFadden    return (jint)_returnValue;
119527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
119627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
119727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
119827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
119927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__I_3II
120027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
12012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    get<jintArray, GLint, glGetIntegerv>(_env, _this, pname, params_ref, offset);
120227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
120327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
120427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glGetIntegerv ( GLenum pname, GLint *params ) */
120527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
120627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glGetIntegerv__ILjava_nio_IntBuffer_2
120727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
12082ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    getarray<GLint, glGetIntegerv>(_env, _this, pname, params_buf);
120927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
121027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
121127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* const GLubyte * glGetString ( GLenum name ) */
121224ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughesstatic jstring android_glGetString(JNIEnv* _env, jobject, jint name) {
121324ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    const char* chars = (const char*) glGetString((GLenum) name);
121424ce5fb2cc09d0a14406e7b935f8648c5720d27eElliott Hughes    return _env->NewStringUTF(chars);
121527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
121627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glHint ( GLenum target, GLenum mode ) */
121727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
121827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glHint__II
121927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint mode) {
122027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glHint(
122127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
122227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
122327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
122427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
122527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
122627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelf ( GLenum pname, GLfloat param ) */
122727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
122827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelf__IF
122927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloat param) {
123027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelf(
123127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
123227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
123327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
123427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
123527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
123627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
123727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
123827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__I_3FI
123927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) {
12402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
12412ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
12422ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
124327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
124427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
124527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
124627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
124727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
12482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
12492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
125127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
125227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
125327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
12542545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
12552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
125727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
125827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
125927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
126027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
126127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
126227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
126327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
126427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
126527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
126627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
126727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
12682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
126927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
127027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
127127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
12722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
12732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
12742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
127527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
127627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
127727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
127827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
127927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
128027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
128127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
128227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
128327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
128427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
128527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
128627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
128727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
128827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
128927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
129027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
12912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
12922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
12932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
129427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
129527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
129627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */
129727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
129827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelfv__ILjava_nio_FloatBuffer_2
129927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
13002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
13012ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
13022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
130327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
130417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
130527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
130627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
130727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
130817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
130927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
131027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
131127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
131227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
131327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
131427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
131527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
131627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
13172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
131827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
131927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
132027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
13212545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
13222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
132427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
132527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
132617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
132717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
132817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
132917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
133027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelfv(
133127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
133227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
133327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
133427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
133527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
133627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
133727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
133827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
13392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
13402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
13412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
134227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
134327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
134427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelx ( GLenum pname, GLfixed param ) */
134527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
134627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelx__II
134727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
134827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelx(
134927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
135027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
135127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
135227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
135327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
135427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
135527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
135627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__I_3II
135727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) {
13582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
13592ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
13602ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
136127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
136227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
136327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
136427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
136527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
13662545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
13672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
136927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
137027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
137127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
13722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
13732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
137527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
137627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
137727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
137827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
137927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
138027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
138127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
138227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
138327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
138427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
138527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
13862ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
138727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
138827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
138927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
13902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
13912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
13922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
139327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
139427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
139527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
139627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
139727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
139827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
139927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
140027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
140127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
140227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
140327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
140427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
140527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
140627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
140727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
140827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
14092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
14102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
14112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
141227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
141327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
141427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */
141527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
141627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightModelxv__ILjava_nio_IntBuffer_2
141727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) {
14182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
14192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
14202ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
142127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
142217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
142327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
142427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
142527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
142617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
142727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
142827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
142927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_LIGHT_MODEL_AMBIENT)
143027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_LIGHT_MODEL_AMBIENT:
143127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_LIGHT_MODEL_AMBIENT)
143227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
143327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
143427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
14352ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
143627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
143727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
143827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
14392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
14402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
144227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
144327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
144417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
144517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
144617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
144717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
144827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightModelxv(
144927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
145027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
145127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
145227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
145327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
145427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
145527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
145627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
14572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
14582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
14592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
146027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
146127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
146227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */
146327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
146427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightf__IIF
146527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) {
146627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightf(
146727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
146827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
146927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
147027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
147127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
147227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
147327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
147427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
147527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__II_3FI
147627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) {
14772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
14782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
14792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
148027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
148127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
148227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
148327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
148427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
14852545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
14862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
148827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
148927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
149027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
14912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
14922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
14932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
149427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
149527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
149627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
149727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
149827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
149927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
150027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
150127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
150227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
150327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
150427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
150527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
150627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
150727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
150827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
150927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
151027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
151127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
151227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
151327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
151427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
151527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
151627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
151727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
151827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
15192ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
152027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
152127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
152227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
15232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
15242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
15252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
152627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
152727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
152827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
152927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
153027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
153127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
153227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
153327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
153427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
153527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
153627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
153727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
153827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
153927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
154027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
154127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
154227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
15432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
15442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
15452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
154627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
154727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
154827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */
154927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
155027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightfv__IILjava_nio_FloatBuffer_2
155127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
15522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
15532ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
15542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
155527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
155617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
155727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
155827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
155927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
156017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
156127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
156227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
156327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
156427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
156527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
156627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
156727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
156827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
156927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
157027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
157127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
157227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
157327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
157427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
157527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
157627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
157727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
157827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
157927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
158027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
158127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
158227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
15832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
158427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
158527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
158627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
15872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
15882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
15892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
159027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
159127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
159217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
159317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
159417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
159517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
159627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightfv(
159727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
159827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
159927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
160027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
160127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
160227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
160327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
160427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
160527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
16062545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
16072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
16082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
160927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
161027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
161127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */
161227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
161327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightx__III
161427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) {
161527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightx(
161627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
161727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
161827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
161927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
162027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
162127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
162227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
162327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
162427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__II_3II
162527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) {
16262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
16272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
16282ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
162927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
163027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
163127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
163227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
163327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
16342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
16352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
16362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
163727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
163827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
163927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
16402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
16412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
16422545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
164327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
164427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
164527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
164627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
164727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
164827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
164927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
165027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
165127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
165227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
165327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
165427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
165527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
165627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
165727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
165827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
165927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
166027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
166127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
166227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
166327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
166427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
166527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
166627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
166727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
16682ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
166927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
167027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
167127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
16722545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
16732545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
16742545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
167527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
167627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
167727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
167827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
167927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
168027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
168127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
168227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
168327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
168427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
168527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
168627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
168727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
168827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
168927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
169027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
169127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
16922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
16932545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
16942545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
169527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
169627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
169727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */
169827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
169927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLightxv__IILjava_nio_IntBuffer_2
170027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) {
17012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
17022ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
17032ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
170427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
170517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
170627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
170727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
170827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
170917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
171027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
171127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
171227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPOT_DIRECTION)
171327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPOT_DIRECTION:
171427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPOT_DIRECTION)
171527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 3;
171627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
171727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
171827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
171927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
172027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
172127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
172227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
172327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
172427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
172527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
172627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
172727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
172827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
172927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
173027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
173127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
17322ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
173327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
173427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
173527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
17362545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
17372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17382545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
173927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
174027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
174117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
174217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
174317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
174417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
174527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLightxv(
174627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)light,
174727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
174827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
174927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
175027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
175127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
175227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
175327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
175427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
17552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
17562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
17572545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
175827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
175927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
176027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidth ( GLfloat width ) */
176127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
176227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidth__F
176327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat width) {
176427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidth(
176527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)width
176627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
176727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
176827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
176927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLineWidthx ( GLfixed width ) */
177027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
177127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLineWidthx__I
177227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint width) {
177327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLineWidthx(
177427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)width
177527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
177627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
177727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
177827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadIdentity ( void ) */
177927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
178027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadIdentity__
178127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
178227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadIdentity();
178327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
178427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
178527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
178627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
178727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf___3FI
178827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
17892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
17902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
17912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
179227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
179327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
179427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
179527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
179627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
17972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
17982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
17992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
180027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
180127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
180227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
18032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
180627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
180727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
180827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
180927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
181027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
181127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
181227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
181327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
181427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
181527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
181627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
181727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
181827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
181927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
182027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
182127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
18222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
182527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
182627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
182727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixf ( const GLfloat *m ) */
182827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
182927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixf__Ljava_nio_FloatBuffer_2
183027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
183127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
183217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
183327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
183427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
183527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
183617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
183717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
183817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
183917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
184017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
184127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixf(
184227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
184327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
184427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
184527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
184627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
184727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
184827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
184927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
185027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
185127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx___3II
185227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
18532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
18542ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
18552ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
185627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
185727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
185827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
185927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
186027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
18612545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
186427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
186527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
186627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
18672545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
18682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
18692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
187027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
187127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
187227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
187327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
187427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
187527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
187627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
187727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
187827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
187927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
188027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
188127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
188227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
188327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
188427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
188527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
18862545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
18872545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
18882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
188927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
189027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
189127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLoadMatrixx ( const GLfixed *m ) */
189227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
189327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLoadMatrixx__Ljava_nio_IntBuffer_2
189427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
189527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
189617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
189727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
189827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
189927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
190017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
190117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
190217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
190317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
190417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
190527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLoadMatrixx(
190627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
190727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
190827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
190927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
191027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
191127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
191227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
191327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glLogicOp ( GLenum opcode ) */
191427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
191527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glLogicOp__I
191627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint opcode) {
191727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glLogicOp(
191827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)opcode
191927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
192027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
192127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
192227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */
192327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
192427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialf__IIF
192527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) {
192627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialf(
192727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
192827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
192927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
193027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
193127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
193227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
193327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
193427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
193527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__II_3FI
193627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) {
19372545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
19382ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
19392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
194027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
194127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
194227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
194327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
194427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
19452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
194827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
194927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
195027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
19512545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19522545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19532545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
195427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
195527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
195627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
195727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
195827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
195927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
196027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
196127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
196227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
196327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
196427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
196527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
196627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
196727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
196827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
196927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
197027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
197127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
197227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
197327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
197427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
197527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
197627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
19772ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
197827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
197927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
198027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
19812545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
19822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
19832545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
198427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
198527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
198627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
198727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
198827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
198927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
199027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
199127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
199227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
199327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
199427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
199527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
199627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
199727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
199827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
199927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
200027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20012545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20022545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
200427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
200527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
200627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */
200727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
200827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialfv__IILjava_nio_FloatBuffer_2
200927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
20102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20112ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
20122ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
201327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
201417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
201527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
201627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
201727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
201817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
201927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
202027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
202127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
202227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
202327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
202427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
202527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
202627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
202727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
202827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
202927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
203027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
203127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
203227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
203327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
203427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
203527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
203627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
203727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
203827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
20392ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
204027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
204127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
204227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
20432545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20442545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20452545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
204627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
204727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
204817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
204917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
205017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
205117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
205227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialfv(
205327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
205427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
205527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
205627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
205727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
205827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
205927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
206027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
206127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
20622545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
20632545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
20642545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
206527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
206627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
206727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */
206827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
206927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialx__III
207027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) {
207127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialx(
207227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
207327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
207427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
207527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
207627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
207727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
207827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
207927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
208027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__II_3II
208127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) {
20822545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
20832ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
20842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
208527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
208627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
208727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
208827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
208927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
20902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20912545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20922545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
209327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
209427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
209527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
20962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
20972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
20982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
209927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
210027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
210127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
210227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
210327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
210427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
210527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
210627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
210727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
210827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
210927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
211027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
211127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
211227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
211327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
211427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
211527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
211627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
211727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
211827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
211927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
212027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
212127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
21222ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
212327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
212427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
212527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
21262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
212927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
213027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
213127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
213227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
213327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
213427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
213527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
213627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
213727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
213827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
213927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
214027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
214127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
214227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
214327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
214427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
214527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
21462545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
21472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
21482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
214927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
215027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
215127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */
215227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
215327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMaterialxv__IILjava_nio_IntBuffer_2
215427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) {
21552545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
21562ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
21572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
215827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
215917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
216027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
216127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
216227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
216317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
216427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
216527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
216627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT)
216727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT:
216827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT)
216927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_DIFFUSE)
217027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_DIFFUSE:
217127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_DIFFUSE)
217227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_SPECULAR)
217327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_SPECULAR:
217427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_SPECULAR)
217527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_EMISSION)
217627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_EMISSION:
217727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_EMISSION)
217827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_AMBIENT_AND_DIFFUSE)
217927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_AMBIENT_AND_DIFFUSE:
218027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_AMBIENT_AND_DIFFUSE)
218127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
218227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
218327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
21842ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
218527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
218627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
218727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
21882545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
21892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
21902545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
219127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
219227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
219317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
219417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
219517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
219617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
219727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMaterialxv(
219827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)face,
219927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
220027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
220127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
220227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
220327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
220427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
220527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
220627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
22072545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
22082545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
22092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
221027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
221127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
221227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMatrixMode ( GLenum mode ) */
221327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
221427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMatrixMode__I
221527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
221627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMatrixMode(
221727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
221827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
221927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
222027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
222127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
222227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
222327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf___3FI
222427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) {
22252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
22262ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
22272ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
222827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m_base = (GLfloat *) 0;
222927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
223027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
223127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
223227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
22332545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22352545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
223627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
223727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
223827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
22392545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22402545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22412545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
224227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
224327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
224427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
224527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfloat *)
224627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
224727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
224827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
224927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
225027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
225127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
225227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
225327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
225427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
225527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
225627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
225727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
22582545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
22592545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
22602545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
226127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
226227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
226327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixf ( const GLfloat *m ) */
226427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
226527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixf__Ljava_nio_FloatBuffer_2
226627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
226727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
226817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
226927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
227027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *m = (GLfloat *) 0;
227127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
227217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
227317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
227417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
227517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfloat *) (_mBase + _bufferOffset);
227617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
227727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixf(
227827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)m
227927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
228027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
228127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
228227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
228327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
228427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
228527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
228627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
228727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx___3II
228827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) {
22892545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
22902ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
22912ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
229227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m_base = (GLfixed *) 0;
229327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
229427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
229527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
229627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!m_ref) {
22972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
22982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
22992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "m == null";
230027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
230127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
230227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
23032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
23042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
23052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
230627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
230727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
230827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(m_ref) - offset;
230927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m_base = (GLfixed *)
231027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0);
231127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    m = m_base + offset;
231227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
231327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
231427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
231527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
231627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
231727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
231827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (m_base) {
231927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(m_ref, m_base,
232027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
232127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
23222545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
23232545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
23242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
232527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
232627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
232727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultMatrixx ( const GLfixed *m ) */
232827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
232927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultMatrixx__Ljava_nio_IntBuffer_2
233027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jobject m_buf) {
233127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
233217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
233327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
233427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *m = (GLfixed *) 0;
233527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
233617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining, &_bufferOffset);
233717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (m == NULL) {
233817045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _mBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
233917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        m = (GLfixed *) (_mBase + _bufferOffset);
234017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
234127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultMatrixx(
234227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)m
234327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
234427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
234527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, m, JNI_FALSE);
234627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
234727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
234827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
234927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */
235027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
235127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4f__IFFFF
235227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) {
235327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4f(
235427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
235527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)s,
235627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)t,
235727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)r,
235827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)q
235927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
236027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
236127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
236227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */
236327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
236427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glMultiTexCoord4x__IIIII
236527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) {
236627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glMultiTexCoord4x(
236727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
236827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)s,
236927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)t,
237027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)r,
237127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)q
237227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
237327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
237427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
237527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */
237627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
237727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3f__FFF
237827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) {
237927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3f(
238027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nx,
238127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)ny,
238227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)nz
238327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
238427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
238527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
238627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */
238727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
238827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormal3x__III
238927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) {
239027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormal3x(
239127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nx,
239227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)ny,
239327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)nz
239427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
239527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
239627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
239727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */
239827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
239927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glNormalPointerBounds__IILjava_nio_Buffer_2I
240027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) {
240127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
240217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
240327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
240427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
240527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2406e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
240716e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2408e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
2409e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
2410e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
2411e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
241227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glNormalPointerBounds(
241327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
241427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
241527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
241627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
241727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
241827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
241927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
242027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */
242127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
242227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthof__FFFFFF
242327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) {
242427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthof(
242527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)left,
242627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)right,
242727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)bottom,
242827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)top,
242927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zNear,
243027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)zFar
243127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
243227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
243327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
243427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */
243527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
243627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glOrthox__IIIIII
243727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) {
243827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glOrthox(
243927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)left,
244027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)right,
244127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)bottom,
244227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)top,
244327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zNear,
244427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)zFar
244527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
244627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
244727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
244827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPixelStorei ( GLenum pname, GLint param ) */
244927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
245027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPixelStorei__II
245127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint pname, jint param) {
245227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPixelStorei(
245327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
245427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)param
245527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
245627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
245727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
245827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSize ( GLfloat size ) */
245927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
246027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSize__F
246127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat size) {
246227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSize(
246327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)size
246427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
246527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
246627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
246727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPointSizex ( GLfixed size ) */
246827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
246927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPointSizex__I
247027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size) {
247127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPointSizex(
247227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)size
247327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
247427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
247527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
247627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */
247727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
247827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffset__FF
247927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) {
248027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffset(
248127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)factor,
248227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)units
248327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
248427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
248527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
248627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */
248727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
248827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPolygonOffsetx__II
248927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint factor, jint units) {
249027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPolygonOffsetx(
249127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)factor,
249227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)units
249327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
249427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
249527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
249627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPopMatrix ( void ) */
249727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
249827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPopMatrix__
249927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
250027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPopMatrix();
250127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
250227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
250327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glPushMatrix ( void ) */
250427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
250527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glPushMatrix__
250627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this) {
250727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glPushMatrix();
250827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
250927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
251027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */
251127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
251227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glReadPixels__IIIIIILjava_nio_Buffer_2
251327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) {
251427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
251517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
251627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
251727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
251827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
251917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
252017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (pixels == NULL) {
252117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
252217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
252317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
252427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glReadPixels(
252527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
252627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
252727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
252827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
252927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
253027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
253127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
253227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
253327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
25342545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        releasePointer(_env, _array, pixels, JNI_TRUE);
253527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
253627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
253727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
253827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */
253927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
254027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatef__FFFF
254127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) {
254227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatef(
254327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)angle,
254427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
254527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
254627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
254727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
254827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
254927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
255027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */
255127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
255227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glRotatex__IIII
255327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) {
255427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glRotatex(
255527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)angle,
255627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
255727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
255827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
255927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
256027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
256127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
256227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */
256327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
256427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoverage__FZ
256527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) {
256627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoverage(
256727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampf)value,
256827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
256927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
257027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
257127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
257227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */
257327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
257427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glSampleCoveragex__IZ
257527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint value, jboolean invert) {
257627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glSampleCoveragex(
257727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLclampx)value,
257827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLboolean)invert
257927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
258027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
258127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
258227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */
258327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
258427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalef__FFF
258527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
258627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalef(
258727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
258827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
258927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
259027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
259127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
259227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
259327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */
259427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
259527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScalex__III
259627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
259727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScalex(
259827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
259927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
260027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
260127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
260227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
260327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
260427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */
260527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
260627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glScissor__IIII
260727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
260827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glScissor(
260927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
261027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
261127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
261227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
261327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
261427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
261527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
261627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glShadeModel ( GLenum mode ) */
261727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
261827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glShadeModel__I
261927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mode) {
262027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glShadeModel(
262127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)mode
262227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
262327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
262427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
262527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */
262627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
262727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilFunc__III
262827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) {
262927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilFunc(
263027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)func,
263127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)ref,
263227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
263327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
263427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
263527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
263627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilMask ( GLuint mask ) */
263727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
263827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilMask__I
263927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint mask) {
264027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilMask(
264127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLuint)mask
264227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
264327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
264427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
264527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */
264627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
264727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glStencilOp__III
264827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) {
264927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glStencilOp(
265027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)fail,
265127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zfail,
265227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)zpass
265327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
265427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
265527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
265627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
265727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
265827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
265927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
266027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
266117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
266227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
266327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
266427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
2665e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
266616e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
2667e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
2668e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
2669e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
2670e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
267127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexCoordPointerBounds(
267227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
267327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
267427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
267527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
267627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
267727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
267827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
267927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
268027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */
268127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
268227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvf__IIF
268327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
268427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvf(
268527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
268627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
268727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
268827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
268927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
269027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
269127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
269227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
269327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__II_3FI
269427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) {
26952545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
26962ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
26972ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
269827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params_base = (GLfloat *) 0;
269927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
270027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
270127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
270227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
27032545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27042545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27052545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
270627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
270727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
270827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
27092545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27102545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27112545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
271227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
271327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
271427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
271527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
271627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
271727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
271827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
271927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
272027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
272127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
272227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
27232ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
272427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
272527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
272627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
27272545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27282545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27292545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
273027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
273127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
273227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfloat *)
273327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
273427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
273527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
273627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
273727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
273827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
273927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
274027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
274127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
274227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
274327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
274427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
274527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
274627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
27472545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
27482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
27492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
275027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
275127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
275227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */
275327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
275427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvfv__IILjava_nio_FloatBuffer_2
275527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
27562545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
27572ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
27582ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
275927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
276017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
276127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
276227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfloat *params = (GLfloat *) 0;
276327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
276417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
276527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
276627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
276727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
276827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
276927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
277027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
277127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
277227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
27732ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
277427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
277527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
277627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
27772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
27782545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
27792545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
278027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
278127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
278217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
278317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
278417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfloat *) (_paramsBase + _bufferOffset);
278517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
278627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvfv(
278727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
278827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
278927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat *)params
279027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
279127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
279227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
279327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
279427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
279527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
27962545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
27972545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
27982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
279927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
280027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
280127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */
280227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
280327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvx__III
280427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
280527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvx(
280627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
280727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
280827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
280927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
281027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
281127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
281227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
281327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
281427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__II_3II
281527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) {
28162545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
28172ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
28182ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
281927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params_base = (GLfixed *) 0;
282027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
282127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
282227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
282327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (!params_ref) {
28242545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28252545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28262545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "params == null";
282727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
282827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
282927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (offset < 0) {
28302545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28312545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28322545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "offset < 0";
283327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
283427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
283527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    _remaining = _env->GetArrayLength(params_ref) - offset;
283627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
283727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
283827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
283927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
284027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
284127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
284227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
284327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
28442ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
284527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
284627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
284727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
28482545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28492545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
28502545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "length - offset < needed";
285127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
285227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
285327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params_base = (GLfixed *)
285427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0);
285527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    params = params_base + offset;
285627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
285727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
285827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
285927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
286027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
286127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
286227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
286327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
286427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (params_base) {
286527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        _env->ReleasePrimitiveArrayCritical(params_ref, params_base,
286627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            JNI_ABORT);
286727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
28682545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
28692545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
28702545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
287127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
287227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
287327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */
287427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
287527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexEnvxv__IILjava_nio_IntBuffer_2
287627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) {
28772545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    jint _exception = 0;
28782ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionType = NULL;
28792ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian    const char * _exceptionMessage = NULL;
288027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
288117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
288227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
288327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLfixed *params = (GLfixed *) 0;
288427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
288517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset);
288627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int _needed;
288727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    switch (pname) {
288827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#if defined(GL_TEXTURE_ENV_COLOR)
288927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        case GL_TEXTURE_ENV_COLOR:
289027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich#endif // defined(GL_TEXTURE_ENV_COLOR)
289127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            _needed = 4;
289227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
289327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        default:
28942ad0477f16c64dc3126741933f11e27353521bb4Mathias Agopian            _needed = 1;
289527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich            break;
289627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
289727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_remaining < _needed) {
28982545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exception = 1;
28992545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionType = "java/lang/IllegalArgumentException";
29002545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        _exceptionMessage = "remaining() < needed";
290127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        goto exit;
290227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
290317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    if (params == NULL) {
290417045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
290517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        params = (GLfixed *) (_paramsBase + _bufferOffset);
290617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
290727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexEnvxv(
290827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
290927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
291027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed *)params
291127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
291227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
291327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichexit:
291427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
291527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, params, JNI_FALSE);
291627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
29172545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    if (_exception) {
29182545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer        jniThrowException(_env, _exceptionType, _exceptionMessage);
29192545b32ced69100fe70685b95315c6adf411083bThomas Tafertshofer    }
292027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
292127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
292227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */
292327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
292427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexImage2D__IIIIIIIILjava_nio_Buffer_2
292527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) {
292627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
292717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
292827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
292927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
293027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
293127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
293217045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
293317045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
293437c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer    if (pixels_buf && pixels == NULL) {
293517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
293617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
293727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
293827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexImage2D(
293927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
294027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
294127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)internalformat,
294227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
294327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
294427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)border,
294527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
294627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
294727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
294827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
294927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
295027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
295127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
295227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
295327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
295427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */
295527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
295627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterf__IIF
295727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) {
295827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterf(
295927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
296027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
296127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)param
296227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
296327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
296427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
296527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */
296627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
296727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexParameterx__III
296827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) {
296927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexParameterx(
297027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
297127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)pname,
297227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)param
297327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
297427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
297527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
297627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */
297727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
297827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2
297927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) {
298027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
298117045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
298227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
298327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pixels = (GLvoid *) 0;
298427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
298527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (pixels_buf) {
298617045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset);
298717045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    }
298837c9b49ab5eb5a676370fd7081db0967c38e97a6Thomas Tafertshofer    if (pixels_buf && pixels == NULL) {
298917045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
299017045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer        pixels = (GLvoid *) (_pixelsBase + _bufferOffset);
299127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
299227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTexSubImage2D(
299327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)target,
299427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)level,
299527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)xoffset,
299627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)yoffset,
299727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
299827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height,
299927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)format,
300027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
300127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pixels
300227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
300327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    if (_array) {
300427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        releasePointer(_env, _array, pixels, JNI_FALSE);
300527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    }
300627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
300727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
300827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */
300927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
301027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatef__FFF
301127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) {
301227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatef(
301327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)x,
301427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)y,
301527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfloat)z
301627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
301727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
301827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
301927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */
302027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
302127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glTranslatex__III
302227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint z) {
302327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glTranslatex(
302427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)x,
302527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)y,
302627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLfixed)z
302727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
302827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
302927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
303027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */
303127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
303227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glVertexPointerBounds__IIILjava_nio_Buffer_2I
303327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) {
303427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jarray _array = (jarray) 0;
303517045a16575ece34cfadb63da4791f115625df78Thomas Tafertshofer    jint _bufferOffset = (jint) 0;
303627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    jint _remaining;
303727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    GLvoid *pointer = (GLvoid *) 0;
303827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
3039e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    if (pointer_buf) {
304016e7972f0d986eebf846ea8feb50f4435a9c6970Jack Palevich        pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
3041e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        if ( ! pointer ) {
3042e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich            return;
3043e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich        }
3044e20ea783a12f1031482c3aa01938efe39dcbf0a2Jack Palevich    }
304527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glVertexPointerBounds(
304627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)size,
304727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLenum)type,
304827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)stride,
304927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLvoid *)pointer,
305027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)remaining
305127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
305227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
305327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
305427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */
305527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic void
305627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichandroid_glViewport__IIII
305727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich  (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) {
305827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    glViewport(
305927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)x,
306027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLint)y,
306127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)width,
306227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich        (GLsizei)height
306327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    );
306427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
306527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
306627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic const char *classPathName = "android/opengl/GLES10";
306727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
306827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichstatic JNINativeMethod methods[] = {
306927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"_nativeClassInit", "()V", (void*)nativeClassInit },
307027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I },
307127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF },
307227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II },
307327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBindTexture", "(II)V", (void *) android_glBindTexture__II },
307427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II },
307527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClear", "(I)V", (void *) android_glClear__I },
307627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF },
307727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII },
307827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F },
307927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I },
308027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClearStencil", "(I)V", (void *) android_glClearStencil__I },
308127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I },
308227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF },
308327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII },
308427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ },
308527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I },
308627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 },
308727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
308827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII },
308927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII },
309027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glCullFace", "(I)V", (void *) android_glCullFace__I },
309127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II },
309227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 },
309327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I },
309427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z },
309527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF },
309627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II },
309727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisable", "(I)V", (void *) android_glDisable__I },
309827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I },
309927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III },
310027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 },
310127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnable", "(I)V", (void *) android_glEnable__I },
310227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I },
310327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFinish", "()V", (void *) android_glFinish__ },
310427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFlush", "()V", (void *) android_glFlush__ },
310527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogf", "(IF)V", (void *) android_glFogf__IF },
310627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI },
310727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 },
310827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogx", "(II)V", (void *) android_glFogx__II },
310927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II },
311027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 },
311127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrontFace", "(I)V", (void *) android_glFrontFace__I },
311227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF },
311327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII },
311427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II },
311527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 },
311627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetError", "()I", (void *) android_glGetError__ },
311727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II },
311827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 },
3119a379585e6e3ff41db6d71a5cd0a0403931bc525dJack Palevich{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },
312027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glHint", "(II)V", (void *) android_glHint__II },
312127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF },
312227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI },
312327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 },
312427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelx", "(II)V", (void *) android_glLightModelx__II },
312527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II },
312627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 },
312727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightf", "(IIF)V", (void *) android_glLightf__IIF },
312827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI },
312927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 },
313027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightx", "(III)V", (void *) android_glLightx__III },
313127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II },
313227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 },
313327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidth", "(F)V", (void *) android_glLineWidth__F },
313427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I },
313527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ },
313627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI },
313727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 },
313827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II },
313927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 },
314027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glLogicOp", "(I)V", (void *) android_glLogicOp__I },
314127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF },
314227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI },
314327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 },
314427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialx", "(III)V", (void *) android_glMaterialx__III },
314527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II },
314627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 },
314727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I },
314827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI },
314927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 },
315027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II },
315127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 },
315227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF },
315327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII },
315427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF },
315527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormal3x", "(III)V", (void *) android_glNormal3x__III },
315627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I },
315727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF },
315827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII },
315927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II },
316027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSize", "(F)V", (void *) android_glPointSize__F },
316127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPointSizex", "(I)V", (void *) android_glPointSizex__I },
316227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF },
316327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II },
316427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPopMatrix", "()V", (void *) android_glPopMatrix__ },
316527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glPushMatrix", "()V", (void *) android_glPushMatrix__ },
316627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 },
316727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF },
316827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII },
316927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ },
317027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ },
317127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalef", "(FFF)V", (void *) android_glScalef__FFF },
317227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScalex", "(III)V", (void *) android_glScalex__III },
317327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glScissor", "(IIII)V", (void *) android_glScissor__IIII },
317427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glShadeModel", "(I)V", (void *) android_glShadeModel__I },
317527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III },
317627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilMask", "(I)V", (void *) android_glStencilMask__I },
317727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glStencilOp", "(III)V", (void *) android_glStencilOp__III },
317827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I },
317927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF },
318027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI },
318127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 },
318227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III },
318327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II },
318427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 },
318527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 },
318627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF },
318727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III },
318827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 },
318927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF },
319027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glTranslatex", "(III)V", (void *) android_glTranslatex__III },
319127f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I },
319227f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{"glViewport", "(IIII)V", (void *) android_glViewport__IIII },
319327f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich};
319427f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich
319527f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevichint register_android_opengl_jni_GLES10(JNIEnv *_env)
319627f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich{
319727f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    int err;
319827f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
319927f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich    return err;
320027f8002e591b5c579f75b2580183b5d1c4219cd4Jack Palevich}
3201