Merge change 233 into donut

* changes:
  Add an Android-specific static OpenGL ES 1.1 Java API.
This commit is contained in:
Android (Google) Code Review
2009-04-16 17:55:44 -07:00
57 changed files with 23025 additions and 121 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -21,6 +21,10 @@ LOCAL_SRC_FILES:= \
CursorWindow.cpp \
com_google_android_gles_jni_EGLImpl.cpp \
com_google_android_gles_jni_GLImpl.cpp.arm \
android_opengl_GLES10.cpp \
android_opengl_GLES10Ext.cpp \
android_opengl_GLES11.cpp \
android_opengl_GLES11Ext.cpp \
android_database_CursorWindow.cpp \
android_database_SQLiteDebug.cpp \
android_database_SQLiteDatabase.cpp \

View File

@@ -66,6 +66,10 @@ extern int register_android_graphics_Typeface(JNIEnv* env);
extern int register_com_google_android_gles_jni_EGLImpl(JNIEnv* env);
extern int register_com_google_android_gles_jni_GLImpl(JNIEnv* env);
extern int register_android_opengl_jni_GLES10(JNIEnv* env);
extern int register_android_opengl_jni_GLES10Ext(JNIEnv* env);
extern int register_android_opengl_jni_GLES11(JNIEnv* env);
extern int register_android_opengl_jni_GLES11Ext(JNIEnv* env);
extern int register_android_hardware_Camera(JNIEnv *env);
@@ -1042,6 +1046,10 @@ static const RegJNIRec gRegJNI[] = {
REG_JNI(register_android_view_ViewRoot),
REG_JNI(register_com_google_android_gles_jni_EGLImpl),
REG_JNI(register_com_google_android_gles_jni_GLImpl),
REG_JNI(register_android_opengl_jni_GLES10),
REG_JNI(register_android_opengl_jni_GLES10Ext),
REG_JNI(register_android_opengl_jni_GLES11),
REG_JNI(register_android_opengl_jni_GLES11Ext),
REG_JNI(register_android_graphics_Bitmap),
REG_JNI(register_android_graphics_BitmapFactory),

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,254 @@
/*
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <assert.h>
#include <GLES/gl.h>
#include <private/opengles/gl_context.h>
#define _NUM_COMPRESSED_TEXTURE_FORMATS \
(::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
static int initialized = 0;
static jclass nioAccessClass;
static jclass bufferClass;
static jclass OOMEClass;
static jclass UOEClass;
static jclass IAEClass;
static jclass AIOOBEClass;
static jmethodID getBasePointerID;
static jmethodID getBaseArrayID;
static jmethodID getBaseArrayOffsetID;
static jfieldID positionID;
static jfieldID limitID;
static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
"getBasePointer", "(Ljava/nio/Buffer;)J");
getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
positionID = _env->GetFieldID(bufferClass, "position", "I");
limitID = _env->GetFieldID(bufferClass, "limit", "I");
elementSizeShiftID =
_env->GetFieldID(bufferClass, "_elementSizeShift", "I");
}
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
nativeClassInitBuffer(_env);
jclass IAEClassLocal =
_env->FindClass("java/lang/IllegalArgumentException");
jclass OOMEClassLocal =
_env->FindClass("java/lang/OutOfMemoryError");
jclass UOEClassLocal =
_env->FindClass("java/lang/UnsupportedOperationException");
jclass AIOOBEClassLocal =
_env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
}
static void *
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
{
jint position;
jint limit;
jint elementSizeShift;
jlong pointer;
jint offset;
void *data;
position = _env->GetIntField(buffer, positionID);
limit = _env->GetIntField(buffer, limitID);
elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
*remaining = (limit - position) << elementSizeShift;
pointer = _env->CallStaticLongMethod(nioAccessClass,
getBasePointerID, buffer);
if (pointer != 0L) {
*array = NULL;
return (void *) (jint) pointer;
}
*array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
getBaseArrayID, buffer);
offset = _env->CallStaticIntMethod(nioAccessClass,
getBaseArrayOffsetID, buffer);
data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
return (void *) ((char *) data + offset);
}
static void
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
_env->ReleasePrimitiveArrayCritical(array, data,
commit ? 0 : JNI_ABORT);
}
// --------------------------------------------------------------------------
/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
static jint
android_glQueryMatrixxOES___3II_3II
(JNIEnv *_env, jobject _this, jintArray mantissa_ref, jint mantissaOffset, jintArray exponent_ref, jint exponentOffset) {
jint _exception = 0;
GLbitfield _returnValue = -1;
GLfixed *mantissa_base = (GLfixed *) 0;
jint _mantissaRemaining;
GLfixed *mantissa = (GLfixed *) 0;
GLint *exponent_base = (GLint *) 0;
jint _exponentRemaining;
GLint *exponent = (GLint *) 0;
if (!mantissa_ref) {
_exception = 1;
_env->ThrowNew(IAEClass, "mantissa == null");
goto exit;
}
if (mantissaOffset < 0) {
_exception = 1;
_env->ThrowNew(IAEClass, "mantissaOffset < 0");
goto exit;
}
_mantissaRemaining = _env->GetArrayLength(mantissa_ref) - mantissaOffset;
if (_mantissaRemaining < 16) {
_exception = 1;
_env->ThrowNew(IAEClass, "length - mantissaOffset < 16");
goto exit;
}
mantissa_base = (GLfixed *)
_env->GetPrimitiveArrayCritical(mantissa_ref, (jboolean *)0);
mantissa = mantissa_base + mantissaOffset;
if (!exponent_ref) {
_exception = 1;
_env->ThrowNew(IAEClass, "exponent == null");
goto exit;
}
if (exponentOffset < 0) {
_exception = 1;
_env->ThrowNew(IAEClass, "exponentOffset < 0");
goto exit;
}
_exponentRemaining = _env->GetArrayLength(exponent_ref) - exponentOffset;
if (_exponentRemaining < 16) {
_exception = 1;
_env->ThrowNew(IAEClass, "length - exponentOffset < 16");
goto exit;
}
exponent_base = (GLint *)
_env->GetPrimitiveArrayCritical(exponent_ref, (jboolean *)0);
exponent = exponent_base + exponentOffset;
_returnValue = glQueryMatrixxOES(
(GLfixed *)mantissa,
(GLint *)exponent
);
exit:
if (exponent_base) {
_env->ReleasePrimitiveArrayCritical(exponent_ref, exponent_base,
_exception ? JNI_ABORT: 0);
}
if (mantissa_base) {
_env->ReleasePrimitiveArrayCritical(mantissa_ref, mantissa_base,
_exception ? JNI_ABORT: 0);
}
return _returnValue;
}
/* GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent ) */
static jint
android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2
(JNIEnv *_env, jobject _this, jobject mantissa_buf, jobject exponent_buf) {
jint _exception = 0;
jarray _mantissaArray = (jarray) 0;
jarray _exponentArray = (jarray) 0;
GLbitfield _returnValue = -1;
jint _mantissaRemaining;
GLfixed *mantissa = (GLfixed *) 0;
jint _exponentRemaining;
GLint *exponent = (GLint *) 0;
mantissa = (GLfixed *)getPointer(_env, mantissa_buf, &_mantissaArray, &_mantissaRemaining);
if (_mantissaRemaining < 16) {
_exception = 1;
_env->ThrowNew(IAEClass, "remaining() < 16");
goto exit;
}
exponent = (GLint *)getPointer(_env, exponent_buf, &_exponentArray, &_exponentRemaining);
if (_exponentRemaining < 16) {
_exception = 1;
_env->ThrowNew(IAEClass, "remaining() < 16");
goto exit;
}
_returnValue = glQueryMatrixxOES(
(GLfixed *)mantissa,
(GLint *)exponent
);
exit:
if (_mantissaArray) {
releasePointer(_env, _mantissaArray, exponent, _exception ? JNI_FALSE : JNI_TRUE);
}
if (_exponentArray) {
releasePointer(_env, _exponentArray, mantissa, _exception ? JNI_FALSE : JNI_TRUE);
}
return _returnValue;
}
static const char *classPathName = "android/opengl/GLES10Ext";
static JNINativeMethod methods[] = {
{"_nativeClassInit", "()V", (void*)nativeClassInit },
{"glQueryMatrixxOES", "([II[II)I", (void *) android_glQueryMatrixxOES___3II_3II },
{"glQueryMatrixxOES", "(Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;)I", (void *) android_glQueryMatrixxOES__Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 },
};
int register_android_opengl_jni_GLES10Ext(JNIEnv *_env)
{
int err;
err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods));
return err;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -45,7 +45,7 @@ static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
void
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
@@ -1654,6 +1654,7 @@ exit:
#include <string.h>
/* const GLubyte * glGetString ( GLenum name ) */
static
jstring
android_glGetString
(JNIEnv *_env, jobject _this, jint name) {

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,44 @@
/*
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
public class GLES10Ext {
native private static void _nativeClassInit();
static {
_nativeClassInit();
}
// C function GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent )
public static native int glQueryMatrixxOES(
int[] mantissa,
int mantissaOffset,
int[] exponent,
int exponentOffset
);
// C function GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent )
public static native int glQueryMatrixxOES(
java.nio.IntBuffer mantissa,
java.nio.IntBuffer exponent
);
}

View File

@@ -0,0 +1,707 @@
/*
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
import java.nio.Buffer;
public class GLES11 extends GLES10 {
public static final int GL_ACTIVE_TEXTURE = 0x84E0;
public static final int GL_ADD_SIGNED = 0x8574;
public static final int GL_ALPHA_SCALE = 0x0D1C;
public static final int GL_ALPHA_TEST_FUNC = 0x0BC1;
public static final int GL_ALPHA_TEST_REF = 0x0BC2;
public static final int GL_ARRAY_BUFFER = 0x8892;
public static final int GL_ARRAY_BUFFER_BINDING = 0x8894;
public static final int GL_BLEND_DST = 0x0BE0;
public static final int GL_BLEND_SRC = 0x0BE1;
public static final int GL_BUFFER_ACCESS = 0x88BB;
public static final int GL_BUFFER_SIZE = 0x8764;
public static final int GL_BUFFER_USAGE = 0x8765;
public static final int GL_CLIENT_ACTIVE_TEXTURE = 0x84E1;
public static final int GL_CLIP_PLANE0 = 0x3000;
public static final int GL_CLIP_PLANE1 = 0x3001;
public static final int GL_CLIP_PLANE2 = 0x3002;
public static final int GL_CLIP_PLANE3 = 0x3003;
public static final int GL_CLIP_PLANE4 = 0x3004;
public static final int GL_CLIP_PLANE5 = 0x3005;
public static final int GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898;
public static final int GL_COLOR_ARRAY_POINTER = 0x8090;
public static final int GL_COLOR_ARRAY_SIZE = 0x8081;
public static final int GL_COLOR_ARRAY_STRIDE = 0x8083;
public static final int GL_COLOR_ARRAY_TYPE = 0x8082;
public static final int GL_COLOR_CLEAR_VALUE = 0x0C22;
public static final int GL_COLOR_WRITEMASK = 0x0C23;
public static final int GL_COMBINE = 0x8570;
public static final int GL_COMBINE_ALPHA = 0x8572;
public static final int GL_COMBINE_RGB = 0x8571;
public static final int GL_CONSTANT = 0x8576;
public static final int GL_COORD_REPLACE_OES = 0x8862;
public static final int GL_CULL_FACE_MODE = 0x0B45;
public static final int GL_CURRENT_COLOR = 0x0B00;
public static final int GL_CURRENT_NORMAL = 0x0B02;
public static final int GL_CURRENT_TEXTURE_COORDS = 0x0B03;
public static final int GL_DEPTH_CLEAR_VALUE = 0x0B73;
public static final int GL_DEPTH_FUNC = 0x0B74;
public static final int GL_DEPTH_RANGE = 0x0B70;
public static final int GL_DEPTH_WRITEMASK = 0x0B72;
public static final int GL_DOT3_RGB = 0x86AE;
public static final int GL_DOT3_RGBA = 0x86AF;
public static final int GL_DYNAMIC_DRAW = 0x88E8;
public static final int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
public static final int GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
public static final int GL_FRONT_FACE = 0x0B46;
public static final int GL_GENERATE_MIPMAP = 0x8191;
public static final int GL_GENERATE_MIPMAP_HINT = 0x8192;
public static final int GL_INTERPOLATE = 0x8575;
public static final int GL_LINE_WIDTH = 0x0B21;
public static final int GL_LOGIC_OP_MODE = 0x0BF0;
public static final int GL_MATRIX_MODE = 0x0BA0;
public static final int GL_MAX_CLIP_PLANES = 0x0D32;
public static final int GL_MODELVIEW_MATRIX = 0x0BA6;
public static final int GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D;
public static final int GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
public static final int GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897;
public static final int GL_NORMAL_ARRAY_POINTER = 0x808F;
public static final int GL_NORMAL_ARRAY_STRIDE = 0x807F;
public static final int GL_NORMAL_ARRAY_TYPE = 0x807E;
public static final int GL_OPERAND0_ALPHA = 0x8598;
public static final int GL_OPERAND0_RGB = 0x8590;
public static final int GL_OPERAND1_ALPHA = 0x8599;
public static final int GL_OPERAND1_RGB = 0x8591;
public static final int GL_OPERAND2_ALPHA = 0x859A;
public static final int GL_OPERAND2_RGB = 0x8592;
public static final int GL_POINT_DISTANCE_ATTENUATION = 0x8129;
public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
public static final int GL_POINT_SIZE = 0x0B11;
public static final int GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F;
public static final int GL_POINT_SIZE_ARRAY_OES = 0x8B9C;
public static final int GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C;
public static final int GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B;
public static final int GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A;
public static final int GL_POINT_SIZE_MAX = 0x8127;
public static final int GL_POINT_SIZE_MIN = 0x8126;
public static final int GL_POINT_SPRITE_OES = 0x8861;
public static final int GL_POLYGON_OFFSET_FACTOR = 0x8038;
public static final int GL_POLYGON_OFFSET_UNITS = 0x2A00;
public static final int GL_PREVIOUS = 0x8578;
public static final int GL_PRIMARY_COLOR = 0x8577;
public static final int GL_PROJECTION_MATRIX = 0x0BA7;
public static final int GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E;
public static final int GL_PROJECTION_STACK_DEPTH = 0x0BA4;
public static final int GL_RGB_SCALE = 0x8573;
public static final int GL_SAMPLE_BUFFERS = 0x80A8;
public static final int GL_SAMPLE_COVERAGE_INVERT = 0x80AB;
public static final int GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
public static final int GL_SAMPLES = 0x80A9;
public static final int GL_SCISSOR_BOX = 0x0C10;
public static final int GL_SHADE_MODEL = 0x0B54;
public static final int GL_SRC0_ALPHA = 0x8588;
public static final int GL_SRC0_RGB = 0x8580;
public static final int GL_SRC1_ALPHA = 0x8589;
public static final int GL_SRC1_RGB = 0x8581;
public static final int GL_SRC2_ALPHA = 0x858A;
public static final int GL_SRC2_RGB = 0x8582;
public static final int GL_STATIC_DRAW = 0x88E4;
public static final int GL_STENCIL_CLEAR_VALUE = 0x0B91;
public static final int GL_STENCIL_FAIL = 0x0B94;
public static final int GL_STENCIL_FUNC = 0x0B92;
public static final int GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
public static final int GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
public static final int GL_STENCIL_REF = 0x0B97;
public static final int GL_STENCIL_VALUE_MASK = 0x0B93;
public static final int GL_STENCIL_WRITEMASK = 0x0B98;
public static final int GL_SUBTRACT = 0x84E7;
public static final int GL_TEXTURE_BINDING_2D = 0x8069;
public static final int GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A;
public static final int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
public static final int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
public static final int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
public static final int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
public static final int GL_TEXTURE_MATRIX = 0x0BA8;
public static final int GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F;
public static final int GL_TEXTURE_STACK_DEPTH = 0x0BA5;
public static final int GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896;
public static final int GL_VERTEX_ARRAY_POINTER = 0x808E;
public static final int GL_VERTEX_ARRAY_SIZE = 0x807A;
public static final int GL_VERTEX_ARRAY_STRIDE = 0x807C;
public static final int GL_VERTEX_ARRAY_TYPE = 0x807B;
public static final int GL_VIEWPORT = 0x0BA2;
public static final int GL_WRITE_ONLY = 0x88B9;
native private static void _nativeClassInit();
static {
_nativeClassInit();
}
// C function void glBindBuffer ( GLenum target, GLuint buffer )
public static native void glBindBuffer(
int target,
int buffer
);
// C function void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage )
public static native void glBufferData(
int target,
int size,
java.nio.Buffer data,
int usage
);
// C function void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data )
public static native void glBufferSubData(
int target,
int offset,
int size,
java.nio.Buffer data
);
// C function void glClipPlanef ( GLenum plane, const GLfloat *equation )
public static native void glClipPlanef(
int plane,
float[] equation,
int offset
);
// C function void glClipPlanef ( GLenum plane, const GLfloat *equation )
public static native void glClipPlanef(
int plane,
java.nio.FloatBuffer equation
);
// C function void glClipPlanex ( GLenum plane, const GLfixed *equation )
public static native void glClipPlanex(
int plane,
int[] equation,
int offset
);
// C function void glClipPlanex ( GLenum plane, const GLfixed *equation )
public static native void glClipPlanex(
int plane,
java.nio.IntBuffer equation
);
// C function void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha )
public static native void glColor4ub(
byte red,
byte green,
byte blue,
byte alpha
);
// C function void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )
public static native void glColorPointer(
int size,
int type,
int stride,
int offset
);
// C function void glDeleteBuffers ( GLsizei n, const GLuint *buffers )
public static native void glDeleteBuffers(
int n,
int[] buffers,
int offset
);
// C function void glDeleteBuffers ( GLsizei n, const GLuint *buffers )
public static native void glDeleteBuffers(
int n,
java.nio.IntBuffer buffers
);
// C function void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset )
public static native void glDrawElements(
int mode,
int count,
int type,
int offset
);
// C function void glGenBuffers ( GLsizei n, GLuint *buffers )
public static native void glGenBuffers(
int n,
int[] buffers,
int offset
);
// C function void glGenBuffers ( GLsizei n, GLuint *buffers )
public static native void glGenBuffers(
int n,
java.nio.IntBuffer buffers
);
// C function void glGetBooleanv ( GLenum pname, GLboolean *params )
public static native void glGetBooleanv(
int pname,
boolean[] params,
int offset
);
// C function void glGetBooleanv ( GLenum pname, GLboolean *params )
public static native void glGetBooleanv(
int pname,
java.nio.IntBuffer params
);
// C function void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params )
public static native void glGetBufferParameteriv(
int target,
int pname,
int[] params,
int offset
);
// C function void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params )
public static native void glGetBufferParameteriv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function void glGetClipPlanef ( GLenum pname, GLfloat *eqn )
public static native void glGetClipPlanef(
int pname,
float[] eqn,
int offset
);
// C function void glGetClipPlanef ( GLenum pname, GLfloat *eqn )
public static native void glGetClipPlanef(
int pname,
java.nio.FloatBuffer eqn
);
// C function void glGetClipPlanex ( GLenum pname, GLfixed *eqn )
public static native void glGetClipPlanex(
int pname,
int[] eqn,
int offset
);
// C function void glGetClipPlanex ( GLenum pname, GLfixed *eqn )
public static native void glGetClipPlanex(
int pname,
java.nio.IntBuffer eqn
);
// C function void glGetFixedv ( GLenum pname, GLfixed *params )
public static native void glGetFixedv(
int pname,
int[] params,
int offset
);
// C function void glGetFixedv ( GLenum pname, GLfixed *params )
public static native void glGetFixedv(
int pname,
java.nio.IntBuffer params
);
// C function void glGetFloatv ( GLenum pname, GLfloat *params )
public static native void glGetFloatv(
int pname,
float[] params,
int offset
);
// C function void glGetFloatv ( GLenum pname, GLfloat *params )
public static native void glGetFloatv(
int pname,
java.nio.FloatBuffer params
);
// C function void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params )
public static native void glGetLightfv(
int light,
int pname,
float[] params,
int offset
);
// C function void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params )
public static native void glGetLightfv(
int light,
int pname,
java.nio.FloatBuffer params
);
// C function void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params )
public static native void glGetLightxv(
int light,
int pname,
int[] params,
int offset
);
// C function void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params )
public static native void glGetLightxv(
int light,
int pname,
java.nio.IntBuffer params
);
// C function void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params )
public static native void glGetMaterialfv(
int face,
int pname,
float[] params,
int offset
);
// C function void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params )
public static native void glGetMaterialfv(
int face,
int pname,
java.nio.FloatBuffer params
);
// C function void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params )
public static native void glGetMaterialxv(
int face,
int pname,
int[] params,
int offset
);
// C function void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params )
public static native void glGetMaterialxv(
int face,
int pname,
java.nio.IntBuffer params
);
// C function void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params )
public static native void glGetTexEnvfv(
int env,
int pname,
float[] params,
int offset
);
// C function void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params )
public static native void glGetTexEnvfv(
int env,
int pname,
java.nio.FloatBuffer params
);
// C function void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params )
public static native void glGetTexEnviv(
int env,
int pname,
int[] params,
int offset
);
// C function void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params )
public static native void glGetTexEnviv(
int env,
int pname,
java.nio.IntBuffer params
);
// C function void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params )
public static native void glGetTexEnvxv(
int env,
int pname,
int[] params,
int offset
);
// C function void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params )
public static native void glGetTexEnvxv(
int env,
int pname,
java.nio.IntBuffer params
);
// C function void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params )
public static native void glGetTexParameterfv(
int target,
int pname,
float[] params,
int offset
);
// C function void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params )
public static native void glGetTexParameterfv(
int target,
int pname,
java.nio.FloatBuffer params
);
// C function void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params )
public static native void glGetTexParameteriv(
int target,
int pname,
int[] params,
int offset
);
// C function void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params )
public static native void glGetTexParameteriv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params )
public static native void glGetTexParameterxv(
int target,
int pname,
int[] params,
int offset
);
// C function void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params )
public static native void glGetTexParameterxv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function GLboolean glIsBuffer ( GLuint buffer )
public static native boolean glIsBuffer(
int buffer
);
// C function GLboolean glIsEnabled ( GLenum cap )
public static native boolean glIsEnabled(
int cap
);
// C function GLboolean glIsTexture ( GLuint texture )
public static native boolean glIsTexture(
int texture
);
// C function void glNormalPointer ( GLenum type, GLsizei stride, GLint offset )
public static native void glNormalPointer(
int type,
int stride,
int offset
);
// C function void glPointParameterf ( GLenum pname, GLfloat param )
public static native void glPointParameterf(
int pname,
float param
);
// C function void glPointParameterfv ( GLenum pname, const GLfloat *params )
public static native void glPointParameterfv(
int pname,
float[] params,
int offset
);
// C function void glPointParameterfv ( GLenum pname, const GLfloat *params )
public static native void glPointParameterfv(
int pname,
java.nio.FloatBuffer params
);
// C function void glPointParameterx ( GLenum pname, GLfixed param )
public static native void glPointParameterx(
int pname,
int param
);
// C function void glPointParameterxv ( GLenum pname, const GLfixed *params )
public static native void glPointParameterxv(
int pname,
int[] params,
int offset
);
// C function void glPointParameterxv ( GLenum pname, const GLfixed *params )
public static native void glPointParameterxv(
int pname,
java.nio.IntBuffer params
);
// C function void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer )
public static native void glPointSizePointerOES(
int type,
int stride,
java.nio.Buffer pointer
);
// C function void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )
public static native void glTexCoordPointer(
int size,
int type,
int stride,
int offset
);
// C function void glTexEnvi ( GLenum target, GLenum pname, GLint param )
public static native void glTexEnvi(
int target,
int pname,
int param
);
// C function void glTexEnviv ( GLenum target, GLenum pname, const GLint *params )
public static native void glTexEnviv(
int target,
int pname,
int[] params,
int offset
);
// C function void glTexEnviv ( GLenum target, GLenum pname, const GLint *params )
public static native void glTexEnviv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params )
public static native void glTexParameterfv(
int target,
int pname,
float[] params,
int offset
);
// C function void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params )
public static native void glTexParameterfv(
int target,
int pname,
java.nio.FloatBuffer params
);
// C function void glTexParameteri ( GLenum target, GLenum pname, GLint param )
public static native void glTexParameteri(
int target,
int pname,
int param
);
// C function void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params )
public static native void glTexParameteriv(
int target,
int pname,
int[] params,
int offset
);
// C function void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params )
public static native void glTexParameteriv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params )
public static native void glTexParameterxv(
int target,
int pname,
int[] params,
int offset
);
// C function void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params )
public static native void glTexParameterxv(
int target,
int pname,
java.nio.IntBuffer params
);
// C function void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )
public static native void glVertexPointer(
int size,
int type,
int stride,
int offset
);
}

File diff suppressed because it is too large Load Diff

2
opengl/tools/glgen/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
generated
out

View File

@@ -1,19 +1,21 @@
#!/bin/bash
set -u
set -e
rm -rf out generated
mkdir out
mkdir -p out/javax/microedition/khronos/opengles
mkdir -p out/com/google/android/gles_jni
mkdir -p out/android/graphics
mkdir -p out/android/opengl
echo "package android.graphics;" > out/android/graphics/Canvas.java
echo "public interface Canvas {}" >> out/android/graphics/Canvas.java
GLFILE=out/javax/microedition/khronos/opengles/GL.java
cp stubs/GLHeader.java-if $GLFILE
cp stubs/jsr239/GLHeader.java-if $GLFILE
GLGEN_FILES="CFunc.java CType.java CodeEmitter.java GenerateGL.java JFunc.java JniCodeEmitter.java JType.java Jsr239CodeEmitter.java ParameterChecker.java"
GLGEN_FILES="CFunc.java CType.java CodeEmitter.java GenerateGL.java GenerateGLES.java GLESCodeEmitter.java JFunc.java JniCodeEmitter.java JType.java Jsr239CodeEmitter.java ParameterChecker.java"
pushd src > /dev/null
javac ${GLGEN_FILES}
@@ -23,13 +25,34 @@ if [ $JAVAC_RESULT -ne 0 ]; then
exit $JAVAC_RESULT
fi
popd > /dev/null
java -classpath src GenerateGL -c glspec-1.0 glspec-1.0ext glspec-1.1 glspec-1.1ext glspec-1.1extpack glspec-checks
echo "Generating JSR239-like APIs"
java -classpath src GenerateGL -c specs/jsr239/glspec-1.0 specs/jsr239/glspec-1.0ext specs/jsr239/glspec-1.1 specs/jsr239/glspec-1.1ext specs/jsr239/glspec-1.1extpack specs/jsr239/glspec-checks
JAVA_RESULT=$?
if [ $JAVA_RESULT -ne 0 ]; then
echo "Could not run GenerateGL."
exit $JAVA_RESULT
fi
echo "Generating static OpenGLES 1.1 bindings"
java -classpath src GenerateGLES
JAVA_RESULT=$?
if [ $JAVA_RESULT -ne 0 ]; then
echo "Could not run GenerateGLES."
exit $JAVA_RESULT
fi
rm src/*.class
pushd out > /dev/null
mkdir classes
javac -d classes com/google/android/gles_jni/GLImpl.java javax/microedition/khronos/opengles/GL10.java javax/microedition/khronos/opengles/GL10Ext.java javax/microedition/khronos/opengles/GL11.java javax/microedition/khronos/opengles/GL11Ext.java javax/microedition/khronos/opengles/GL11ExtensionPack.java
javac -d classes com/google/android/gles_jni/GLImpl.java javax/microedition/khronos/opengles/GL10.java javax/microedition/khronos/opengles/GL10Ext.java javax/microedition/khronos/opengles/GL11.java javax/microedition/khronos/opengles/GL11Ext.java javax/microedition/khronos/opengles/GL11ExtensionPack.java android/opengl/GLES10.java android/opengl/GLES10Ext.java android/opengl/GLES11.java android/opengl/GLES11Ext.java
popd > /dev/null
JAVA_RESULT=$?
if [ $JAVA_RESULT -ne 0 ]; then
echo "Could not compile generated classes."
exit $JAVA_RESULT
fi
rm -rf generated
mkdir -p generated/C
@@ -37,81 +60,44 @@ cp out/com_google_android_gles_jni_GLImpl.cpp generated/C
cp -r out/com generated
cp -r out/javax generated
cp out/android_opengl_*.cpp generated/C
mkdir -p generated/android/opengl
cp -r out/android/opengl generated/android
rm -rf out
KEEP_GENERATED=0
SAID_PLEASE=0
# com_google_android_gles_jni_GLImpl.cpp
if cmp ../../../../../frameworks/base/core/jni/com_google_android_gles_jni_GLImpl.cpp generated/C/com_google_android_gles_jni_GLImpl.cpp ; then
echo com_google_android_gles_jni_GLImpl.cpp unchanged
else
echo Please p4 edit ../../../../../frameworks/base/core/jni/com_google_android_gles_jni_GLImpl.cpp
echo Please cp generated/C/com_google_android_gles_jni_GLImpl.cpp ../../../../../frameworks/base/core/jni
KEEP_GENERATED=1
fi
# compareGenerated destDir generatedDir file
compareGenerated() {
if cmp -s $1/$3 $2/$3 ; then
echo "# " $3 unchanged
else
if [ $SAID_PLEASE == "0" ] ; then
echo Please evaluate the following commands:
echo
SAID_PLEASE=1
fi
echo " " cp $2/$3 $1
echo " " git add $1/$3
KEEP_GENERATED=1
fi
}
# GLImpl.java
if cmp ../../java/com/google/android/gles_jni/GLImpl.java generated/com/google/android/gles_jni/GLImpl.java ; then
echo GLImpl.java unchanged
else
echo Please edit ../../java/com/google/android/gles_jni/GLImpl.java
echo Please cp generated/com/google/android/gles_jni/GLImpl.java ../../java/com/google/android/gles_jni
KEEP_GENERATED=1
fi
compareGenerated ../../../core/jni generated/C com_google_android_gles_jni_GLImpl.cpp
compareGenerated ../../java/com/google/android/gles_jni generated/com/google/android/gles_jni GLImpl.java
# GL.java
if cmp ../../java/javax/microedition/khronos/opengles/GL.java generated/javax/microedition/khronos/opengles/GL.java ; then
echo GL.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL.java
echo Please cp generated/javax/microedition/khronos/opengles/GL.java ../../java/javax/microedition/khronos/opengles/GL.java
KEEP_GENERATED=1
fi
for x in GL.java GL10.java GL10Ext.java GL11.java GL11Ext.java GL11ExtensionPack.java
do
compareGenerated ../../java/javax/microedition/khronos/opengles generated/javax/microedition/khronos/opengles $x
done
# GL10.java
if cmp ../../java/javax/microedition/khronos/opengles/GL10.java generated/javax/microedition/khronos/opengles/GL10.java ; then
echo GL10.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL10.java
echo Please cp generated/javax/microedition/khronos/opengles/GL10.java ../../java/javax/microedition/khronos/opengles/GL10.java
KEEP_GENERATED=1
fi
# GL10Ext.java
if cmp ../../java/javax/microedition/khronos/opengles/GL10Ext.java generated/javax/microedition/khronos/opengles/GL10Ext.java ; then
echo GL10Ext.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL10Ext.java
echo Please cp generated/javax/microedition/khronos/opengles/GL10Ext.java ../../java/javax/microedition/khronos/opengles/GL10Ext.java
KEEP_GENERATED=1
fi
# GL11.java
if cmp ../../java/javax/microedition/khronos/opengles/GL11.java generated/javax/microedition/khronos/opengles/GL11.java ; then
echo GL11.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL11.java
echo Please cp generated/javax/microedition/khronos/opengles/GL11.java ../../java/javax/microedition/khronos/opengles/GL11.java
KEEP_GENERATED=1
fi
# GL11Ext.java
if cmp ../../java/javax/microedition/khronos/opengles/GL11Ext.java generated/javax/microedition/khronos/opengles/GL11Ext.java ; then
echo GL11Ext.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL11Ext.java
echo Please cp generated/javax/microedition/khronos/opengles/GL11Ext.java ../../java/javax/microedition/khronos/opengles/GL11Ext.java
KEEP_GENERATED=1
fi
# GL11ExtensionPack.java
if cmp ../../java/javax/microedition/khronos/opengles/GL11ExtensionPack.java generated/javax/microedition/khronos/opengles/GL11ExtensionPack.java ; then
echo GL11ExtensionPack.java unchanged
else
echo Please edit ../../java/javax/microedition/khronos/opengles/GL11ExtensionPack.java
echo Please cp generated/javax/microedition/khronos/opengles/GL11ExtensionPack.java ../../java/javax/microedition/khronos/opengles/GL11ExtensionPack.java
KEEP_GENERATED=1
fi
for x in GLES10 GLES10Ext GLES11 GLES11Ext
do
compareGenerated ../../java/android/opengl generated/android/opengl ${x}.java
compareGenerated ../../../core/jni generated/C android_opengl_${x}.cpp
done
if [ $KEEP_GENERATED == "0" ] ; then
rm -rf generated
rm -rf generated
fi

View File

@@ -0,0 +1,106 @@
void glActiveTexture ( GLenum texture )
void glAlphaFunc ( GLenum func, GLclampf ref )
void glAlphaFuncx ( GLenum func, GLclampx ref )
void glBindTexture ( GLenum target, GLuint texture )
void glBlendFunc ( GLenum sfactor, GLenum dfactor )
void glClear ( GLbitfield mask )
void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha )
void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha )
void glClearDepthf ( GLclampf depth )
void glClearDepthx ( GLclampx depth )
void glClearStencil ( GLint s )
void glClientActiveTexture ( GLenum texture )
void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha )
void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha )
void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data )
void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data )
void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border )
void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height )
void glCullFace ( GLenum mode )
void glDeleteTextures ( GLsizei n, const GLuint *textures )
void glDepthFunc ( GLenum func )
void glDepthMask ( GLboolean flag )
void glDepthRangef ( GLclampf zNear, GLclampf zFar )
void glDepthRangex ( GLclampx zNear, GLclampx zFar )
void glDisable ( GLenum cap )
void glDisableClientState ( GLenum array )
void glDrawArrays ( GLenum mode, GLint first, GLsizei count )
void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices )
void glEnable ( GLenum cap )
void glEnableClientState ( GLenum array )
void glFinish ( void )
void glFlush ( void )
void glFogf ( GLenum pname, GLfloat param )
void glFogfv ( GLenum pname, const GLfloat *params )
void glFogx ( GLenum pname, GLfixed param )
void glFogxv ( GLenum pname, const GLfixed *params )
void glFrontFace ( GLenum mode )
void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar )
void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar )
void glGenTextures ( GLsizei n, GLuint *textures )
GLenum glGetError ( void )
void glGetIntegerv ( GLenum pname, GLint *params )
const GLubyte * glGetString ( GLenum name )
void glHint ( GLenum target, GLenum mode )
void glLightModelf ( GLenum pname, GLfloat param )
void glLightModelfv ( GLenum pname, const GLfloat *params )
void glLightModelx ( GLenum pname, GLfixed param )
void glLightModelxv ( GLenum pname, const GLfixed *params )
void glLightf ( GLenum light, GLenum pname, GLfloat param )
void glLightfv ( GLenum light, GLenum pname, const GLfloat *params )
void glLightx ( GLenum light, GLenum pname, GLfixed param )
void glLightxv ( GLenum light, GLenum pname, const GLfixed *params )
void glLineWidth ( GLfloat width )
void glLineWidthx ( GLfixed width )
void glLoadIdentity ( void )
void glLoadMatrixf ( const GLfloat *m )
void glLoadMatrixx ( const GLfixed *m )
void glLogicOp ( GLenum opcode )
void glMaterialf ( GLenum face, GLenum pname, GLfloat param )
void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params )
void glMaterialx ( GLenum face, GLenum pname, GLfixed param )
void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params )
void glMatrixMode ( GLenum mode )
void glMultMatrixf ( const GLfloat *m )
void glMultMatrixx ( const GLfixed *m )
void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q )
void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q )
void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz )
void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz )
void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer )
void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar )
void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar )
void glPixelStorei ( GLenum pname, GLint param )
void glPointSize ( GLfloat size )
void glPointSizex ( GLfixed size )
void glPolygonOffset ( GLfloat factor, GLfloat units )
void glPolygonOffsetx ( GLfixed factor, GLfixed units )
void glPopMatrix ( void )
void glPushMatrix ( void )
void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels )
void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z )
void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z )
void glSampleCoverage ( GLclampf value, GLboolean invert )
void glSampleCoveragex ( GLclampx value, GLboolean invert )
void glScalef ( GLfloat x, GLfloat y, GLfloat z )
void glScalex ( GLfixed x, GLfixed y, GLfixed z )
void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height )
void glShadeModel ( GLenum mode )
void glStencilFunc ( GLenum func, GLint ref, GLuint mask )
void glStencilMask ( GLuint mask )
void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass )
void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glTexEnvf ( GLenum target, GLenum pname, GLfloat param )
void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params )
void glTexEnvx ( GLenum target, GLenum pname, GLfixed param )
void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params )
void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels )
void glTexParameterf ( GLenum target, GLenum pname, GLfloat param )
void glTexParameterx ( GLenum target, GLenum pname, GLfixed param )
void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels )
void glTranslatef ( GLfloat x, GLfloat y, GLfloat z )
void glTranslatex ( GLfixed x, GLfixed y, GLfixed z )
void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height )

View File

@@ -0,0 +1 @@
GLbitfield glQueryMatrixxOES ( GLfixed *mantissa, GLint *exponent )

View File

@@ -0,0 +1,44 @@
void glBindBuffer ( GLenum target, GLuint buffer )
void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage )
void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data )
void glClipPlanef ( GLenum plane, const GLfloat *equation )
void glClipPlanex ( GLenum plane, const GLfixed *equation )
void glColor4ub ( GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha )
void glColorPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )
void glDeleteBuffers ( GLsizei n, const GLuint *buffers )
void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset )
void glGenBuffers ( GLsizei n, GLuint *buffers )
void glGetBooleanv ( GLenum pname, GLboolean *params )
void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params )
void glGetClipPlanef ( GLenum pname, GLfloat *eqn )
void glGetClipPlanex ( GLenum pname, GLfixed *eqn )
void glGetFixedv ( GLenum pname, GLfixed *params )
void glGetFloatv ( GLenum pname, GLfloat *params )
void glGetLightfv ( GLenum light, GLenum pname, GLfloat *params )
void glGetLightxv ( GLenum light, GLenum pname, GLfixed *params )
void glGetMaterialfv ( GLenum face, GLenum pname, GLfloat *params )
void glGetMaterialxv ( GLenum face, GLenum pname, GLfixed *params )
// void glGetPointerv ( GLenum pname, void **params )
void glGetTexEnvfv ( GLenum env, GLenum pname, GLfloat *params )
void glGetTexEnviv ( GLenum env, GLenum pname, GLint *params )
void glGetTexEnvxv ( GLenum env, GLenum pname, GLfixed *params )
void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params )
void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params )
void glGetTexParameterxv ( GLenum target, GLenum pname, GLfixed *params )
GLboolean glIsBuffer ( GLuint buffer )
GLboolean glIsEnabled ( GLenum cap )
GLboolean glIsTexture ( GLuint texture )
void glNormalPointer ( GLenum type, GLsizei stride, GLint offset )
void glPointParameterf ( GLenum pname, GLfloat param )
void glPointParameterfv ( GLenum pname, const GLfloat *params )
void glPointParameterx ( GLenum pname, GLfixed param )
void glPointParameterxv ( GLenum pname, const GLfixed *params )
void glPointSizePointerOES ( GLenum type, GLsizei stride, const GLvoid *pointer )
void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )
void glTexEnvi ( GLenum target, GLenum pname, GLint param )
void glTexEnviv ( GLenum target, GLenum pname, const GLint *params )
void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params )
void glTexParameteri ( GLenum target, GLenum pname, GLint param )
void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params )
void glTexParameterxv ( GLenum target, GLenum pname, const GLfixed *params )
void glVertexPointer ( GLint size, GLenum type, GLsizei stride, GLint offset )

View File

@@ -0,0 +1,90 @@
void glBlendEquationSeparateOES ( GLenum modeRGB, GLenum modeAlpha )
void glBlendFuncSeparateOES ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha )
void glBlendEquationOES ( GLenum mode )
void glDrawTexsOES ( GLshort x, GLshort y, GLshort z, GLshort width, GLshort height )
void glDrawTexiOES ( GLint x, GLint y, GLint z, GLint width, GLint height )
void glDrawTexxOES ( GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height )
void glDrawTexsvOES ( const GLshort *coords )
void glDrawTexivOES ( const GLint *coords )
void glDrawTexxvOES ( const GLfixed *coords )
void glDrawTexfOES ( GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height )
void glDrawTexfvOES ( const GLfloat *coords )
void glEGLImageTargetTexture2DOES ( GLenum target, GLeglImageOES image )
void glEGLImageTargetRenderbufferStorageOES ( GLenum target, GLeglImageOES image )
void glAlphaFuncxOES ( GLenum func, GLclampx ref )
void glClearColorxOES ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha )
void glClearDepthxOES ( GLclampx depth )
void glClipPlanexOES ( GLenum plane, const GLfixed *equation )
void glColor4xOES ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha )
void glDepthRangexOES ( GLclampx zNear, GLclampx zFar )
void glFogxOES ( GLenum pname, GLfixed param )
void glFogxvOES ( GLenum pname, const GLfixed *params )
void glFrustumxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar )
void glGetClipPlanexOES ( GLenum pname, GLfixed *eqn )
void glGetFixedvOES ( GLenum pname, GLfixed *params )
void glGetLightxvOES ( GLenum light, GLenum pname, GLfixed *params )
void glGetMaterialxvOES ( GLenum face, GLenum pname, GLfixed *params )
void glGetTexEnvxvOES ( GLenum env, GLenum pname, GLfixed *params )
void glGetTexParameterxvOES ( GLenum target, GLenum pname, GLfixed *params )
void glLightModelxOES ( GLenum pname, GLfixed param )
void glLightModelxvOES ( GLenum pname, const GLfixed *params )
void glLightxOES ( GLenum light, GLenum pname, GLfixed param )
void glLightxvOES ( GLenum light, GLenum pname, const GLfixed *params )
void glLineWidthxOES ( GLfixed width )
void glLoadMatrixxOES ( const GLfixed *m )
void glMaterialxOES ( GLenum face, GLenum pname, GLfixed param )
void glMaterialxvOES ( GLenum face, GLenum pname, const GLfixed *params )
void glMultMatrixxOES ( const GLfixed *m )
void glMultiTexCoord4xOES ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q )
void glNormal3xOES ( GLfixed nx, GLfixed ny, GLfixed nz )
void glOrthoxOES ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar )
void glPointParameterxOES ( GLenum pname, GLfixed param )
void glPointParameterxvOES ( GLenum pname, const GLfixed *params )
void glPointSizexOES ( GLfixed size )
void glPolygonOffsetxOES ( GLfixed factor, GLfixed units )
void glRotatexOES ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z )
void glSampleCoveragexOES ( GLclampx value, GLboolean invert )
void glScalexOES ( GLfixed x, GLfixed y, GLfixed z )
void glTexEnvxOES ( GLenum target, GLenum pname, GLfixed param )
void glTexEnvxvOES ( GLenum target, GLenum pname, const GLfixed *params )
void glTexParameterxOES ( GLenum target, GLenum pname, GLfixed param )
void glTexParameterxvOES ( GLenum target, GLenum pname, const GLfixed *params )
void glTranslatexOES ( GLfixed x, GLfixed y, GLfixed z )
GLboolean glIsRenderbufferOES ( GLuint renderbuffer )
void glBindRenderbufferOES ( GLenum target, GLuint renderbuffer )
void glDeleteRenderbuffersOES ( GLsizei n, const GLuint *renderbuffers )
void glGenRenderbuffersOES ( GLsizei n, GLuint *renderbuffers )
void glRenderbufferStorageOES ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height )
void glGetRenderbufferParameterivOES ( GLenum target, GLenum pname, GLint *params )
GLboolean glIsFramebufferOES ( GLuint framebuffer )
void glBindFramebufferOES ( GLenum target, GLuint framebuffer )
void glDeleteFramebuffersOES ( GLsizei n, const GLuint *framebuffers )
void glGenFramebuffersOES ( GLsizei n, GLuint *framebuffers )
GLenum glCheckFramebufferStatusOES ( GLenum target )
void glFramebufferRenderbufferOES ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer )
void glFramebufferTexture2DOES ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level )
void glGetFramebufferAttachmentParameterivOES ( GLenum target, GLenum attachment, GLenum pname, GLint *params )
void glGenerateMipmapOES ( GLenum target )
// Hard to export to Java:
// void *glMapBufferOES ( GLenum target, GLenum access )
// GLboolean glUnmapBufferOES ( GLenum target )
// void glGetBufferPointervOES ( GLenum target, GLenum pname, void **params )
void glCurrentPaletteMatrixOES ( GLuint matrixpaletteindex )
void glLoadPaletteFromModelViewMatrixOES ( void )
void glMatrixIndexPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glWeightPointerOES ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer )
void glDepthRangefOES ( GLclampf zNear, GLclampf zFar )
void glFrustumfOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar )
void glOrthofOES ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar )
void glClipPlanefOES ( GLenum plane, const GLfloat *equation )
void glGetClipPlanefOES ( GLenum pname, GLfloat *eqn )
void glClearDepthfOES ( GLclampf depth )
void glTexGenfOES ( GLenum coord, GLenum pname, GLfloat param )
void glTexGenfvOES ( GLenum coord, GLenum pname, const GLfloat *params )
void glTexGeniOES ( GLenum coord, GLenum pname, GLint param )
void glTexGenivOES ( GLenum coord, GLenum pname, const GLint *params )
void glTexGenxOES ( GLenum coord, GLenum pname, GLfixed param )
void glTexGenxvOES ( GLenum coord, GLenum pname, const GLfixed *params )
void glGetTexGenfvOES ( GLenum coord, GLenum pname, GLfloat *params )
void glGetTexGenivOES ( GLenum coord, GLenum pname, GLint *params )
void glGetTexGenxvOES ( GLenum coord, GLenum pname, GLfixed *params )

View File

@@ -0,0 +1,145 @@
glClipPlanef check eqn 4
glClipPlanex check eqn 4
glGetClipPlanefOES check eqn 4
glGetClipPlanexOES check eqn 4
glDeleteBuffers check buffers n
glDeleteTextures check textures n
glDrawElements check_AIOOBE indices count
glFog ifcheck params 1 pname GL_FOG_MODE,GL_FOG_DENSITY,GL_FOG_START,GL_FOG_END ifcheck params 4 pname GL_FOG_COLOR
glGenBuffers check buffers n
glGenTextures check textures n
glGetClipPlane check eqn 4
glGetIntegerv ifcheck params 1 pname GL_ALPHA_BITS,GL_ALPHA_TEST_FUNC,GL_ALPHA_TEST_REF,GL_BLEND_DST,GL_BLUE_BITS,GL_COLOR_ARRAY_BUFFER_BINDING,GL_COLOR_ARRAY_SIZE,GL_COLOR_ARRAY_STRIDE,GL_COLOR_ARRAY_TYPE,GL_CULL_FACE,GL_DEPTH_BITS,GL_DEPTH_CLEAR_VALUE,GL_DEPTH_FUNC,GL_DEPTH_WRITEMASK,GL_FOG_DENSITY,GL_FOG_END,GL_FOG_MODE,GL_FOG_START,GL_FRONT_FACE,GL_GREEN_BITS,GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES,GL_IMPLEMENTATION_COLOR_READ_TYPE_OES,GL_LIGHT_MODEL_TWO_SIDE,GL_LINE_SMOOTH_HINT,GL_LINE_WIDTH,GL_LOGIC_OP_MODE,GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES,GL_MATRIX_INDEX_ARRAY_SIZE_OES,GL_MATRIX_INDEX_ARRAY_STRIDE_OES,GL_MATRIX_INDEX_ARRAY_TYPE_OES,GL_MATRIX_MODE,GL_MAX_CLIP_PLANES,GL_MAX_ELEMENTS_INDICES,GL_MAX_ELEMENTS_VERTICES,GL_MAX_LIGHTS,GL_MAX_MODELVIEW_STACK_DEPTH,GL_MAX_PALETTE_MATRICES_OES,GL_MAX_PROJECTION_STACK_DEPTH,GL_MAX_TEXTURE_SIZE,GL_MAX_TEXTURE_STACK_DEPTH,GL_MAX_TEXTURE_UNITS,GL_MAX_VERTEX_UNITS_OES,GL_MODELVIEW_STACK_DEPTH,GL_NORMAL_ARRAY_BUFFER_BINDING,GL_NORMAL_ARRAY_STRIDE,GL_NORMAL_ARRAY_TYPE,GL_NUM_COMPRESSED_TEXTURE_FORMATS,GL_PACK_ALIGNMENT,GL_PERSPECTIVE_CORRECTION_HINT,GL_POINT_SIZE,GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES,GL_POINT_SIZE_ARRAY_STRIDE_OES,GL_POINT_SIZE_ARRAY_TYPE_OES,GL_POINT_SMOOTH_HINT,GL_POLYGON_OFFSET_FACTOR,GL_POLYGON_OFFSET_UNITS,GL_PROJECTION_STACK_DEPTH,GL_RED_BITS,GL_SHADE_MODEL,GL_STENCIL_BITS,GL_STENCIL_CLEAR_VALUE,GL_STENCIL_FAIL,GL_STENCIL_FUNC,GL_STENCIL_PASS_DEPTH_FAIL,GL_STENCIL_PASS_DEPTH_PASS,GL_STENCIL_REF,GL_STENCIL_VALUE_MASK,GL_STENCIL_WRITEMASK,GL_SUBPIXEL_BITS,GL_TEXTURE_BINDING_2D,GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING,GL_TEXTURE_COORD_ARRAY_SIZE,GL_TEXTURE_COORD_ARRAY_STRIDE,GL_TEXTURE_COORD_ARRAY_TYPE,GL_TEXTURE_STACK_DEPTH,GL_UNPACK_ALIGNMENT,GL_VERTEX_ARRAY_BUFFER_BINDING,GL_VERTEX_ARRAY_SIZE,GL_VERTEX_ARRAY_STRIDE,GL_VERTEX_ARRAY_TYPE,GL_WEIGHT_ARRAY_BUFFER_BINDING_OES,GL_WEIGHT_ARRAY_SIZE_OES,GL_WEIGHT_ARRAY_STRIDE_OES,GL_WEIGHT_ARRAY_TYPE_OES ifcheck params 2 pname GL_ALIASED_POINT_SIZE_RANGE,GL_ALIASED_LINE_WIDTH_RANGE,GL_DEPTH_RANGE,GL_MAX_VIEWPORT_DIMS,GL_SMOOTH_LINE_WIDTH_RANGE,GL_SMOOTH_POINT_SIZE_RANGE ifcheck params 4 pname GL_COLOR_CLEAR_VALUE,GL_COLOR_WRITEMASK,GL_SCISSOR_BOX,GL_VIEWPORT ifcheck params 16 pname GL_MODELVIEW_MATRIX,GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES,GL_PROJECTION_MATRIX,GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES,GL_TEXTURE_MATRIX,GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES ifcheck params _NUM_COMPRESSED_TEXTURE_FORMATS pname GL_COMPRESSED_TEXTURE_FORMATS,GL_FOG_COLOR,GL_LIGHT_MODEL_AMBIENT
glGetLight ifcheck params 1 pname GL_SPOT_EXPONENT,GL_SPOT_CUTOFF,GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION,GL_QUADRATIC_ATTENUATION ifcheck params 3 pname GL_SPOT_DIRECTION ifcheck params 4 pname GL_AMBIENT,GL_DIFFUSE,GL_SPECULAR,GL_EMISSION
glGetMaterial ifcheck params 1 pname GL_SHININESS ifcheck params 4 pname GL_AMBIENT,GL_DIFFUSE,GL_SPECULAR,GL_EMISSION,GL_AMBIENT_AND_DIFFUSE
glGetTexEnv ifcheck params 1 pname GL_TEXTURE_ENV_MODE,GL_COMBINE_RGB,GL_COMBINE_ALPHA ifcheck params 4 pname GL_TEXTURE_ENV_COLOR
glGetTexParameter check params 1
glLightModel ifcheck params 1 pname GL_LIGHT_MODEL_TWO_SIDE ifcheck params 4 pname GL_LIGHT_MODEL_AMBIENT
glLight ifcheck params 1 pname GL_SPOT_EXPONENT,GL_SPOT_CUTOFF,GL_CONSTANT_ATTENUATION,GL_LINEAR_ATTENUATION,GL_QUADRATIC_ATTENUATION ifcheck params 3 pname GL_SPOT_DIRECTION ifcheck params 4 pname GL_AMBIENT,GL_DIFFUSE,GL_SPECULAR,GL_EMISSION
glLoadMatrix check m 16
glMaterial ifcheck params 1 pname GL_SHININESS ifcheck params 4 pname GL_AMBIENT,GL_DIFFUSE,GL_SPECULAR,GL_EMISSION,GL_AMBIENT_AND_DIFFUSE
glMultMatrix check m 16
glPointParameter check params 1
glTexEnv ifcheck params 1 pname GL_TEXTURE_ENV_MODE,GL_COMBINE_RGB,GL_COMBINE_ALPHA ifcheck params 4 pname GL_TEXTURE_ENV_COLOR
glTexImage2D nullAllowed
glTexSubImage2D nullAllowed
glBufferData nullAllowed
glTexParameter check params 1
glQueryMatrixxOES check mantissa 16 check exponent 16 return -1
glDrawTexfvOES check coords 5
glDrawTexivOES check coords 5
glDrawTexsvOES check coords 5
glDrawTexxvOES check coords 5
glBindFramebufferOES unsupported
glBindRenderbufferOES unsupported
glBlendEquation unsupported
glBlendEquationSeparate unsupported
glBlendFuncSeparate unsupported
glCheckFramebufferStatusOES unsupported return 0
glCurrentPaletteMatrixOES unsupported
glDeleteFramebuffersOES unsupported
glDeleteRenderbuffersOES unsupported
glFramebufferRenderbufferOES unsupported
glFramebufferStorageOES unsupported
glFramebufferTexture2DOES unsupported
glGenFramebuffersOES unsupported
glGenRenderbuffersOES unsupported
glGenerateMipmapOES unsupported
glGetBufferParameter unsupported
glGetFramebufferAttachmentParameterivOES unsupported
glGetRenderbufferParameterivOES unsupported
glGetTexGen unsupported
glIsFramebufferOES unsupported return JNI_FALSE
glIsRenderbufferOES unsupported return JNI_FALSE
glLoadPaletteFromModelViewMatrixOES unsupported
glMatrixIndexPointerOES unsupported
glRenderbufferStorageOES unsupported return false
glTexGen unsupported
glTexGenf unsupported
glTexGeni unsupported
glTexGenx unsupported
glWeightPointerOES unsupported
// Lots of unsupported
glAlphaFuncxOES unsupported
glBlendEquationOES unsupported
glBlendEquationSeparateOES unsupported
glBlendFuncSeparateOES unsupported
glClearColorxOES unsupported
glClearDepthfOES unsupported
glClearDepthxOES unsupported
glClipPlanefOES unsupported
glClipPlanefOES unsupported
glClipPlanexOES unsupported
glClipPlanexOES unsupported
glColor4xOES unsupported
glDepthRangefOES unsupported
glDepthRangexOES unsupported
glEGLImageTargetRenderbufferStorageOES unsupported
glEGLImageTargetTexture2DOES unsupported
glFogxOES unsupported
glFogxvOES unsupported
glFogxvOES unsupported
glFrustumfOES unsupported
glFrustumxOES unsupported
glGetClipPlanefOES unsupported
glGetClipPlanefOES unsupported
glGetClipPlanexOES unsupported
glGetClipPlanexOES unsupported
glGetFixedvOES unsupported
glGetFixedvOES unsupported
glGetLightxvOES unsupported
glGetLightxvOES unsupported
glGetMaterialxvOES unsupported
glGetMaterialxvOES unsupported
glGetTexEnvxvOES unsupported
glGetTexEnvxvOES unsupported
glGetTexGenfvOES unsupported
glGetTexGenfvOES unsupported
glGetTexGenivOES unsupported
glGetTexGenivOES unsupported
glGetTexGenxvOES unsupported
glGetTexGenxvOES unsupported
glGetTexParameterxvOES unsupported
glGetTexParameterxvOES unsupported
glLightModelxOES unsupported
glLightModelxvOES unsupported
glLightModelxvOES unsupported
glLightxOES unsupported
glLightxvOES unsupported
glLightxvOES unsupported
glLineWidthxOES unsupported
glLoadMatrixxOES unsupported
glLoadMatrixxOES unsupported
glMaterialxOES unsupported
glMaterialxvOES unsupported
glMaterialxvOES unsupported
glMultMatrixxOES unsupported
glMultMatrixxOES unsupported
glMultiTexCoord4xOES unsupported
glNormal3xOES unsupported
glOrthofOES unsupported
glOrthoxOES unsupported
glPointParameterxOES unsupported
glPointParameterxvOES unsupported
glPointParameterxvOES unsupported
glPointSizexOES unsupported
glPolygonOffsetxOES unsupported
glRotatexOES unsupported
glSampleCoveragexOES unsupported
glScalexOES unsupported
glTexEnvxOES unsupported
glTexEnvxvOES unsupported
glTexEnvxvOES unsupported
glTexGenfOES unsupported
glTexGenfvOES unsupported
glTexGenfvOES unsupported
glTexGeniOES unsupported
glTexGenivOES unsupported
glTexGenivOES unsupported
glTexGenxOES unsupported
glTexGenxvOES unsupported
glTexGenxvOES unsupported
glTexParameterxOES unsupported
glTexParameterxvOES unsupported
glTexParameterxvOES unsupported
glTranslatexOES unsupported

View File

@@ -0,0 +1,40 @@
import java.io.PrintStream;
/**
* Emits a Java interface and Java & C implementation for a C function.
*
* <p> The Java interface will have Buffer and array variants for functions that
* have a typed pointer argument. The array variant will convert a single "<type> *data"
* argument to a pair of arguments "<type>[] data, int offset".
*/
public class GLESCodeEmitter extends JniCodeEmitter {
PrintStream mJavaImplStream;
PrintStream mCStream;
PrintStream mJavaInterfaceStream;
/**
*/
public GLESCodeEmitter(String classPathName,
ParameterChecker checker,
PrintStream javaImplStream,
PrintStream cStream) {
mClassPathName = classPathName;
mChecker = checker;
mJavaImplStream = javaImplStream;
mCStream = cStream;
mUseContextPointer = false;
mUseStaticMethods = true;
}
public void emitCode(CFunc cfunc, String original) {
emitCode(cfunc, original, null, mJavaImplStream,
mCStream);
}
public void emitNativeRegistration(String nativeRegistrationName) {
emitNativeRegistration(nativeRegistrationName, mCStream);
}
}

View File

@@ -31,18 +31,18 @@ public class GenerateGL {
CFunc cfunc = CFunc.parseCFunc(s);
String fname = cfunc.getName();
File f = new File("stubs/" + fname +
File f = new File("stubs/jsr239/" + fname +
".java-1" + version + "-if");
if (f.exists()) {
System.out.println("Special-casing function " + fname);
copy("stubs/" + fname +
copy("stubs/jsr239/" + fname +
".java-1" + version + "-if", glStream);
copy("stubs/" + fname + ".java-impl", glImplStream);
copy("stubs/" + fname + ".cpp", cStream);
copy("stubs/jsr239/" + fname + ".java-impl", glImplStream);
copy("stubs/jsr239/" + fname + ".cpp", cStream);
// Register native function names
// This should be improved to require fewer discrete files
String filename = "stubs/" + fname + ".nativeReg";
String filename = "stubs/jsr239/" + fname + ".nativeReg";
BufferedReader br =
new BufferedReader(new FileReader(filename));
String nfunc;
@@ -135,13 +135,13 @@ public class GenerateGL {
glImplStream.println("/* //device/java/android/" + glImplFilename);
cStream.println("/* //device/libs/android_runtime/" + cFilename);
copy("stubs/GL10Header.java-if", gl10Stream);
copy("stubs/GL10ExtHeader.java-if", gl10ExtStream);
copy("stubs/GL11Header.java-if", gl11Stream);
copy("stubs/GL11ExtHeader.java-if", gl11ExtStream);
copy("stubs/GL11ExtensionPackHeader.java-if", gl11ExtPackStream);
copy("stubs/GLImplHeader.java-impl", glImplStream);
copy("stubs/GLCHeader.cpp", cStream);
copy("stubs/jsr239/GL10Header.java-if", gl10Stream);
copy("stubs/jsr239/GL10ExtHeader.java-if", gl10ExtStream);
copy("stubs/jsr239/GL11Header.java-if", gl11Stream);
copy("stubs/jsr239/GL11ExtHeader.java-if", gl11ExtStream);
copy("stubs/jsr239/GL11ExtensionPackHeader.java-if", gl11ExtPackStream);
copy("stubs/jsr239/GLImplHeader.java-impl", glImplStream);
copy("stubs/jsr239/GLCHeader.cpp", cStream);
emit(0, false, false,
emitter, spec10Reader, gl10Stream, glImplStream, cStream);

View File

@@ -0,0 +1,99 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
public class GenerateGLES {
static void copy(String filename, PrintStream out) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(filename));
String s;
while ((s = br.readLine()) != null) {
out.println(s);
}
}
private static void emit(GLESCodeEmitter emitter,
BufferedReader specReader,
PrintStream glStream,
PrintStream cStream) throws Exception {
String s = null;
while ((s = specReader.readLine()) != null) {
if (s.trim().startsWith("//")) {
continue;
}
CFunc cfunc = CFunc.parseCFunc(s);
String fname = cfunc.getName();
String stubRoot = "stubs/gles11/" + fname;
String javaPath = stubRoot + ".java";
File f = new File(javaPath);
if (f.exists()) {
System.out.println("Special-casing function " + fname);
copy(javaPath, glStream);
copy(stubRoot + ".cpp", cStream);
// Register native function names
// This should be improved to require fewer discrete files
String filename = stubRoot + ".nativeReg";
BufferedReader br =
new BufferedReader(new FileReader(filename));
String nfunc;
while ((nfunc = br.readLine()) != null) {
emitter.addNativeRegistration(nfunc);
}
} else {
emitter.emitCode(cfunc, s);
}
}
}
public static void main(String[] args) throws Exception {
int aidx = 0;
while ((aidx < args.length) && (args[aidx].charAt(0) == '-')) {
switch (args[aidx].charAt(1)) {
default:
System.err.println("Unknown flag: " + args[aidx]);
System.exit(1);
}
aidx++;
}
BufferedReader checksReader =
new BufferedReader(new FileReader("specs/gles11/checks.spec"));
ParameterChecker checker = new ParameterChecker(checksReader);
// Generate files
for(String suffix: new String[] {"GLES10", "GLES10Ext",
"GLES11", "GLES11Ext"})
{
BufferedReader spec11Reader =
new BufferedReader(new FileReader("specs/gles11/"
+ suffix + ".spec"));
String gl11Filename = "android/opengl/" + suffix + ".java";
String gl11cFilename = "android_opengl_" + suffix + ".cpp";
PrintStream gl11Stream =
new PrintStream(new FileOutputStream("out/" + gl11Filename));
PrintStream gl11cStream =
new PrintStream(new FileOutputStream("out/" + gl11cFilename));
gl11Stream.println("/*");
gl11cStream.println("/*");
copy("stubs/gles11/" + suffix + "Header.java-if", gl11Stream);
copy("stubs/gles11/" + suffix + "cHeader.cpp", gl11cStream);
GLESCodeEmitter emitter = new GLESCodeEmitter(
"android/opengl/" + suffix,
checker, gl11Stream, gl11cStream);
emit(emitter, spec11Reader, gl11Stream, gl11cStream);
emitter.emitNativeRegistration("register_android_opengl_jni_"
+ suffix);
gl11Stream.println("}");
gl11Stream.close();
gl11cStream.close();
}
}
}

View File

@@ -104,34 +104,39 @@ public class JFunc {
}
public static JFunc convert(CFunc cfunc, boolean useArray) {
JFunc jfunc = new JFunc(cfunc);
jfunc.setName(cfunc.getName());
jfunc.setType(JType.convert(cfunc.getType(), false));
try {
JFunc jfunc = new JFunc(cfunc);
jfunc.setName(cfunc.getName());
jfunc.setType(JType.convert(cfunc.getType(), false));
int numArgs = cfunc.getNumArgs();
int numOffsets = 0;
for (int i = 0; i < numArgs; i++) {
CType cArgType = cfunc.getArgType(i);
if (cArgType.isTypedPointer() && useArray) {
++numOffsets;
}
}
for (int i = 0; i < numArgs; i++) {
String cArgName = cfunc.getArgName(i);
CType cArgType = cfunc.getArgType(i);
jfunc.addArgument(cArgName, JType.convert(cArgType, useArray), i);
if (cArgType.isTypedPointer() && useArray) {
if (numOffsets > 1) {
jfunc.addArgument(cArgName + "Offset", new JType("int"), i);
} else {
jfunc.addArgument("offset", new JType("int"), i);
int numArgs = cfunc.getNumArgs();
int numOffsets = 0;
for (int i = 0; i < numArgs; i++) {
CType cArgType = cfunc.getArgType(i);
if (cArgType.isTypedPointer() && useArray) {
++numOffsets;
}
}
}
return jfunc;
for (int i = 0; i < numArgs; i++) {
String cArgName = cfunc.getArgName(i);
CType cArgType = cfunc.getArgType(i);
jfunc.addArgument(cArgName, JType.convert(cArgType, useArray), i);
if (cArgType.isTypedPointer() && useArray) {
if (numOffsets > 1) {
jfunc.addArgument(cArgName + "Offset", new JType("int"), i);
} else {
jfunc.addArgument("offset", new JType("int"), i);
}
}
}
return jfunc;
} catch (RuntimeException e) {
System.err.println("Failed to convert function " + cfunc);
throw e;
}
}
@Override

View File

@@ -36,6 +36,8 @@ public class JType {
new JType("java.nio.Buffer", true, false));
typeMapping.put(new CType("void", false, true),
new JType("java.nio.Buffer", true, false));
typeMapping.put(new CType("GLeglImageOES", false, false),
new JType("java.nio.Buffer", true, false));
// Typed pointers map to typed Buffers
typeMapping.put(new CType("GLboolean", false, true),

View File

@@ -8,6 +8,7 @@ public class JniCodeEmitter {
static final boolean mUseCPlusPlus = true;
protected boolean mUseContextPointer = true;
protected boolean mUseStaticMethods = false;
protected String mClassPathName;
protected ParameterChecker mChecker;
protected List<String> nativeRegistrations = new ArrayList<String>();
@@ -67,7 +68,9 @@ public class JniCodeEmitter {
emitNativeDeclaration(jfunc, javaImplStream);
emitJavaCode(jfunc, javaImplStream);
}
emitJavaInterfaceCode(jfunc, javaInterfaceStream);
if (javaInterfaceStream != null) {
emitJavaInterfaceCode(jfunc, javaInterfaceStream);
}
if (!duplicate) {
emitJniCode(jfunc, cStream);
}
@@ -86,7 +89,9 @@ public class JniCodeEmitter {
if (!duplicate) {
emitNativeDeclaration(jfunc, javaImplStream);
}
emitJavaInterfaceCode(jfunc, javaInterfaceStream);
if (javaInterfaceStream != null) {
emitJavaInterfaceCode(jfunc, javaInterfaceStream);
}
if (!duplicate) {
emitJavaCode(jfunc, javaImplStream);
emitJniCode(jfunc, cStream);
@@ -405,18 +410,20 @@ public class JniCodeEmitter {
return;
}
String maybeStatic = mUseStaticMethods ? "static " : "";
if (isPointerFunc) {
out.println(indent +
(nativeDecl ? "private native " :
(interfaceDecl ? "" : "public ")) +
(nativeDecl ? "private " + maybeStatic +"native " :
(interfaceDecl ? "" : "public ") + maybeStatic) +
jfunc.getType() + " " +
jfunc.getName() +
(nativeDecl ? "Bounds" : "") +
"(");
} else {
out.println(indent +
(nativeDecl ? "public native " :
(interfaceDecl ? "" : "public ")) +
(nativeDecl ? "public " + maybeStatic +"native " :
(interfaceDecl ? "" : "public ") + maybeStatic) +
jfunc.getType() + " " +
jfunc.getName() +
"(");
@@ -508,7 +515,8 @@ public class JniCodeEmitter {
nativeRegistrations.add(s);
}
public void emitNativeRegistration(PrintStream cStream) {
public void emitNativeRegistration(String registrationFunctionName,
PrintStream cStream) {
cStream.println("static const char *classPathName = \"" +
mClassPathName +
"\";");
@@ -527,7 +535,7 @@ public class JniCodeEmitter {
cStream.println();
cStream.println("int register_com_google_android_gles_jni_GLImpl(JNIEnv *_env)");
cStream.println("int " + registrationFunctionName + "(JNIEnv *_env)");
cStream.println("{");
cStream.println(indent +
"int err;");

View File

@@ -69,6 +69,6 @@ public class Jsr239CodeEmitter extends JniCodeEmitter implements CodeEmitter {
}
public void emitNativeRegistration() {
emitNativeRegistration(mCStream);
emitNativeRegistration("register_com_google_android_gles_jni_GLImpl", mCStream);
}
}

View File

@@ -0,0 +1,26 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
public class GLES10Ext {
native private static void _nativeClassInit();
static {
_nativeClassInit();
}

View File

@@ -0,0 +1,129 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <assert.h>
#include <GLES/gl.h>
#include <private/opengles/gl_context.h>
#define _NUM_COMPRESSED_TEXTURE_FORMATS \
(::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
static int initialized = 0;
static jclass nioAccessClass;
static jclass bufferClass;
static jclass OOMEClass;
static jclass UOEClass;
static jclass IAEClass;
static jclass AIOOBEClass;
static jmethodID getBasePointerID;
static jmethodID getBaseArrayID;
static jmethodID getBaseArrayOffsetID;
static jfieldID positionID;
static jfieldID limitID;
static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
"getBasePointer", "(Ljava/nio/Buffer;)J");
getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
positionID = _env->GetFieldID(bufferClass, "position", "I");
limitID = _env->GetFieldID(bufferClass, "limit", "I");
elementSizeShiftID =
_env->GetFieldID(bufferClass, "_elementSizeShift", "I");
}
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
nativeClassInitBuffer(_env);
jclass IAEClassLocal =
_env->FindClass("java/lang/IllegalArgumentException");
jclass OOMEClassLocal =
_env->FindClass("java/lang/OutOfMemoryError");
jclass UOEClassLocal =
_env->FindClass("java/lang/UnsupportedOperationException");
jclass AIOOBEClassLocal =
_env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
}
static void *
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
{
jint position;
jint limit;
jint elementSizeShift;
jlong pointer;
jint offset;
void *data;
position = _env->GetIntField(buffer, positionID);
limit = _env->GetIntField(buffer, limitID);
elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
*remaining = (limit - position) << elementSizeShift;
pointer = _env->CallStaticLongMethod(nioAccessClass,
getBasePointerID, buffer);
if (pointer != 0L) {
*array = NULL;
return (void *) (jint) pointer;
}
*array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
getBaseArrayID, buffer);
offset = _env->CallStaticIntMethod(nioAccessClass,
getBaseArrayOffsetID, buffer);
data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
return (void *) ((char *) data + offset);
}
static void
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
_env->ReleasePrimitiveArrayCritical(array, data,
commit ? 0 : JNI_ABORT);
}
// --------------------------------------------------------------------------

View File

@@ -0,0 +1,271 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
import java.nio.Buffer;
public class GLES10 {
public static final int GL_ADD = 0x0104;
public static final int GL_ALIASED_LINE_WIDTH_RANGE = 0x846E;
public static final int GL_ALIASED_POINT_SIZE_RANGE = 0x846D;
public static final int GL_ALPHA = 0x1906;
public static final int GL_ALPHA_BITS = 0x0D55;
public static final int GL_ALPHA_TEST = 0x0BC0;
public static final int GL_ALWAYS = 0x0207;
public static final int GL_AMBIENT = 0x1200;
public static final int GL_AMBIENT_AND_DIFFUSE = 0x1602;
public static final int GL_AND = 0x1501;
public static final int GL_AND_INVERTED = 0x1504;
public static final int GL_AND_REVERSE = 0x1502;
public static final int GL_BACK = 0x0405;
public static final int GL_BLEND = 0x0BE2;
public static final int GL_BLUE_BITS = 0x0D54;
public static final int GL_BYTE = 0x1400;
public static final int GL_CCW = 0x0901;
public static final int GL_CLAMP_TO_EDGE = 0x812F;
public static final int GL_CLEAR = 0x1500;
public static final int GL_COLOR_ARRAY = 0x8076;
public static final int GL_COLOR_BUFFER_BIT = 0x4000;
public static final int GL_COLOR_LOGIC_OP = 0x0BF2;
public static final int GL_COLOR_MATERIAL = 0x0B57;
public static final int GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3;
public static final int GL_CONSTANT_ATTENUATION = 0x1207;
public static final int GL_COPY = 0x1503;
public static final int GL_COPY_INVERTED = 0x150C;
public static final int GL_CULL_FACE = 0x0B44;
public static final int GL_CW = 0x0900;
public static final int GL_DECAL = 0x2101;
public static final int GL_DECR = 0x1E03;
public static final int GL_DEPTH_BITS = 0x0D56;
public static final int GL_DEPTH_BUFFER_BIT = 0x0100;
public static final int GL_DEPTH_TEST = 0x0B71;
public static final int GL_DIFFUSE = 0x1201;
public static final int GL_DITHER = 0x0BD0;
public static final int GL_DONT_CARE = 0x1100;
public static final int GL_DST_ALPHA = 0x0304;
public static final int GL_DST_COLOR = 0x0306;
public static final int GL_EMISSION = 0x1600;
public static final int GL_EQUAL = 0x0202;
public static final int GL_EQUIV = 0x1509;
public static final int GL_EXP = 0x0800;
public static final int GL_EXP2 = 0x0801;
public static final int GL_EXTENSIONS = 0x1F03;
public static final int GL_FALSE = 0;
public static final int GL_FASTEST = 0x1101;
public static final int GL_FIXED = 0x140C;
public static final int GL_FLAT = 0x1D00;
public static final int GL_FLOAT = 0x1406;
public static final int GL_FOG = 0x0B60;
public static final int GL_FOG_COLOR = 0x0B66;
public static final int GL_FOG_DENSITY = 0x0B62;
public static final int GL_FOG_END = 0x0B64;
public static final int GL_FOG_HINT = 0x0C54;
public static final int GL_FOG_MODE = 0x0B65;
public static final int GL_FOG_START = 0x0B63;
public static final int GL_FRONT = 0x0404;
public static final int GL_FRONT_AND_BACK = 0x0408;
public static final int GL_GEQUAL = 0x0206;
public static final int GL_GREATER = 0x0204;
public static final int GL_GREEN_BITS = 0x0D53;
public static final int GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B;
public static final int GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A;
public static final int GL_INCR = 0x1E02;
public static final int GL_INVALID_ENUM = 0x0500;
public static final int GL_INVALID_OPERATION = 0x0502;
public static final int GL_INVALID_VALUE = 0x0501;
public static final int GL_INVERT = 0x150A;
public static final int GL_KEEP = 0x1E00;
public static final int GL_LEQUAL = 0x0203;
public static final int GL_LESS = 0x0201;
public static final int GL_LIGHT_MODEL_AMBIENT = 0x0B53;
public static final int GL_LIGHT_MODEL_TWO_SIDE = 0x0B52;
public static final int GL_LIGHT0 = 0x4000;
public static final int GL_LIGHT1 = 0x4001;
public static final int GL_LIGHT2 = 0x4002;
public static final int GL_LIGHT3 = 0x4003;
public static final int GL_LIGHT4 = 0x4004;
public static final int GL_LIGHT5 = 0x4005;
public static final int GL_LIGHT6 = 0x4006;
public static final int GL_LIGHT7 = 0x4007;
public static final int GL_LIGHTING = 0x0B50;
public static final int GL_LINE_LOOP = 0x0002;
public static final int GL_LINE_SMOOTH = 0x0B20;
public static final int GL_LINE_SMOOTH_HINT = 0x0C52;
public static final int GL_LINE_STRIP = 0x0003;
public static final int GL_LINEAR = 0x2601;
public static final int GL_LINEAR_ATTENUATION = 0x1208;
public static final int GL_LINEAR_MIPMAP_LINEAR = 0x2703;
public static final int GL_LINEAR_MIPMAP_NEAREST = 0x2701;
public static final int GL_LINES = 0x0001;
public static final int GL_LUMINANCE = 0x1909;
public static final int GL_LUMINANCE_ALPHA = 0x190A;
public static final int GL_MAX_ELEMENTS_INDICES = 0x80E9;
public static final int GL_MAX_ELEMENTS_VERTICES = 0x80E8;
public static final int GL_MAX_LIGHTS = 0x0D31;
public static final int GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36;
public static final int GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38;
public static final int GL_MAX_TEXTURE_SIZE = 0x0D33;
public static final int GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39;
public static final int GL_MAX_TEXTURE_UNITS = 0x84E2;
public static final int GL_MAX_VIEWPORT_DIMS = 0x0D3A;
public static final int GL_MODELVIEW = 0x1700;
public static final int GL_MODULATE = 0x2100;
public static final int GL_MULTISAMPLE = 0x809D;
public static final int GL_NAND = 0x150E;
public static final int GL_NEAREST = 0x2600;
public static final int GL_NEAREST_MIPMAP_LINEAR = 0x2702;
public static final int GL_NEAREST_MIPMAP_NEAREST = 0x2700;
public static final int GL_NEVER = 0x0200;
public static final int GL_NICEST = 0x1102;
public static final int GL_NO_ERROR = 0;
public static final int GL_NOOP = 0x1505;
public static final int GL_NOR = 0x1508;
public static final int GL_NORMAL_ARRAY = 0x8075;
public static final int GL_NORMALIZE = 0x0BA1;
public static final int GL_NOTEQUAL = 0x0205;
public static final int GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
public static final int GL_ONE = 1;
public static final int GL_ONE_MINUS_DST_ALPHA = 0x0305;
public static final int GL_ONE_MINUS_DST_COLOR = 0x0307;
public static final int GL_ONE_MINUS_SRC_ALPHA = 0x0303;
public static final int GL_ONE_MINUS_SRC_COLOR = 0x0301;
public static final int GL_OR = 0x1507;
public static final int GL_OR_INVERTED = 0x150D;
public static final int GL_OR_REVERSE = 0x150B;
public static final int GL_OUT_OF_MEMORY = 0x0505;
public static final int GL_PACK_ALIGNMENT = 0x0D05;
public static final int GL_PALETTE4_R5_G6_B5_OES = 0x8B92;
public static final int GL_PALETTE4_RGB5_A1_OES = 0x8B94;
public static final int GL_PALETTE4_RGB8_OES = 0x8B90;
public static final int GL_PALETTE4_RGBA4_OES = 0x8B93;
public static final int GL_PALETTE4_RGBA8_OES = 0x8B91;
public static final int GL_PALETTE8_R5_G6_B5_OES = 0x8B97;
public static final int GL_PALETTE8_RGB5_A1_OES = 0x8B99;
public static final int GL_PALETTE8_RGB8_OES = 0x8B95;
public static final int GL_PALETTE8_RGBA4_OES = 0x8B98;
public static final int GL_PALETTE8_RGBA8_OES = 0x8B96;
public static final int GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50;
public static final int GL_POINT_SMOOTH = 0x0B10;
public static final int GL_POINT_SMOOTH_HINT = 0x0C51;
public static final int GL_POINTS = 0x0000;
public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
public static final int GL_POINT_SIZE = 0x0B11;
public static final int GL_POLYGON_OFFSET_FILL = 0x8037;
public static final int GL_POLYGON_SMOOTH_HINT = 0x0C53;
public static final int GL_POSITION = 0x1203;
public static final int GL_PROJECTION = 0x1701;
public static final int GL_QUADRATIC_ATTENUATION = 0x1209;
public static final int GL_RED_BITS = 0x0D52;
public static final int GL_RENDERER = 0x1F01;
public static final int GL_REPEAT = 0x2901;
public static final int GL_REPLACE = 0x1E01;
public static final int GL_RESCALE_NORMAL = 0x803A;
public static final int GL_RGB = 0x1907;
public static final int GL_RGBA = 0x1908;
public static final int GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
public static final int GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
public static final int GL_SAMPLE_COVERAGE = 0x80A0;
public static final int GL_SCISSOR_TEST = 0x0C11;
public static final int GL_SET = 0x150F;
public static final int GL_SHININESS = 0x1601;
public static final int GL_SHORT = 0x1402;
public static final int GL_SMOOTH = 0x1D01;
public static final int GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
public static final int GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
public static final int GL_SPECULAR = 0x1202;
public static final int GL_SPOT_CUTOFF = 0x1206;
public static final int GL_SPOT_DIRECTION = 0x1204;
public static final int GL_SPOT_EXPONENT = 0x1205;
public static final int GL_SRC_ALPHA = 0x0302;
public static final int GL_SRC_ALPHA_SATURATE = 0x0308;
public static final int GL_SRC_COLOR = 0x0300;
public static final int GL_STACK_OVERFLOW = 0x0503;
public static final int GL_STACK_UNDERFLOW = 0x0504;
public static final int GL_STENCIL_BITS = 0x0D57;
public static final int GL_STENCIL_BUFFER_BIT = 0x0400;
public static final int GL_STENCIL_TEST = 0x0B90;
public static final int GL_SUBPIXEL_BITS = 0x0D50;
public static final int GL_TEXTURE = 0x1702;
public static final int GL_TEXTURE_2D = 0x0DE1;
public static final int GL_TEXTURE_COORD_ARRAY = 0x8078;
public static final int GL_TEXTURE_ENV = 0x2300;
public static final int GL_TEXTURE_ENV_COLOR = 0x2201;
public static final int GL_TEXTURE_ENV_MODE = 0x2200;
public static final int GL_TEXTURE_MAG_FILTER = 0x2800;
public static final int GL_TEXTURE_MIN_FILTER = 0x2801;
public static final int GL_TEXTURE_WRAP_S = 0x2802;
public static final int GL_TEXTURE_WRAP_T = 0x2803;
public static final int GL_TEXTURE0 = 0x84C0;
public static final int GL_TEXTURE1 = 0x84C1;
public static final int GL_TEXTURE2 = 0x84C2;
public static final int GL_TEXTURE3 = 0x84C3;
public static final int GL_TEXTURE4 = 0x84C4;
public static final int GL_TEXTURE5 = 0x84C5;
public static final int GL_TEXTURE6 = 0x84C6;
public static final int GL_TEXTURE7 = 0x84C7;
public static final int GL_TEXTURE8 = 0x84C8;
public static final int GL_TEXTURE9 = 0x84C9;
public static final int GL_TEXTURE10 = 0x84CA;
public static final int GL_TEXTURE11 = 0x84CB;
public static final int GL_TEXTURE12 = 0x84CC;
public static final int GL_TEXTURE13 = 0x84CD;
public static final int GL_TEXTURE14 = 0x84CE;
public static final int GL_TEXTURE15 = 0x84CF;
public static final int GL_TEXTURE16 = 0x84D0;
public static final int GL_TEXTURE17 = 0x84D1;
public static final int GL_TEXTURE18 = 0x84D2;
public static final int GL_TEXTURE19 = 0x84D3;
public static final int GL_TEXTURE20 = 0x84D4;
public static final int GL_TEXTURE21 = 0x84D5;
public static final int GL_TEXTURE22 = 0x84D6;
public static final int GL_TEXTURE23 = 0x84D7;
public static final int GL_TEXTURE24 = 0x84D8;
public static final int GL_TEXTURE25 = 0x84D9;
public static final int GL_TEXTURE26 = 0x84DA;
public static final int GL_TEXTURE27 = 0x84DB;
public static final int GL_TEXTURE28 = 0x84DC;
public static final int GL_TEXTURE29 = 0x84DD;
public static final int GL_TEXTURE30 = 0x84DE;
public static final int GL_TEXTURE31 = 0x84DF;
public static final int GL_TRIANGLE_FAN = 0x0006;
public static final int GL_TRIANGLE_STRIP = 0x0005;
public static final int GL_TRIANGLES = 0x0004;
public static final int GL_TRUE = 1;
public static final int GL_UNPACK_ALIGNMENT = 0x0CF5;
public static final int GL_UNSIGNED_BYTE = 0x1401;
public static final int GL_UNSIGNED_SHORT = 0x1403;
public static final int GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033;
public static final int GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034;
public static final int GL_UNSIGNED_SHORT_5_6_5 = 0x8363;
public static final int GL_VENDOR = 0x1F00;
public static final int GL_VERSION = 0x1F02;
public static final int GL_VERTEX_ARRAY = 0x8074;
public static final int GL_XOR = 0x1506;
public static final int GL_ZERO = 0;
native private static void _nativeClassInit();
static {
_nativeClassInit();
}
private static Buffer _colorPointer;
private static Buffer _normalPointer;
private static Buffer _texCoordPointer;
private static Buffer _vertexPointer;

View File

@@ -0,0 +1,129 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <assert.h>
#include <GLES/gl.h>
#include <private/opengles/gl_context.h>
#define _NUM_COMPRESSED_TEXTURE_FORMATS \
(::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
static int initialized = 0;
static jclass nioAccessClass;
static jclass bufferClass;
static jclass OOMEClass;
static jclass UOEClass;
static jclass IAEClass;
static jclass AIOOBEClass;
static jmethodID getBasePointerID;
static jmethodID getBaseArrayID;
static jmethodID getBaseArrayOffsetID;
static jfieldID positionID;
static jfieldID limitID;
static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
"getBasePointer", "(Ljava/nio/Buffer;)J");
getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
positionID = _env->GetFieldID(bufferClass, "position", "I");
limitID = _env->GetFieldID(bufferClass, "limit", "I");
elementSizeShiftID =
_env->GetFieldID(bufferClass, "_elementSizeShift", "I");
}
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
nativeClassInitBuffer(_env);
jclass IAEClassLocal =
_env->FindClass("java/lang/IllegalArgumentException");
jclass OOMEClassLocal =
_env->FindClass("java/lang/OutOfMemoryError");
jclass UOEClassLocal =
_env->FindClass("java/lang/UnsupportedOperationException");
jclass AIOOBEClassLocal =
_env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
}
static void *
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
{
jint position;
jint limit;
jint elementSizeShift;
jlong pointer;
jint offset;
void *data;
position = _env->GetIntField(buffer, positionID);
limit = _env->GetIntField(buffer, limitID);
elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
*remaining = (limit - position) << elementSizeShift;
pointer = _env->CallStaticLongMethod(nioAccessClass,
getBasePointerID, buffer);
if (pointer != 0L) {
*array = NULL;
return (void *) (jint) pointer;
}
*array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
getBaseArrayID, buffer);
offset = _env->CallStaticIntMethod(nioAccessClass,
getBaseArrayOffsetID, buffer);
data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
return (void *) ((char *) data + offset);
}
static void
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
_env->ReleasePrimitiveArrayCritical(array, data,
commit ? 0 : JNI_ABORT);
}
// --------------------------------------------------------------------------

View File

@@ -0,0 +1,130 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
public class GLES11Ext {
public static final int GL_BLEND_EQUATION_RGB_OES = 0x8009;
public static final int GL_BLEND_EQUATION_ALPHA_OES = 0x883D;
public static final int GL_BLEND_DST_RGB_OES = 0x80C8;
public static final int GL_BLEND_SRC_RGB_OES = 0x80C9;
public static final int GL_BLEND_DST_ALPHA_OES = 0x80CA;
public static final int GL_BLEND_SRC_ALPHA_OES = 0x80CB;
public static final int GL_BLEND_EQUATION_OES = 0x8009;
public static final int GL_FUNC_ADD_OES = 0x8006;
public static final int GL_FUNC_SUBTRACT_OES = 0x800A;
public static final int GL_FUNC_REVERSE_SUBTRACT_OES = 0x800B;
public static final int GL_ETC1_RGB8_OES = 0x8D64;
public static final int GL_DEPTH_COMPONENT24_OES = 0x81A6;
public static final int GL_DEPTH_COMPONENT32_OES = 0x81A7;
public static final int GL_TEXTURE_CROP_RECT_OES = 0x8B9D;
public static final int GL_FIXED_OES = 0x140C;
public static final int GL_NONE_OES = 0;
public static final int GL_FRAMEBUFFER_OES = 0x8D40;
public static final int GL_RENDERBUFFER_OES = 0x8D41;
public static final int GL_RGBA4_OES = 0x8056;
public static final int GL_RGB5_A1_OES = 0x8057;
public static final int GL_RGB565_OES = 0x8D62;
public static final int GL_DEPTH_COMPONENT16_OES = 0x81A5;
public static final int GL_RENDERBUFFER_WIDTH_OES = 0x8D42;
public static final int GL_RENDERBUFFER_HEIGHT_OES = 0x8D43;
public static final int GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44;
public static final int GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50;
public static final int GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51;
public static final int GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52;
public static final int GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53;
public static final int GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54;
public static final int GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55;
public static final int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0;
public static final int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1;
public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2;
public static final int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3;
public static final int GL_COLOR_ATTACHMENT0_OES = 0x8CE0;
public static final int GL_DEPTH_ATTACHMENT_OES = 0x8D00;
public static final int GL_STENCIL_ATTACHMENT_OES = 0x8D20;
public static final int GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5;
public static final int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6;
public static final int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7;
public static final int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9;
public static final int GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA;
public static final int GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD;
public static final int GL_FRAMEBUFFER_BINDING_OES = 0x8CA6;
public static final int GL_RENDERBUFFER_BINDING_OES = 0x8CA7;
public static final int GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8;
public static final int GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506;
public static final int GL_WRITE_ONLY_OES = 0x88B9;
public static final int GL_BUFFER_ACCESS_OES = 0x88BB;
public static final int GL_BUFFER_MAPPED_OES = 0x88BC;
public static final int GL_BUFFER_MAP_POINTER_OES = 0x88BD;
public static final int GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D;
public static final int GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E;
public static final int GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F;
public static final int GL_MAX_VERTEX_UNITS_OES = 0x86A4;
public static final int GL_MAX_PALETTE_MATRICES_OES = 0x8842;
public static final int GL_MATRIX_PALETTE_OES = 0x8840;
public static final int GL_MATRIX_INDEX_ARRAY_OES = 0x8844;
public static final int GL_WEIGHT_ARRAY_OES = 0x86AD;
public static final int GL_CURRENT_PALETTE_MATRIX_OES = 0x8843;
public static final int GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846;
public static final int GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847;
public static final int GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848;
public static final int GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849;
public static final int GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E;
public static final int GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB;
public static final int GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9;
public static final int GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA;
public static final int GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC;
public static final int GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E;
public static final int GL_DEPTH_STENCIL_OES = 0x84F9;
public static final int GL_UNSIGNED_INT_24_8_OES = 0x84FA;
public static final int GL_DEPTH24_STENCIL8_OES = 0x88F0;
public static final int GL_RGB8_OES = 0x8051;
public static final int GL_RGBA8_OES = 0x8058;
public static final int GL_STENCIL_INDEX1_OES = 0x8D46;
public static final int GL_STENCIL_INDEX4_OES = 0x8D47;
public static final int GL_STENCIL_INDEX8_OES = 0x8D48;
public static final int GL_INCR_WRAP_OES = 0x8507;
public static final int GL_DECR_WRAP_OES = 0x8508;
public static final int GL_NORMAL_MAP_OES = 0x8511;
public static final int GL_REFLECTION_MAP_OES = 0x8512;
public static final int GL_TEXTURE_CUBE_MAP_OES = 0x8513;
public static final int GL_TEXTURE_BINDING_CUBE_MAP_OES = 0x8514;
public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES = 0x8515;
public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES = 0x8516;
public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES = 0x8517;
public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES = 0x8518;
public static final int GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES = 0x8519;
public static final int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES = 0x851A;
public static final int GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES = 0x851C;
public static final int GL_TEXTURE_GEN_MODE_OES = 0x2500;
public static final int GL_TEXTURE_GEN_STR_OES = 0x8D60;
public static final int GL_MIRRORED_REPEAT_OES = 0x8370;
public static final int GL_3DC_X_AMD = 0x87F9;
public static final int GL_3DC_XY_AMD = 0x87FA;
public static final int GL_ATC_RGB_AMD = 0x8C92;
public static final int GL_ATC_RGBA_EXPLICIT_ALPHA_AMD = 0x8C93;
public static final int GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD = 0x87EE;
public static final int GL_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FE;
public static final int GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 0x84FF;
public static final int GL_BGRA = 0x80E1;
native private static void _nativeClassInit();
static {
_nativeClassInit();
}

View File

@@ -0,0 +1,129 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <assert.h>
#include <GLES/gl.h>
#include <private/opengles/gl_context.h>
#define _NUM_COMPRESSED_TEXTURE_FORMATS \
(::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
static int initialized = 0;
static jclass nioAccessClass;
static jclass bufferClass;
static jclass OOMEClass;
static jclass UOEClass;
static jclass IAEClass;
static jclass AIOOBEClass;
static jmethodID getBasePointerID;
static jmethodID getBaseArrayID;
static jmethodID getBaseArrayOffsetID;
static jfieldID positionID;
static jfieldID limitID;
static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
"getBasePointer", "(Ljava/nio/Buffer;)J");
getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
positionID = _env->GetFieldID(bufferClass, "position", "I");
limitID = _env->GetFieldID(bufferClass, "limit", "I");
elementSizeShiftID =
_env->GetFieldID(bufferClass, "_elementSizeShift", "I");
}
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
nativeClassInitBuffer(_env);
jclass IAEClassLocal =
_env->FindClass("java/lang/IllegalArgumentException");
jclass OOMEClassLocal =
_env->FindClass("java/lang/OutOfMemoryError");
jclass UOEClassLocal =
_env->FindClass("java/lang/UnsupportedOperationException");
jclass AIOOBEClassLocal =
_env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
}
static void *
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
{
jint position;
jint limit;
jint elementSizeShift;
jlong pointer;
jint offset;
void *data;
position = _env->GetIntField(buffer, positionID);
limit = _env->GetIntField(buffer, limitID);
elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
*remaining = (limit - position) << elementSizeShift;
pointer = _env->CallStaticLongMethod(nioAccessClass,
getBasePointerID, buffer);
if (pointer != 0L) {
*array = NULL;
return (void *) (jint) pointer;
}
*array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
getBaseArrayID, buffer);
offset = _env->CallStaticIntMethod(nioAccessClass,
getBaseArrayOffsetID, buffer);
data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
return (void *) ((char *) data + offset);
}
static void
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
_env->ReleasePrimitiveArrayCritical(array, data,
commit ? 0 : JNI_ABORT);
}
// --------------------------------------------------------------------------

View File

@@ -0,0 +1,151 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
package android.opengl;
import java.nio.Buffer;
public class GLES11 extends GLES10 {
public static final int GL_ACTIVE_TEXTURE = 0x84E0;
public static final int GL_ADD_SIGNED = 0x8574;
public static final int GL_ALPHA_SCALE = 0x0D1C;
public static final int GL_ALPHA_TEST_FUNC = 0x0BC1;
public static final int GL_ALPHA_TEST_REF = 0x0BC2;
public static final int GL_ARRAY_BUFFER = 0x8892;
public static final int GL_ARRAY_BUFFER_BINDING = 0x8894;
public static final int GL_BLEND_DST = 0x0BE0;
public static final int GL_BLEND_SRC = 0x0BE1;
public static final int GL_BUFFER_ACCESS = 0x88BB;
public static final int GL_BUFFER_SIZE = 0x8764;
public static final int GL_BUFFER_USAGE = 0x8765;
public static final int GL_CLIENT_ACTIVE_TEXTURE = 0x84E1;
public static final int GL_CLIP_PLANE0 = 0x3000;
public static final int GL_CLIP_PLANE1 = 0x3001;
public static final int GL_CLIP_PLANE2 = 0x3002;
public static final int GL_CLIP_PLANE3 = 0x3003;
public static final int GL_CLIP_PLANE4 = 0x3004;
public static final int GL_CLIP_PLANE5 = 0x3005;
public static final int GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898;
public static final int GL_COLOR_ARRAY_POINTER = 0x8090;
public static final int GL_COLOR_ARRAY_SIZE = 0x8081;
public static final int GL_COLOR_ARRAY_STRIDE = 0x8083;
public static final int GL_COLOR_ARRAY_TYPE = 0x8082;
public static final int GL_COLOR_CLEAR_VALUE = 0x0C22;
public static final int GL_COLOR_WRITEMASK = 0x0C23;
public static final int GL_COMBINE = 0x8570;
public static final int GL_COMBINE_ALPHA = 0x8572;
public static final int GL_COMBINE_RGB = 0x8571;
public static final int GL_CONSTANT = 0x8576;
public static final int GL_COORD_REPLACE_OES = 0x8862;
public static final int GL_CULL_FACE_MODE = 0x0B45;
public static final int GL_CURRENT_COLOR = 0x0B00;
public static final int GL_CURRENT_NORMAL = 0x0B02;
public static final int GL_CURRENT_TEXTURE_COORDS = 0x0B03;
public static final int GL_DEPTH_CLEAR_VALUE = 0x0B73;
public static final int GL_DEPTH_FUNC = 0x0B74;
public static final int GL_DEPTH_RANGE = 0x0B70;
public static final int GL_DEPTH_WRITEMASK = 0x0B72;
public static final int GL_DOT3_RGB = 0x86AE;
public static final int GL_DOT3_RGBA = 0x86AF;
public static final int GL_DYNAMIC_DRAW = 0x88E8;
public static final int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
public static final int GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
public static final int GL_FRONT_FACE = 0x0B46;
public static final int GL_GENERATE_MIPMAP = 0x8191;
public static final int GL_GENERATE_MIPMAP_HINT = 0x8192;
public static final int GL_INTERPOLATE = 0x8575;
public static final int GL_LINE_WIDTH = 0x0B21;
public static final int GL_LOGIC_OP_MODE = 0x0BF0;
public static final int GL_MATRIX_MODE = 0x0BA0;
public static final int GL_MAX_CLIP_PLANES = 0x0D32;
public static final int GL_MODELVIEW_MATRIX = 0x0BA6;
public static final int GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D;
public static final int GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
public static final int GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897;
public static final int GL_NORMAL_ARRAY_POINTER = 0x808F;
public static final int GL_NORMAL_ARRAY_STRIDE = 0x807F;
public static final int GL_NORMAL_ARRAY_TYPE = 0x807E;
public static final int GL_OPERAND0_ALPHA = 0x8598;
public static final int GL_OPERAND0_RGB = 0x8590;
public static final int GL_OPERAND1_ALPHA = 0x8599;
public static final int GL_OPERAND1_RGB = 0x8591;
public static final int GL_OPERAND2_ALPHA = 0x859A;
public static final int GL_OPERAND2_RGB = 0x8592;
public static final int GL_POINT_DISTANCE_ATTENUATION = 0x8129;
public static final int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
public static final int GL_POINT_SIZE = 0x0B11;
public static final int GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F;
public static final int GL_POINT_SIZE_ARRAY_OES = 0x8B9C;
public static final int GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C;
public static final int GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B;
public static final int GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A;
public static final int GL_POINT_SIZE_MAX = 0x8127;
public static final int GL_POINT_SIZE_MIN = 0x8126;
public static final int GL_POINT_SPRITE_OES = 0x8861;
public static final int GL_POLYGON_OFFSET_FACTOR = 0x8038;
public static final int GL_POLYGON_OFFSET_UNITS = 0x2A00;
public static final int GL_PREVIOUS = 0x8578;
public static final int GL_PRIMARY_COLOR = 0x8577;
public static final int GL_PROJECTION_MATRIX = 0x0BA7;
public static final int GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E;
public static final int GL_PROJECTION_STACK_DEPTH = 0x0BA4;
public static final int GL_RGB_SCALE = 0x8573;
public static final int GL_SAMPLE_BUFFERS = 0x80A8;
public static final int GL_SAMPLE_COVERAGE_INVERT = 0x80AB;
public static final int GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
public static final int GL_SAMPLES = 0x80A9;
public static final int GL_SCISSOR_BOX = 0x0C10;
public static final int GL_SHADE_MODEL = 0x0B54;
public static final int GL_SRC0_ALPHA = 0x8588;
public static final int GL_SRC0_RGB = 0x8580;
public static final int GL_SRC1_ALPHA = 0x8589;
public static final int GL_SRC1_RGB = 0x8581;
public static final int GL_SRC2_ALPHA = 0x858A;
public static final int GL_SRC2_RGB = 0x8582;
public static final int GL_STATIC_DRAW = 0x88E4;
public static final int GL_STENCIL_CLEAR_VALUE = 0x0B91;
public static final int GL_STENCIL_FAIL = 0x0B94;
public static final int GL_STENCIL_FUNC = 0x0B92;
public static final int GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
public static final int GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
public static final int GL_STENCIL_REF = 0x0B97;
public static final int GL_STENCIL_VALUE_MASK = 0x0B93;
public static final int GL_STENCIL_WRITEMASK = 0x0B98;
public static final int GL_SUBTRACT = 0x84E7;
public static final int GL_TEXTURE_BINDING_2D = 0x8069;
public static final int GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A;
public static final int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
public static final int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
public static final int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
public static final int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
public static final int GL_TEXTURE_MATRIX = 0x0BA8;
public static final int GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F;
public static final int GL_TEXTURE_STACK_DEPTH = 0x0BA5;
public static final int GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896;
public static final int GL_VERTEX_ARRAY_POINTER = 0x808E;
public static final int GL_VERTEX_ARRAY_SIZE = 0x807A;
public static final int GL_VERTEX_ARRAY_STRIDE = 0x807C;
public static final int GL_VERTEX_ARRAY_TYPE = 0x807B;
public static final int GL_VIEWPORT = 0x0BA2;
public static final int GL_WRITE_ONLY = 0x88B9;
native private static void _nativeClassInit();
static {
_nativeClassInit();
}

View File

@@ -0,0 +1,129 @@
**
** Copyright 2009, The Android Open Source Project
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
// This source file is automatically generated
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <assert.h>
#include <GLES/gl.h>
#include <private/opengles/gl_context.h>
#define _NUM_COMPRESSED_TEXTURE_FORMATS \
(::android::OGLES_NUM_COMPRESSED_TEXTURE_FORMATS)
static int initialized = 0;
static jclass nioAccessClass;
static jclass bufferClass;
static jclass OOMEClass;
static jclass UOEClass;
static jclass IAEClass;
static jclass AIOOBEClass;
static jmethodID getBasePointerID;
static jmethodID getBaseArrayID;
static jmethodID getBaseArrayOffsetID;
static jfieldID positionID;
static jfieldID limitID;
static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");
nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal);
jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
"getBasePointer", "(Ljava/nio/Buffer;)J");
getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
"getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
positionID = _env->GetFieldID(bufferClass, "position", "I");
limitID = _env->GetFieldID(bufferClass, "limit", "I");
elementSizeShiftID =
_env->GetFieldID(bufferClass, "_elementSizeShift", "I");
}
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
nativeClassInitBuffer(_env);
jclass IAEClassLocal =
_env->FindClass("java/lang/IllegalArgumentException");
jclass OOMEClassLocal =
_env->FindClass("java/lang/OutOfMemoryError");
jclass UOEClassLocal =
_env->FindClass("java/lang/UnsupportedOperationException");
jclass AIOOBEClassLocal =
_env->FindClass("java/lang/ArrayIndexOutOfBoundsException");
IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal);
OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal);
UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal);
AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal);
}
static void *
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining)
{
jint position;
jint limit;
jint elementSizeShift;
jlong pointer;
jint offset;
void *data;
position = _env->GetIntField(buffer, positionID);
limit = _env->GetIntField(buffer, limitID);
elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
*remaining = (limit - position) << elementSizeShift;
pointer = _env->CallStaticLongMethod(nioAccessClass,
getBasePointerID, buffer);
if (pointer != 0L) {
*array = NULL;
return (void *) (jint) pointer;
}
*array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
getBaseArrayID, buffer);
offset = _env->CallStaticIntMethod(nioAccessClass,
getBaseArrayOffsetID, buffer);
data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0);
return (void *) ((char *) data + offset);
}
static void
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
_env->ReleasePrimitiveArrayCritical(array, data,
commit ? 0 : JNI_ABORT);
}
// --------------------------------------------------------------------------

View File

@@ -1,6 +1,7 @@
#include <string.h>
/* const GLubyte * glGetString ( GLenum name ) */
static
jstring
android_glGetString
(JNIEnv *_env, jobject _this, jint name) {

View File

@@ -44,7 +44,7 @@ static jfieldID elementSizeShiftID;
/* Cache method IDs each time the class is loaded. */
void
static void
nativeClassInitBuffer(JNIEnv *_env)
{
jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess");

View File

@@ -0,0 +1,11 @@
#include <string.h>
/* const GLubyte * glGetString ( GLenum name ) */
static
jstring
android_glGetString
(JNIEnv *_env, jobject _this, jint name) {
const char * chars = (const char *)glGetString((GLenum)name);
jstring output = _env->NewStringUTF(chars);
return output;
}

View File

@@ -0,0 +1,16 @@
// C function const GLubyte * glGetString ( GLenum name )
public native String _glGetString(
int name
);
public String glGetString(
int name
) {
String returnValue;
returnValue = _glGetString(
name
);
return returnValue;
}

View File

@@ -0,0 +1 @@
{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },