summaryrefslogtreecommitdiffstats
path: root/opengl/tools/glgen/stubs/jsr239
diff options
context:
space:
mode:
authorJack Palevich <jackpal@google.com>2009-04-15 19:13:17 -0700
committerJack Palevich <jackpal@google.com>2009-04-16 15:20:55 -0700
commit27f8002e591b5c579f75b2580183b5d1c4219cd4 (patch)
tree23fafecbd64e66b7a866510c8163d34c3e506df8 /opengl/tools/glgen/stubs/jsr239
parentf5bfda1fcecc5d8553eab16182e2f6579214ede2 (diff)
downloadframeworks_base-27f8002e591b5c579f75b2580183b5d1c4219cd4.zip
frameworks_base-27f8002e591b5c579f75b2580183b5d1c4219cd4.tar.gz
frameworks_base-27f8002e591b5c579f75b2580183b5d1c4219cd4.tar.bz2
Add an Android-specific static OpenGL ES 1.1 Java API.
This change adds four new public classes that expose a static OpenGL ES 1.1 API: android.opengl.GLES10 android.opengl.GLES10Ext android.opengl.GLES11 android.opengl.GLES11Ext Benefits: + The static API is slightly faster (1% to 4%) than the existing Interface based JSR239 API. + The static API is similar to the C API, which should make it easier to import C-based example code. + The static API provides a clear path for adding new OpenGL ES 1.1 extensions and OpenGL ES 2.0 APIs, neither of which currently have a JSR standard. Example: import static android.opengl.GLES10.*; ... glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); Note that it is possible to mix-and-match calls to both the static and JSR239 APIs. This works because neither API maintains state. They both call through to the same underlying C OpenGL ES APIs. Implementation details: This change enhances the "glgen" "gen" script to generate both the original JSR239 and new static OpenGL ES APIs. The contents of the generated JSR239 classes remained the same as before, so there is no need to check in new versions of the generated JSR239 classes. As part of this work the gen script was updated to be somewhat more robust, and to work with git instead of perforce. The script prints out commands to git add the generated files, but leaves it up to the script runner to actually execute those commands.
Diffstat (limited to 'opengl/tools/glgen/stubs/jsr239')
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL10ExtHeader.java-if22
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL10Header.java-if259
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL11ExtHeader.java-if40
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL11ExtensionPackHeader.java-if108
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL11Header.java-if145
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GL11ImplHeader.java-impl30
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GLCHeader.cpp129
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GLHeader.java-if22
-rw-r--r--opengl/tools/glgen/stubs/jsr239/GLImplHeader.java-impl48
-rw-r--r--opengl/tools/glgen/stubs/jsr239/glGetString.cpp11
-rw-r--r--opengl/tools/glgen/stubs/jsr239/glGetString.java-10-if4
-rw-r--r--opengl/tools/glgen/stubs/jsr239/glGetString.java-if4
-rw-r--r--opengl/tools/glgen/stubs/jsr239/glGetString.java-impl16
-rw-r--r--opengl/tools/glgen/stubs/jsr239/glGetString.nativeReg1
14 files changed, 839 insertions, 0 deletions
diff --git a/opengl/tools/glgen/stubs/jsr239/GL10ExtHeader.java-if b/opengl/tools/glgen/stubs/jsr239/GL10ExtHeader.java-if
new file mode 100644
index 0000000..b0999c2
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL10ExtHeader.java-if
@@ -0,0 +1,22 @@
+**
+** Copyright 2007, 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 javax.microedition.khronos.opengles;
+
+public interface GL10Ext extends GL {
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GL10Header.java-if b/opengl/tools/glgen/stubs/jsr239/GL10Header.java-if
new file mode 100644
index 0000000..8392821
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL10Header.java-if
@@ -0,0 +1,259 @@
+**
+** Copyright 2006, 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 javax.microedition.khronos.opengles;
+
+public interface GL10 extends GL {
+ int GL_ADD = 0x0104;
+ int GL_ALIASED_LINE_WIDTH_RANGE = 0x846E;
+ int GL_ALIASED_POINT_SIZE_RANGE = 0x846D;
+ int GL_ALPHA = 0x1906;
+ int GL_ALPHA_BITS = 0x0D55;
+ int GL_ALPHA_TEST = 0x0BC0;
+ int GL_ALWAYS = 0x0207;
+ int GL_AMBIENT = 0x1200;
+ int GL_AMBIENT_AND_DIFFUSE = 0x1602;
+ int GL_AND = 0x1501;
+ int GL_AND_INVERTED = 0x1504;
+ int GL_AND_REVERSE = 0x1502;
+ int GL_BACK = 0x0405;
+ int GL_BLEND = 0x0BE2;
+ int GL_BLUE_BITS = 0x0D54;
+ int GL_BYTE = 0x1400;
+ int GL_CCW = 0x0901;
+ int GL_CLAMP_TO_EDGE = 0x812F;
+ int GL_CLEAR = 0x1500;
+ int GL_COLOR_ARRAY = 0x8076;
+ int GL_COLOR_BUFFER_BIT = 0x4000;
+ int GL_COLOR_LOGIC_OP = 0x0BF2;
+ int GL_COLOR_MATERIAL = 0x0B57;
+ int GL_COMPRESSED_TEXTURE_FORMATS = 0x86A3;
+ int GL_CONSTANT_ATTENUATION = 0x1207;
+ int GL_COPY = 0x1503;
+ int GL_COPY_INVERTED = 0x150C;
+ int GL_CULL_FACE = 0x0B44;
+ int GL_CW = 0x0900;
+ int GL_DECAL = 0x2101;
+ int GL_DECR = 0x1E03;
+ int GL_DEPTH_BITS = 0x0D56;
+ int GL_DEPTH_BUFFER_BIT = 0x0100;
+ int GL_DEPTH_TEST = 0x0B71;
+ int GL_DIFFUSE = 0x1201;
+ int GL_DITHER = 0x0BD0;
+ int GL_DONT_CARE = 0x1100;
+ int GL_DST_ALPHA = 0x0304;
+ int GL_DST_COLOR = 0x0306;
+ int GL_EMISSION = 0x1600;
+ int GL_EQUAL = 0x0202;
+ int GL_EQUIV = 0x1509;
+ int GL_EXP = 0x0800;
+ int GL_EXP2 = 0x0801;
+ int GL_EXTENSIONS = 0x1F03;
+ int GL_FALSE = 0;
+ int GL_FASTEST = 0x1101;
+ int GL_FIXED = 0x140C;
+ int GL_FLAT = 0x1D00;
+ int GL_FLOAT = 0x1406;
+ int GL_FOG = 0x0B60;
+ int GL_FOG_COLOR = 0x0B66;
+ int GL_FOG_DENSITY = 0x0B62;
+ int GL_FOG_END = 0x0B64;
+ int GL_FOG_HINT = 0x0C54;
+ int GL_FOG_MODE = 0x0B65;
+ int GL_FOG_START = 0x0B63;
+ int GL_FRONT = 0x0404;
+ int GL_FRONT_AND_BACK = 0x0408;
+ int GL_GEQUAL = 0x0206;
+ int GL_GREATER = 0x0204;
+ int GL_GREEN_BITS = 0x0D53;
+ int GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES = 0x8B9B;
+ int GL_IMPLEMENTATION_COLOR_READ_TYPE_OES = 0x8B9A;
+ int GL_INCR = 0x1E02;
+ int GL_INVALID_ENUM = 0x0500;
+ int GL_INVALID_OPERATION = 0x0502;
+ int GL_INVALID_VALUE = 0x0501;
+ int GL_INVERT = 0x150A;
+ int GL_KEEP = 0x1E00;
+ int GL_LEQUAL = 0x0203;
+ int GL_LESS = 0x0201;
+ int GL_LIGHT_MODEL_AMBIENT = 0x0B53;
+ int GL_LIGHT_MODEL_TWO_SIDE = 0x0B52;
+ int GL_LIGHT0 = 0x4000;
+ int GL_LIGHT1 = 0x4001;
+ int GL_LIGHT2 = 0x4002;
+ int GL_LIGHT3 = 0x4003;
+ int GL_LIGHT4 = 0x4004;
+ int GL_LIGHT5 = 0x4005;
+ int GL_LIGHT6 = 0x4006;
+ int GL_LIGHT7 = 0x4007;
+ int GL_LIGHTING = 0x0B50;
+ int GL_LINE_LOOP = 0x0002;
+ int GL_LINE_SMOOTH = 0x0B20;
+ int GL_LINE_SMOOTH_HINT = 0x0C52;
+ int GL_LINE_STRIP = 0x0003;
+ int GL_LINEAR = 0x2601;
+ int GL_LINEAR_ATTENUATION = 0x1208;
+ int GL_LINEAR_MIPMAP_LINEAR = 0x2703;
+ int GL_LINEAR_MIPMAP_NEAREST = 0x2701;
+ int GL_LINES = 0x0001;
+ int GL_LUMINANCE = 0x1909;
+ int GL_LUMINANCE_ALPHA = 0x190A;
+ int GL_MAX_ELEMENTS_INDICES = 0x80E9;
+ int GL_MAX_ELEMENTS_VERTICES = 0x80E8;
+ int GL_MAX_LIGHTS = 0x0D31;
+ int GL_MAX_MODELVIEW_STACK_DEPTH = 0x0D36;
+ int GL_MAX_PROJECTION_STACK_DEPTH = 0x0D38;
+ int GL_MAX_TEXTURE_SIZE = 0x0D33;
+ int GL_MAX_TEXTURE_STACK_DEPTH = 0x0D39;
+ int GL_MAX_TEXTURE_UNITS = 0x84E2;
+ int GL_MAX_VIEWPORT_DIMS = 0x0D3A;
+ int GL_MODELVIEW = 0x1700;
+ int GL_MODULATE = 0x2100;
+ int GL_MULTISAMPLE = 0x809D;
+ int GL_NAND = 0x150E;
+ int GL_NEAREST = 0x2600;
+ int GL_NEAREST_MIPMAP_LINEAR = 0x2702;
+ int GL_NEAREST_MIPMAP_NEAREST = 0x2700;
+ int GL_NEVER = 0x0200;
+ int GL_NICEST = 0x1102;
+ int GL_NO_ERROR = 0;
+ int GL_NOOP = 0x1505;
+ int GL_NOR = 0x1508;
+ int GL_NORMAL_ARRAY = 0x8075;
+ int GL_NORMALIZE = 0x0BA1;
+ int GL_NOTEQUAL = 0x0205;
+ int GL_NUM_COMPRESSED_TEXTURE_FORMATS = 0x86A2;
+ int GL_ONE = 1;
+ int GL_ONE_MINUS_DST_ALPHA = 0x0305;
+ int GL_ONE_MINUS_DST_COLOR = 0x0307;
+ int GL_ONE_MINUS_SRC_ALPHA = 0x0303;
+ int GL_ONE_MINUS_SRC_COLOR = 0x0301;
+ int GL_OR = 0x1507;
+ int GL_OR_INVERTED = 0x150D;
+ int GL_OR_REVERSE = 0x150B;
+ int GL_OUT_OF_MEMORY = 0x0505;
+ int GL_PACK_ALIGNMENT = 0x0D05;
+ int GL_PALETTE4_R5_G6_B5_OES = 0x8B92;
+ int GL_PALETTE4_RGB5_A1_OES = 0x8B94;
+ int GL_PALETTE4_RGB8_OES = 0x8B90;
+ int GL_PALETTE4_RGBA4_OES = 0x8B93;
+ int GL_PALETTE4_RGBA8_OES = 0x8B91;
+ int GL_PALETTE8_R5_G6_B5_OES = 0x8B97;
+ int GL_PALETTE8_RGB5_A1_OES = 0x8B99;
+ int GL_PALETTE8_RGB8_OES = 0x8B95;
+ int GL_PALETTE8_RGBA4_OES = 0x8B98;
+ int GL_PALETTE8_RGBA8_OES = 0x8B96;
+ int GL_PERSPECTIVE_CORRECTION_HINT = 0x0C50;
+ int GL_POINT_SMOOTH = 0x0B10;
+ int GL_POINT_SMOOTH_HINT = 0x0C51;
+ int GL_POINTS = 0x0000;
+ int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
+ int GL_POINT_SIZE = 0x0B11;
+ int GL_POLYGON_OFFSET_FILL = 0x8037;
+ int GL_POLYGON_SMOOTH_HINT = 0x0C53;
+ int GL_POSITION = 0x1203;
+ int GL_PROJECTION = 0x1701;
+ int GL_QUADRATIC_ATTENUATION = 0x1209;
+ int GL_RED_BITS = 0x0D52;
+ int GL_RENDERER = 0x1F01;
+ int GL_REPEAT = 0x2901;
+ int GL_REPLACE = 0x1E01;
+ int GL_RESCALE_NORMAL = 0x803A;
+ int GL_RGB = 0x1907;
+ int GL_RGBA = 0x1908;
+ int GL_SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
+ int GL_SAMPLE_ALPHA_TO_ONE = 0x809F;
+ int GL_SAMPLE_COVERAGE = 0x80A0;
+ int GL_SCISSOR_TEST = 0x0C11;
+ int GL_SET = 0x150F;
+ int GL_SHININESS = 0x1601;
+ int GL_SHORT = 0x1402;
+ int GL_SMOOTH = 0x1D01;
+ int GL_SMOOTH_LINE_WIDTH_RANGE = 0x0B22;
+ int GL_SMOOTH_POINT_SIZE_RANGE = 0x0B12;
+ int GL_SPECULAR = 0x1202;
+ int GL_SPOT_CUTOFF = 0x1206;
+ int GL_SPOT_DIRECTION = 0x1204;
+ int GL_SPOT_EXPONENT = 0x1205;
+ int GL_SRC_ALPHA = 0x0302;
+ int GL_SRC_ALPHA_SATURATE = 0x0308;
+ int GL_SRC_COLOR = 0x0300;
+ int GL_STACK_OVERFLOW = 0x0503;
+ int GL_STACK_UNDERFLOW = 0x0504;
+ int GL_STENCIL_BITS = 0x0D57;
+ int GL_STENCIL_BUFFER_BIT = 0x0400;
+ int GL_STENCIL_TEST = 0x0B90;
+ int GL_SUBPIXEL_BITS = 0x0D50;
+ int GL_TEXTURE = 0x1702;
+ int GL_TEXTURE_2D = 0x0DE1;
+ int GL_TEXTURE_COORD_ARRAY = 0x8078;
+ int GL_TEXTURE_ENV = 0x2300;
+ int GL_TEXTURE_ENV_COLOR = 0x2201;
+ int GL_TEXTURE_ENV_MODE = 0x2200;
+ int GL_TEXTURE_MAG_FILTER = 0x2800;
+ int GL_TEXTURE_MIN_FILTER = 0x2801;
+ int GL_TEXTURE_WRAP_S = 0x2802;
+ int GL_TEXTURE_WRAP_T = 0x2803;
+ int GL_TEXTURE0 = 0x84C0;
+ int GL_TEXTURE1 = 0x84C1;
+ int GL_TEXTURE2 = 0x84C2;
+ int GL_TEXTURE3 = 0x84C3;
+ int GL_TEXTURE4 = 0x84C4;
+ int GL_TEXTURE5 = 0x84C5;
+ int GL_TEXTURE6 = 0x84C6;
+ int GL_TEXTURE7 = 0x84C7;
+ int GL_TEXTURE8 = 0x84C8;
+ int GL_TEXTURE9 = 0x84C9;
+ int GL_TEXTURE10 = 0x84CA;
+ int GL_TEXTURE11 = 0x84CB;
+ int GL_TEXTURE12 = 0x84CC;
+ int GL_TEXTURE13 = 0x84CD;
+ int GL_TEXTURE14 = 0x84CE;
+ int GL_TEXTURE15 = 0x84CF;
+ int GL_TEXTURE16 = 0x84D0;
+ int GL_TEXTURE17 = 0x84D1;
+ int GL_TEXTURE18 = 0x84D2;
+ int GL_TEXTURE19 = 0x84D3;
+ int GL_TEXTURE20 = 0x84D4;
+ int GL_TEXTURE21 = 0x84D5;
+ int GL_TEXTURE22 = 0x84D6;
+ int GL_TEXTURE23 = 0x84D7;
+ int GL_TEXTURE24 = 0x84D8;
+ int GL_TEXTURE25 = 0x84D9;
+ int GL_TEXTURE26 = 0x84DA;
+ int GL_TEXTURE27 = 0x84DB;
+ int GL_TEXTURE28 = 0x84DC;
+ int GL_TEXTURE29 = 0x84DD;
+ int GL_TEXTURE30 = 0x84DE;
+ int GL_TEXTURE31 = 0x84DF;
+ int GL_TRIANGLE_FAN = 0x0006;
+ int GL_TRIANGLE_STRIP = 0x0005;
+ int GL_TRIANGLES = 0x0004;
+ int GL_TRUE = 1;
+ int GL_UNPACK_ALIGNMENT = 0x0CF5;
+ int GL_UNSIGNED_BYTE = 0x1401;
+ int GL_UNSIGNED_SHORT = 0x1403;
+ int GL_UNSIGNED_SHORT_4_4_4_4 = 0x8033;
+ int GL_UNSIGNED_SHORT_5_5_5_1 = 0x8034;
+ int GL_UNSIGNED_SHORT_5_6_5 = 0x8363;
+ int GL_VENDOR = 0x1F00;
+ int GL_VERSION = 0x1F02;
+ int GL_VERTEX_ARRAY = 0x8074;
+ int GL_XOR = 0x1506;
+ int GL_ZERO = 0;
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GL11ExtHeader.java-if b/opengl/tools/glgen/stubs/jsr239/GL11ExtHeader.java-if
new file mode 100644
index 0000000..7be2164
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL11ExtHeader.java-if
@@ -0,0 +1,40 @@
+**
+** Copyright 2007, 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 javax.microedition.khronos.opengles;
+
+public interface GL11Ext extends GL {
+ int GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES = 0x8B9E;
+ int GL_MATRIX_INDEX_ARRAY_OES = 0x8844;
+ int GL_MATRIX_INDEX_ARRAY_POINTER_OES = 0x8849;
+ int GL_MATRIX_INDEX_ARRAY_SIZE_OES = 0x8846;
+ int GL_MATRIX_INDEX_ARRAY_STRIDE_OES = 0x8848;
+ int GL_MATRIX_INDEX_ARRAY_TYPE_OES = 0x8847;
+ int GL_MATRIX_PALETTE_OES = 0x8840;
+ int GL_MAX_PALETTE_MATRICES_OES = 0x8842;
+ int GL_MAX_VERTEX_UNITS_OES = 0x86A4;
+ int GL_TEXTURE_CROP_RECT_OES = 0x8B9D;
+ int GL_WEIGHT_ARRAY_BUFFER_BINDING_OES = 0x889E;
+ int GL_WEIGHT_ARRAY_OES = 0x86AD;
+ int GL_WEIGHT_ARRAY_POINTER_OES = 0x86AC;
+ int GL_WEIGHT_ARRAY_SIZE_OES = 0x86AB;
+ int GL_WEIGHT_ARRAY_STRIDE_OES = 0x86AA;
+ int GL_WEIGHT_ARRAY_TYPE_OES = 0x86A9;
+
+ void glTexParameterfv(int target, int pname, float[] param, int offset);
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GL11ExtensionPackHeader.java-if b/opengl/tools/glgen/stubs/jsr239/GL11ExtensionPackHeader.java-if
new file mode 100644
index 0000000..a800191
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL11ExtensionPackHeader.java-if
@@ -0,0 +1,108 @@
+**
+** Copyright 2007, 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 javax.microedition.khronos.opengles;
+
+public interface GL11ExtensionPack extends GL {
+ int GL_BLEND_DST_ALPHA = 0x80CA;
+ int GL_BLEND_DST_RGB = 0x80C8;
+ int GL_BLEND_EQUATION = 0x8009;
+ int GL_BLEND_EQUATION_ALPHA = 0x883D;
+ int GL_BLEND_EQUATION_RGB = 0x8009;
+ int GL_BLEND_SRC_ALPHA = 0x80CB;
+ int GL_BLEND_SRC_RGB = 0x80C9;
+ int GL_COLOR_ATTACHMENT0_OES = 0x8CE0;
+ int GL_COLOR_ATTACHMENT1_OES = 0x8CE1;
+ int GL_COLOR_ATTACHMENT2_OES = 0x8CE2;
+ int GL_COLOR_ATTACHMENT3_OES = 0x8CE3;
+ int GL_COLOR_ATTACHMENT4_OES = 0x8CE4;
+ int GL_COLOR_ATTACHMENT5_OES = 0x8CE5;
+ int GL_COLOR_ATTACHMENT6_OES = 0x8CE6;
+ int GL_COLOR_ATTACHMENT7_OES = 0x8CE7;
+ int GL_COLOR_ATTACHMENT8_OES = 0x8CE8;
+ int GL_COLOR_ATTACHMENT9_OES = 0x8CE9;
+ int GL_COLOR_ATTACHMENT10_OES = 0x8CEA;
+ int GL_COLOR_ATTACHMENT11_OES = 0x8CEB;
+ int GL_COLOR_ATTACHMENT12_OES = 0x8CEC;
+ int GL_COLOR_ATTACHMENT13_OES = 0x8CED;
+ int GL_COLOR_ATTACHMENT14_OES = 0x8CEE;
+ int GL_COLOR_ATTACHMENT15_OES = 0x8CEF;
+ int GL_DECR_WRAP = 0x8508;
+ int GL_DEPTH_ATTACHMENT_OES = 0x8D00;
+ int GL_DEPTH_COMPONENT = 0x1902;
+ int GL_DEPTH_COMPONENT16 = 0x81A5;
+ int GL_DEPTH_COMPONENT24 = 0x81A6;
+ int GL_DEPTH_COMPONENT32 = 0x81A7;
+ int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES = 0x8CD1;
+ int GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES = 0x8CD0;
+ int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES = 0x8CD3;
+ int GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES = 0x8CD2;
+ int GL_FRAMEBUFFER_BINDING_OES = 0x8CA6;
+ int GL_FRAMEBUFFER_COMPLETE_OES = 0x8CD5;
+ int GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES = 0x8CD6;
+ int GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES = 0x8CD9;
+ int GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES = 0x8CDB;
+ int GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES = 0x8CDA;
+ int GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES = 0x8CD7;
+ int GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES = 0x8CDC;
+ int GL_FRAMEBUFFER_OES = 0x8D40;
+ int GL_FRAMEBUFFER_UNSUPPORTED_OES = 0x8CDD;
+ int GL_FUNC_ADD = 0x8006;
+ int GL_FUNC_REVERSE_SUBTRACT = 0x800B;
+ int GL_FUNC_SUBTRACT = 0x800A;
+ int GL_INCR_WRAP = 0x8507;
+ int GL_INVALID_FRAMEBUFFER_OPERATION_OES = 0x0506;
+ int GL_MAX_COLOR_ATTACHMENTS_OES = 0x8CDF;
+ int GL_MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
+ int GL_MAX_RENDERBUFFER_SIZE_OES = 0x84E8;
+ int GL_MIRRORED_REPEAT = 0x8370;
+ int GL_NORMAL_MAP = 0x8511;
+ int GL_REFLECTION_MAP = 0x8512;
+ int GL_RENDERBUFFER_ALPHA_SIZE_OES = 0x8D53;
+ int GL_RENDERBUFFER_BINDING_OES = 0x8CA7;
+ int GL_RENDERBUFFER_BLUE_SIZE_OES = 0x8D52;
+ int GL_RENDERBUFFER_DEPTH_SIZE_OES = 0x8D54;
+ int GL_RENDERBUFFER_GREEN_SIZE_OES = 0x8D51;
+ int GL_RENDERBUFFER_HEIGHT_OES = 0x8D43;
+ int GL_RENDERBUFFER_INTERNAL_FORMAT_OES = 0x8D44;
+ int GL_RENDERBUFFER_OES = 0x8D41;
+ int GL_RENDERBUFFER_RED_SIZE_OES = 0x8D50;
+ int GL_RENDERBUFFER_STENCIL_SIZE_OES = 0x8D55;
+ int GL_RENDERBUFFER_WIDTH_OES = 0x8D42;
+ int GL_RGB5_A1 = 0x8057;
+ int GL_RGB565_OES = 0x8D62;
+ int GL_RGB8 = 0x8051;
+ int GL_RGBA4 = 0x8056;
+ int GL_RGBA8 = 0x8058;
+ int GL_STENCIL_ATTACHMENT_OES = 0x8D20;
+ int GL_STENCIL_INDEX = 0x1901;
+ int GL_STENCIL_INDEX1_OES = 0x8D46;
+ int GL_STENCIL_INDEX4_OES = 0x8D47;
+ int GL_STENCIL_INDEX8_OES = 0x8D48;
+ int GL_STR = -1;
+ int GL_TEXTURE_BINDING_CUBE_MAP = 0x8514;
+ int GL_TEXTURE_CUBE_MAP = 0x8513;
+ int GL_TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
+ int GL_TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
+ int GL_TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
+ int GL_TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
+ int GL_TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
+ int GL_TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
+ int GL_TEXTURE_GEN_MODE = 0x2500;
+ int GL_TEXTURE_GEN_STR = 0x8D60;
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GL11Header.java-if b/opengl/tools/glgen/stubs/jsr239/GL11Header.java-if
new file mode 100644
index 0000000..b0e5a6b
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL11Header.java-if
@@ -0,0 +1,145 @@
+**
+** Copyright 2006, 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 javax.microedition.khronos.opengles;
+
+public interface GL11 extends GL10 {
+ int GL_ACTIVE_TEXTURE = 0x84E0;
+ int GL_ADD_SIGNED = 0x8574;
+ int GL_ALPHA_SCALE = 0x0D1C;
+ int GL_ALPHA_TEST_FUNC = 0x0BC1;
+ int GL_ALPHA_TEST_REF = 0x0BC2;
+ int GL_ARRAY_BUFFER = 0x8892;
+ int GL_ARRAY_BUFFER_BINDING = 0x8894;
+ int GL_BLEND_DST = 0x0BE0;
+ int GL_BLEND_SRC = 0x0BE1;
+ int GL_BUFFER_ACCESS = 0x88BB;
+ int GL_BUFFER_SIZE = 0x8764;
+ int GL_BUFFER_USAGE = 0x8765;
+ int GL_CLIENT_ACTIVE_TEXTURE = 0x84E1;
+ int GL_CLIP_PLANE0 = 0x3000;
+ int GL_CLIP_PLANE1 = 0x3001;
+ int GL_CLIP_PLANE2 = 0x3002;
+ int GL_CLIP_PLANE3 = 0x3003;
+ int GL_CLIP_PLANE4 = 0x3004;
+ int GL_CLIP_PLANE5 = 0x3005;
+ int GL_COLOR_ARRAY_BUFFER_BINDING = 0x8898;
+ int GL_COLOR_ARRAY_POINTER = 0x8090;
+ int GL_COLOR_ARRAY_SIZE = 0x8081;
+ int GL_COLOR_ARRAY_STRIDE = 0x8083;
+ int GL_COLOR_ARRAY_TYPE = 0x8082;
+ int GL_COLOR_CLEAR_VALUE = 0x0C22;
+ int GL_COLOR_WRITEMASK = 0x0C23;
+ int GL_COMBINE = 0x8570;
+ int GL_COMBINE_ALPHA = 0x8572;
+ int GL_COMBINE_RGB = 0x8571;
+ int GL_CONSTANT = 0x8576;
+ int GL_COORD_REPLACE_OES = 0x8862;
+ int GL_CULL_FACE_MODE = 0x0B45;
+ int GL_CURRENT_COLOR = 0x0B00;
+ int GL_CURRENT_NORMAL = 0x0B02;
+ int GL_CURRENT_TEXTURE_COORDS = 0x0B03;
+ int GL_DEPTH_CLEAR_VALUE = 0x0B73;
+ int GL_DEPTH_FUNC = 0x0B74;
+ int GL_DEPTH_RANGE = 0x0B70;
+ int GL_DEPTH_WRITEMASK = 0x0B72;
+ int GL_DOT3_RGB = 0x86AE;
+ int GL_DOT3_RGBA = 0x86AF;
+ int GL_DYNAMIC_DRAW = 0x88E8;
+ int GL_ELEMENT_ARRAY_BUFFER = 0x8893;
+ int GL_ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
+ int GL_FRONT_FACE = 0x0B46;
+ int GL_GENERATE_MIPMAP = 0x8191;
+ int GL_GENERATE_MIPMAP_HINT = 0x8192;
+ int GL_INTERPOLATE = 0x8575;
+ int GL_LINE_WIDTH = 0x0B21;
+ int GL_LOGIC_OP_MODE = 0x0BF0;
+ int GL_MATRIX_MODE = 0x0BA0;
+ int GL_MAX_CLIP_PLANES = 0x0D32;
+ int GL_MODELVIEW_MATRIX = 0x0BA6;
+ int GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898D;
+ int GL_MODELVIEW_STACK_DEPTH = 0x0BA3;
+ int GL_NORMAL_ARRAY_BUFFER_BINDING = 0x8897;
+ int GL_NORMAL_ARRAY_POINTER = 0x808F;
+ int GL_NORMAL_ARRAY_STRIDE = 0x807F;
+ int GL_NORMAL_ARRAY_TYPE = 0x807E;
+ int GL_OPERAND0_ALPHA = 0x8598;
+ int GL_OPERAND0_RGB = 0x8590;
+ int GL_OPERAND1_ALPHA = 0x8599;
+ int GL_OPERAND1_RGB = 0x8591;
+ int GL_OPERAND2_ALPHA = 0x859A;
+ int GL_OPERAND2_RGB = 0x8592;
+ int GL_POINT_DISTANCE_ATTENUATION = 0x8129;
+ int GL_POINT_FADE_THRESHOLD_SIZE = 0x8128;
+ int GL_POINT_SIZE = 0x0B11;
+ int GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES = 0x8B9F;
+ int GL_POINT_SIZE_ARRAY_OES = 0x8B9C;
+ int GL_POINT_SIZE_ARRAY_POINTER_OES = 0x898C;
+ int GL_POINT_SIZE_ARRAY_STRIDE_OES = 0x898B;
+ int GL_POINT_SIZE_ARRAY_TYPE_OES = 0x898A;
+ int GL_POINT_SIZE_MAX = 0x8127;
+ int GL_POINT_SIZE_MIN = 0x8126;
+ int GL_POINT_SPRITE_OES = 0x8861;
+ int GL_POLYGON_OFFSET_FACTOR = 0x8038;
+ int GL_POLYGON_OFFSET_UNITS = 0x2A00;
+ int GL_PREVIOUS = 0x8578;
+ int GL_PRIMARY_COLOR = 0x8577;
+ int GL_PROJECTION_MATRIX = 0x0BA7;
+ int GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898E;
+ int GL_PROJECTION_STACK_DEPTH = 0x0BA4;
+ int GL_RGB_SCALE = 0x8573;
+ int GL_SAMPLE_BUFFERS = 0x80A8;
+ int GL_SAMPLE_COVERAGE_INVERT = 0x80AB;
+ int GL_SAMPLE_COVERAGE_VALUE = 0x80AA;
+ int GL_SAMPLES = 0x80A9;
+ int GL_SCISSOR_BOX = 0x0C10;
+ int GL_SHADE_MODEL = 0x0B54;
+ int GL_SRC0_ALPHA = 0x8588;
+ int GL_SRC0_RGB = 0x8580;
+ int GL_SRC1_ALPHA = 0x8589;
+ int GL_SRC1_RGB = 0x8581;
+ int GL_SRC2_ALPHA = 0x858A;
+ int GL_SRC2_RGB = 0x8582;
+ int GL_STATIC_DRAW = 0x88E4;
+ int GL_STENCIL_CLEAR_VALUE = 0x0B91;
+ int GL_STENCIL_FAIL = 0x0B94;
+ int GL_STENCIL_FUNC = 0x0B92;
+ int GL_STENCIL_PASS_DEPTH_FAIL = 0x0B95;
+ int GL_STENCIL_PASS_DEPTH_PASS = 0x0B96;
+ int GL_STENCIL_REF = 0x0B97;
+ int GL_STENCIL_VALUE_MASK = 0x0B93;
+ int GL_STENCIL_WRITEMASK = 0x0B98;
+ int GL_SUBTRACT = 0x84E7;
+ int GL_TEXTURE_BINDING_2D = 0x8069;
+ int GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING = 0x889A;
+ int GL_TEXTURE_COORD_ARRAY_POINTER = 0x8092;
+ int GL_TEXTURE_COORD_ARRAY_SIZE = 0x8088;
+ int GL_TEXTURE_COORD_ARRAY_STRIDE = 0x808A;
+ int GL_TEXTURE_COORD_ARRAY_TYPE = 0x8089;
+ int GL_TEXTURE_MATRIX = 0x0BA8;
+ int GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES = 0x898F;
+ int GL_TEXTURE_STACK_DEPTH = 0x0BA5;
+ int GL_VERTEX_ARRAY_BUFFER_BINDING = 0x8896;
+ int GL_VERTEX_ARRAY_POINTER = 0x808E;
+ int GL_VERTEX_ARRAY_SIZE = 0x807A;
+ int GL_VERTEX_ARRAY_STRIDE = 0x807C;
+ int GL_VERTEX_ARRAY_TYPE = 0x807B;
+ int GL_VIEWPORT = 0x0BA2;
+ int GL_WRITE_ONLY = 0x88B9;
+
+ void glGetPointerv(int pname, java.nio.Buffer[] params);
diff --git a/opengl/tools/glgen/stubs/jsr239/GL11ImplHeader.java-impl b/opengl/tools/glgen/stubs/jsr239/GL11ImplHeader.java-impl
new file mode 100644
index 0000000..501be65
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GL11ImplHeader.java-impl
@@ -0,0 +1,30 @@
+// Copyright 2006 The Android Open Source Project
+
+// All Rights Reserved.
+
+// This source file is automatically generated
+
+package com.google.android.gles_jni;
+
+import java.nio.Buffer;
+import javax.microedition.khronos.opengles.GL11;
+import android.graphics.Canvas;
+
+public class GL11Impl implements GL11 {
+
+ // Private accessors for native code
+
+ native private static void _nativeClassInit();
+ static {
+ _nativeClassInit();
+ }
+
+ Buffer _colorPointer = null;
+ Buffer _normalPointer = null;
+ Buffer _texCoordPointer = null;
+ Buffer _vertexPointer = null;
+
+ public GL11Impl() {
+ }
+
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GLCHeader.cpp b/opengl/tools/glgen/stubs/jsr239/GLCHeader.cpp
new file mode 100644
index 0000000..4636081
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GLCHeader.cpp
@@ -0,0 +1,129 @@
+**
+** Copyright 2006, 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);
+}
+
+// --------------------------------------------------------------------------
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GLHeader.java-if b/opengl/tools/glgen/stubs/jsr239/GLHeader.java-if
new file mode 100644
index 0000000..3b78f3d
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GLHeader.java-if
@@ -0,0 +1,22 @@
+/* //device/java/android/javax/microedition/khronos/opengles/GL.java
+**
+** Copyright 2006, 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.
+*/
+
+package javax.microedition.khronos.opengles;
+
+public interface GL {
+}
+
diff --git a/opengl/tools/glgen/stubs/jsr239/GLImplHeader.java-impl b/opengl/tools/glgen/stubs/jsr239/GLImplHeader.java-impl
new file mode 100644
index 0000000..db3a41c
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/GLImplHeader.java-impl
@@ -0,0 +1,48 @@
+**
+** Copyright 2006, 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 com.google.android.gles_jni;
+
+import java.nio.Buffer;
+import javax.microedition.khronos.opengles.GL10;
+import javax.microedition.khronos.opengles.GL10Ext;
+import javax.microedition.khronos.opengles.GL11;
+import javax.microedition.khronos.opengles.GL11Ext;
+import javax.microedition.khronos.opengles.GL11ExtensionPack;
+
+public class GLImpl implements GL10, GL10Ext, GL11, GL11Ext, GL11ExtensionPack {
+
+ // Private accessors for native code
+
+ native private static void _nativeClassInit();
+ static {
+ _nativeClassInit();
+ }
+
+ Buffer _colorPointer = null;
+ Buffer _normalPointer = null;
+ Buffer _texCoordPointer = null;
+ Buffer _vertexPointer = null;
+
+ public GLImpl() {
+ }
+
+ public void glGetPointerv(int pname, java.nio.Buffer[] params) {
+ throw new UnsupportedOperationException("glGetPointerv");
+ }
+
diff --git a/opengl/tools/glgen/stubs/jsr239/glGetString.cpp b/opengl/tools/glgen/stubs/jsr239/glGetString.cpp
new file mode 100644
index 0000000..a400859
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/glGetString.cpp
@@ -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;
+}
diff --git a/opengl/tools/glgen/stubs/jsr239/glGetString.java-10-if b/opengl/tools/glgen/stubs/jsr239/glGetString.java-10-if
new file mode 100644
index 0000000..898fabc
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/glGetString.java-10-if
@@ -0,0 +1,4 @@
+ public String glGetString(
+ int name
+ );
+
diff --git a/opengl/tools/glgen/stubs/jsr239/glGetString.java-if b/opengl/tools/glgen/stubs/jsr239/glGetString.java-if
new file mode 100644
index 0000000..898fabc
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/glGetString.java-if
@@ -0,0 +1,4 @@
+ public String glGetString(
+ int name
+ );
+
diff --git a/opengl/tools/glgen/stubs/jsr239/glGetString.java-impl b/opengl/tools/glgen/stubs/jsr239/glGetString.java-impl
new file mode 100644
index 0000000..8c7881c
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/glGetString.java-impl
@@ -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;
+ }
+
diff --git a/opengl/tools/glgen/stubs/jsr239/glGetString.nativeReg b/opengl/tools/glgen/stubs/jsr239/glGetString.nativeReg
new file mode 100644
index 0000000..e64187c
--- /dev/null
+++ b/opengl/tools/glgen/stubs/jsr239/glGetString.nativeReg
@@ -0,0 +1 @@
+{"_glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString },