android_opengl_GLES10.cpp revision 8331f72078051cdf5a26230ee819f7ef7f9fcc24
1/* 2** 3** Copyright 2009, The Android Open Source Project 4** 5** Licensed under the Apache License, Version 2.0 (the "License"); 6** you may not use this file except in compliance with the License. 7** You may obtain a copy of the License at 8** 9** http://www.apache.org/licenses/LICENSE-2.0 10** 11** Unless required by applicable law or agreed to in writing, software 12** distributed under the License is distributed on an "AS IS" BASIS, 13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14** See the License for the specific language governing permissions and 15** limitations under the License. 16*/ 17 18// This source file is automatically generated 19 20#include <android_runtime/AndroidRuntime.h> 21#include <utils/misc.h> 22 23#include <assert.h> 24#include <GLES/gl.h> 25#include <GLES/glext.h> 26 27/* special calls implemented in Android's GLES wrapper used to more 28 * efficiently bound-check passed arrays */ 29extern "C" { 30GL_API void GL_APIENTRY glColorPointerBounds(GLint size, GLenum type, GLsizei stride, 31 const GLvoid *ptr, GLsizei count); 32GL_API void GL_APIENTRY glNormalPointerBounds(GLenum type, GLsizei stride, 33 const GLvoid *pointer, GLsizei count); 34GL_API void GL_APIENTRY glTexCoordPointerBounds(GLint size, GLenum type, 35 GLsizei stride, const GLvoid *pointer, GLsizei count); 36GL_API void GL_APIENTRY glVertexPointerBounds(GLint size, GLenum type, 37 GLsizei stride, const GLvoid *pointer, GLsizei count); 38} 39 40static int initialized = 0; 41 42static jclass nioAccessClass; 43static jclass bufferClass; 44static jclass OOMEClass; 45static jclass UOEClass; 46static jclass IAEClass; 47static jclass AIOOBEClass; 48static jmethodID getBasePointerID; 49static jmethodID getBaseArrayID; 50static jmethodID getBaseArrayOffsetID; 51static jfieldID positionID; 52static jfieldID limitID; 53static jfieldID elementSizeShiftID; 54 55/* Cache method IDs each time the class is loaded. */ 56 57static void 58nativeClassInitBuffer(JNIEnv *_env) 59{ 60 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 61 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 62 63 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 64 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 65 66 getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 67 "getBasePointer", "(Ljava/nio/Buffer;)J"); 68 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 69 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 70 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 71 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 72 73 positionID = _env->GetFieldID(bufferClass, "position", "I"); 74 limitID = _env->GetFieldID(bufferClass, "limit", "I"); 75 elementSizeShiftID = 76 _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 77} 78 79static void 80nativeClassInit(JNIEnv *_env, jclass glImplClass) 81{ 82 nativeClassInitBuffer(_env); 83 84 jclass IAEClassLocal = 85 _env->FindClass("java/lang/IllegalArgumentException"); 86 jclass OOMEClassLocal = 87 _env->FindClass("java/lang/OutOfMemoryError"); 88 jclass UOEClassLocal = 89 _env->FindClass("java/lang/UnsupportedOperationException"); 90 jclass AIOOBEClassLocal = 91 _env->FindClass("java/lang/ArrayIndexOutOfBoundsException"); 92 93 IAEClass = (jclass) _env->NewGlobalRef(IAEClassLocal); 94 OOMEClass = (jclass) _env->NewGlobalRef(OOMEClassLocal); 95 UOEClass = (jclass) _env->NewGlobalRef(UOEClassLocal); 96 AIOOBEClass = (jclass) _env->NewGlobalRef(AIOOBEClassLocal); 97} 98 99static void * 100getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining) 101{ 102 jint position; 103 jint limit; 104 jint elementSizeShift; 105 jlong pointer; 106 jint offset; 107 void *data; 108 109 position = _env->GetIntField(buffer, positionID); 110 limit = _env->GetIntField(buffer, limitID); 111 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 112 *remaining = (limit - position) << elementSizeShift; 113 pointer = _env->CallStaticLongMethod(nioAccessClass, 114 getBasePointerID, buffer); 115 if (pointer != 0L) { 116 *array = NULL; 117 return (void *) (jint) pointer; 118 } 119 120 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 121 getBaseArrayID, buffer); 122 offset = _env->CallStaticIntMethod(nioAccessClass, 123 getBaseArrayOffsetID, buffer); 124 data = _env->GetPrimitiveArrayCritical(*array, (jboolean *) 0); 125 126 return (void *) ((char *) data + offset); 127} 128 129static void 130releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 131{ 132 _env->ReleasePrimitiveArrayCritical(array, data, 133 commit ? 0 : JNI_ABORT); 134} 135 136static int 137getNumCompressedTextureFormats() { 138 int numCompressedTextureFormats = 0; 139 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats); 140 return numCompressedTextureFormats; 141} 142 143// -------------------------------------------------------------------------- 144 145/* void glActiveTexture ( GLenum texture ) */ 146static void 147android_glActiveTexture__I 148 (JNIEnv *_env, jobject _this, jint texture) { 149 glActiveTexture( 150 (GLenum)texture 151 ); 152} 153 154/* void glAlphaFunc ( GLenum func, GLclampf ref ) */ 155static void 156android_glAlphaFunc__IF 157 (JNIEnv *_env, jobject _this, jint func, jfloat ref) { 158 glAlphaFunc( 159 (GLenum)func, 160 (GLclampf)ref 161 ); 162} 163 164/* void glAlphaFuncx ( GLenum func, GLclampx ref ) */ 165static void 166android_glAlphaFuncx__II 167 (JNIEnv *_env, jobject _this, jint func, jint ref) { 168 glAlphaFuncx( 169 (GLenum)func, 170 (GLclampx)ref 171 ); 172} 173 174/* void glBindTexture ( GLenum target, GLuint texture ) */ 175static void 176android_glBindTexture__II 177 (JNIEnv *_env, jobject _this, jint target, jint texture) { 178 glBindTexture( 179 (GLenum)target, 180 (GLuint)texture 181 ); 182} 183 184/* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 185static void 186android_glBlendFunc__II 187 (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 188 glBlendFunc( 189 (GLenum)sfactor, 190 (GLenum)dfactor 191 ); 192} 193 194/* void glClear ( GLbitfield mask ) */ 195static void 196android_glClear__I 197 (JNIEnv *_env, jobject _this, jint mask) { 198 glClear( 199 (GLbitfield)mask 200 ); 201} 202 203/* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 204static void 205android_glClearColor__FFFF 206 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 207 glClearColor( 208 (GLclampf)red, 209 (GLclampf)green, 210 (GLclampf)blue, 211 (GLclampf)alpha 212 ); 213} 214 215/* void glClearColorx ( GLclampx red, GLclampx green, GLclampx blue, GLclampx alpha ) */ 216static void 217android_glClearColorx__IIII 218 (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 219 glClearColorx( 220 (GLclampx)red, 221 (GLclampx)green, 222 (GLclampx)blue, 223 (GLclampx)alpha 224 ); 225} 226 227/* void glClearDepthf ( GLclampf depth ) */ 228static void 229android_glClearDepthf__F 230 (JNIEnv *_env, jobject _this, jfloat depth) { 231 glClearDepthf( 232 (GLclampf)depth 233 ); 234} 235 236/* void glClearDepthx ( GLclampx depth ) */ 237static void 238android_glClearDepthx__I 239 (JNIEnv *_env, jobject _this, jint depth) { 240 glClearDepthx( 241 (GLclampx)depth 242 ); 243} 244 245/* void glClearStencil ( GLint s ) */ 246static void 247android_glClearStencil__I 248 (JNIEnv *_env, jobject _this, jint s) { 249 glClearStencil( 250 (GLint)s 251 ); 252} 253 254/* void glClientActiveTexture ( GLenum texture ) */ 255static void 256android_glClientActiveTexture__I 257 (JNIEnv *_env, jobject _this, jint texture) { 258 glClientActiveTexture( 259 (GLenum)texture 260 ); 261} 262 263/* void glColor4f ( GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha ) */ 264static void 265android_glColor4f__FFFF 266 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 267 glColor4f( 268 (GLfloat)red, 269 (GLfloat)green, 270 (GLfloat)blue, 271 (GLfloat)alpha 272 ); 273} 274 275/* void glColor4x ( GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha ) */ 276static void 277android_glColor4x__IIII 278 (JNIEnv *_env, jobject _this, jint red, jint green, jint blue, jint alpha) { 279 glColor4x( 280 (GLfixed)red, 281 (GLfixed)green, 282 (GLfixed)blue, 283 (GLfixed)alpha 284 ); 285} 286 287/* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 288static void 289android_glColorMask__ZZZZ 290 (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 291 glColorMask( 292 (GLboolean)red, 293 (GLboolean)green, 294 (GLboolean)blue, 295 (GLboolean)alpha 296 ); 297} 298 299/* void glColorPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 300static void 301android_glColorPointerBounds__IIILjava_nio_Buffer_2I 302 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 303 jarray _array = (jarray) 0; 304 jint _remaining; 305 GLvoid *pointer = (GLvoid *) 0; 306 307 if (pointer_buf) { 308 pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf); 309 if ( ! pointer ) { 310 _env->ThrowNew(IAEClass, "Must use a native order direct Buffer"); 311 return; 312 } 313 } 314 glColorPointerBounds( 315 (GLint)size, 316 (GLenum)type, 317 (GLsizei)stride, 318 (GLvoid *)pointer, 319 (GLsizei)remaining 320 ); 321} 322 323/* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 324static void 325android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 326 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 327 jarray _array = (jarray) 0; 328 jint _remaining; 329 GLvoid *data = (GLvoid *) 0; 330 331 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining); 332 glCompressedTexImage2D( 333 (GLenum)target, 334 (GLint)level, 335 (GLenum)internalformat, 336 (GLsizei)width, 337 (GLsizei)height, 338 (GLint)border, 339 (GLsizei)imageSize, 340 (GLvoid *)data 341 ); 342 if (_array) { 343 releasePointer(_env, _array, data, JNI_FALSE); 344 } 345} 346 347/* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 348static void 349android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 350 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 351 jarray _array = (jarray) 0; 352 jint _remaining; 353 GLvoid *data = (GLvoid *) 0; 354 355 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining); 356 glCompressedTexSubImage2D( 357 (GLenum)target, 358 (GLint)level, 359 (GLint)xoffset, 360 (GLint)yoffset, 361 (GLsizei)width, 362 (GLsizei)height, 363 (GLenum)format, 364 (GLsizei)imageSize, 365 (GLvoid *)data 366 ); 367 if (_array) { 368 releasePointer(_env, _array, data, JNI_FALSE); 369 } 370} 371 372/* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 373static void 374android_glCopyTexImage2D__IIIIIIII 375 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 376 glCopyTexImage2D( 377 (GLenum)target, 378 (GLint)level, 379 (GLenum)internalformat, 380 (GLint)x, 381 (GLint)y, 382 (GLsizei)width, 383 (GLsizei)height, 384 (GLint)border 385 ); 386} 387 388/* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 389static void 390android_glCopyTexSubImage2D__IIIIIIII 391 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 392 glCopyTexSubImage2D( 393 (GLenum)target, 394 (GLint)level, 395 (GLint)xoffset, 396 (GLint)yoffset, 397 (GLint)x, 398 (GLint)y, 399 (GLsizei)width, 400 (GLsizei)height 401 ); 402} 403 404/* void glCullFace ( GLenum mode ) */ 405static void 406android_glCullFace__I 407 (JNIEnv *_env, jobject _this, jint mode) { 408 glCullFace( 409 (GLenum)mode 410 ); 411} 412 413/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 414static void 415android_glDeleteTextures__I_3II 416 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 417 GLuint *textures_base = (GLuint *) 0; 418 jint _remaining; 419 GLuint *textures = (GLuint *) 0; 420 421 if (!textures_ref) { 422 _env->ThrowNew(IAEClass, "textures == null"); 423 goto exit; 424 } 425 if (offset < 0) { 426 _env->ThrowNew(IAEClass, "offset < 0"); 427 goto exit; 428 } 429 _remaining = _env->GetArrayLength(textures_ref) - offset; 430 if (_remaining < n) { 431 _env->ThrowNew(IAEClass, "length - offset < n"); 432 goto exit; 433 } 434 textures_base = (GLuint *) 435 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 436 textures = textures_base + offset; 437 438 glDeleteTextures( 439 (GLsizei)n, 440 (GLuint *)textures 441 ); 442 443exit: 444 if (textures_base) { 445 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 446 JNI_ABORT); 447 } 448} 449 450/* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 451static void 452android_glDeleteTextures__ILjava_nio_IntBuffer_2 453 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 454 jarray _array = (jarray) 0; 455 jint _remaining; 456 GLuint *textures = (GLuint *) 0; 457 458 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining); 459 if (_remaining < n) { 460 _env->ThrowNew(IAEClass, "remaining() < n"); 461 goto exit; 462 } 463 glDeleteTextures( 464 (GLsizei)n, 465 (GLuint *)textures 466 ); 467 468exit: 469 if (_array) { 470 releasePointer(_env, _array, textures, JNI_FALSE); 471 } 472} 473 474/* void glDepthFunc ( GLenum func ) */ 475static void 476android_glDepthFunc__I 477 (JNIEnv *_env, jobject _this, jint func) { 478 glDepthFunc( 479 (GLenum)func 480 ); 481} 482 483/* void glDepthMask ( GLboolean flag ) */ 484static void 485android_glDepthMask__Z 486 (JNIEnv *_env, jobject _this, jboolean flag) { 487 glDepthMask( 488 (GLboolean)flag 489 ); 490} 491 492/* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 493static void 494android_glDepthRangef__FF 495 (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 496 glDepthRangef( 497 (GLclampf)zNear, 498 (GLclampf)zFar 499 ); 500} 501 502/* void glDepthRangex ( GLclampx zNear, GLclampx zFar ) */ 503static void 504android_glDepthRangex__II 505 (JNIEnv *_env, jobject _this, jint zNear, jint zFar) { 506 glDepthRangex( 507 (GLclampx)zNear, 508 (GLclampx)zFar 509 ); 510} 511 512/* void glDisable ( GLenum cap ) */ 513static void 514android_glDisable__I 515 (JNIEnv *_env, jobject _this, jint cap) { 516 glDisable( 517 (GLenum)cap 518 ); 519} 520 521/* void glDisableClientState ( GLenum array ) */ 522static void 523android_glDisableClientState__I 524 (JNIEnv *_env, jobject _this, jint array) { 525 glDisableClientState( 526 (GLenum)array 527 ); 528} 529 530/* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 531static void 532android_glDrawArrays__III 533 (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 534 glDrawArrays( 535 (GLenum)mode, 536 (GLint)first, 537 (GLsizei)count 538 ); 539} 540 541/* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 542static void 543android_glDrawElements__IIILjava_nio_Buffer_2 544 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 545 jarray _array = (jarray) 0; 546 jint _remaining; 547 GLvoid *indices = (GLvoid *) 0; 548 549 indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining); 550 if (_remaining < count) { 551 _env->ThrowNew(AIOOBEClass, "remaining() < count"); 552 goto exit; 553 } 554 glDrawElements( 555 (GLenum)mode, 556 (GLsizei)count, 557 (GLenum)type, 558 (GLvoid *)indices 559 ); 560 561exit: 562 if (_array) { 563 releasePointer(_env, _array, indices, JNI_FALSE); 564 } 565} 566 567/* void glEnable ( GLenum cap ) */ 568static void 569android_glEnable__I 570 (JNIEnv *_env, jobject _this, jint cap) { 571 glEnable( 572 (GLenum)cap 573 ); 574} 575 576/* void glEnableClientState ( GLenum array ) */ 577static void 578android_glEnableClientState__I 579 (JNIEnv *_env, jobject _this, jint array) { 580 glEnableClientState( 581 (GLenum)array 582 ); 583} 584 585/* void glFinish ( void ) */ 586static void 587android_glFinish__ 588 (JNIEnv *_env, jobject _this) { 589 glFinish(); 590} 591 592/* void glFlush ( void ) */ 593static void 594android_glFlush__ 595 (JNIEnv *_env, jobject _this) { 596 glFlush(); 597} 598 599/* void glFogf ( GLenum pname, GLfloat param ) */ 600static void 601android_glFogf__IF 602 (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 603 glFogf( 604 (GLenum)pname, 605 (GLfloat)param 606 ); 607} 608 609/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 610static void 611android_glFogfv__I_3FI 612 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 613 GLfloat *params_base = (GLfloat *) 0; 614 jint _remaining; 615 GLfloat *params = (GLfloat *) 0; 616 617 if (!params_ref) { 618 _env->ThrowNew(IAEClass, "params == null"); 619 goto exit; 620 } 621 if (offset < 0) { 622 _env->ThrowNew(IAEClass, "offset < 0"); 623 goto exit; 624 } 625 _remaining = _env->GetArrayLength(params_ref) - offset; 626 int _needed; 627 switch (pname) { 628#if defined(GL_FOG_MODE) 629 case GL_FOG_MODE: 630#endif // defined(GL_FOG_MODE) 631#if defined(GL_FOG_DENSITY) 632 case GL_FOG_DENSITY: 633#endif // defined(GL_FOG_DENSITY) 634#if defined(GL_FOG_START) 635 case GL_FOG_START: 636#endif // defined(GL_FOG_START) 637#if defined(GL_FOG_END) 638 case GL_FOG_END: 639#endif // defined(GL_FOG_END) 640 _needed = 1; 641 break; 642#if defined(GL_FOG_COLOR) 643 case GL_FOG_COLOR: 644#endif // defined(GL_FOG_COLOR) 645 _needed = 4; 646 break; 647 default: 648 _needed = 0; 649 break; 650 } 651 if (_remaining < _needed) { 652 _env->ThrowNew(IAEClass, "length - offset < needed"); 653 goto exit; 654 } 655 params_base = (GLfloat *) 656 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 657 params = params_base + offset; 658 659 glFogfv( 660 (GLenum)pname, 661 (GLfloat *)params 662 ); 663 664exit: 665 if (params_base) { 666 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 667 JNI_ABORT); 668 } 669} 670 671/* void glFogfv ( GLenum pname, const GLfloat *params ) */ 672static void 673android_glFogfv__ILjava_nio_FloatBuffer_2 674 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 675 jarray _array = (jarray) 0; 676 jint _remaining; 677 GLfloat *params = (GLfloat *) 0; 678 679 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 680 int _needed; 681 switch (pname) { 682#if defined(GL_FOG_MODE) 683 case GL_FOG_MODE: 684#endif // defined(GL_FOG_MODE) 685#if defined(GL_FOG_DENSITY) 686 case GL_FOG_DENSITY: 687#endif // defined(GL_FOG_DENSITY) 688#if defined(GL_FOG_START) 689 case GL_FOG_START: 690#endif // defined(GL_FOG_START) 691#if defined(GL_FOG_END) 692 case GL_FOG_END: 693#endif // defined(GL_FOG_END) 694 _needed = 1; 695 break; 696#if defined(GL_FOG_COLOR) 697 case GL_FOG_COLOR: 698#endif // defined(GL_FOG_COLOR) 699 _needed = 4; 700 break; 701 default: 702 _needed = 0; 703 break; 704 } 705 if (_remaining < _needed) { 706 _env->ThrowNew(IAEClass, "remaining() < needed"); 707 goto exit; 708 } 709 glFogfv( 710 (GLenum)pname, 711 (GLfloat *)params 712 ); 713 714exit: 715 if (_array) { 716 releasePointer(_env, _array, params, JNI_FALSE); 717 } 718} 719 720/* void glFogx ( GLenum pname, GLfixed param ) */ 721static void 722android_glFogx__II 723 (JNIEnv *_env, jobject _this, jint pname, jint param) { 724 glFogx( 725 (GLenum)pname, 726 (GLfixed)param 727 ); 728} 729 730/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 731static void 732android_glFogxv__I_3II 733 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 734 GLfixed *params_base = (GLfixed *) 0; 735 jint _remaining; 736 GLfixed *params = (GLfixed *) 0; 737 738 if (!params_ref) { 739 _env->ThrowNew(IAEClass, "params == null"); 740 goto exit; 741 } 742 if (offset < 0) { 743 _env->ThrowNew(IAEClass, "offset < 0"); 744 goto exit; 745 } 746 _remaining = _env->GetArrayLength(params_ref) - offset; 747 int _needed; 748 switch (pname) { 749#if defined(GL_FOG_MODE) 750 case GL_FOG_MODE: 751#endif // defined(GL_FOG_MODE) 752#if defined(GL_FOG_DENSITY) 753 case GL_FOG_DENSITY: 754#endif // defined(GL_FOG_DENSITY) 755#if defined(GL_FOG_START) 756 case GL_FOG_START: 757#endif // defined(GL_FOG_START) 758#if defined(GL_FOG_END) 759 case GL_FOG_END: 760#endif // defined(GL_FOG_END) 761 _needed = 1; 762 break; 763#if defined(GL_FOG_COLOR) 764 case GL_FOG_COLOR: 765#endif // defined(GL_FOG_COLOR) 766 _needed = 4; 767 break; 768 default: 769 _needed = 0; 770 break; 771 } 772 if (_remaining < _needed) { 773 _env->ThrowNew(IAEClass, "length - offset < needed"); 774 goto exit; 775 } 776 params_base = (GLfixed *) 777 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 778 params = params_base + offset; 779 780 glFogxv( 781 (GLenum)pname, 782 (GLfixed *)params 783 ); 784 785exit: 786 if (params_base) { 787 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 788 JNI_ABORT); 789 } 790} 791 792/* void glFogxv ( GLenum pname, const GLfixed *params ) */ 793static void 794android_glFogxv__ILjava_nio_IntBuffer_2 795 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 796 jarray _array = (jarray) 0; 797 jint _remaining; 798 GLfixed *params = (GLfixed *) 0; 799 800 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 801 int _needed; 802 switch (pname) { 803#if defined(GL_FOG_MODE) 804 case GL_FOG_MODE: 805#endif // defined(GL_FOG_MODE) 806#if defined(GL_FOG_DENSITY) 807 case GL_FOG_DENSITY: 808#endif // defined(GL_FOG_DENSITY) 809#if defined(GL_FOG_START) 810 case GL_FOG_START: 811#endif // defined(GL_FOG_START) 812#if defined(GL_FOG_END) 813 case GL_FOG_END: 814#endif // defined(GL_FOG_END) 815 _needed = 1; 816 break; 817#if defined(GL_FOG_COLOR) 818 case GL_FOG_COLOR: 819#endif // defined(GL_FOG_COLOR) 820 _needed = 4; 821 break; 822 default: 823 _needed = 0; 824 break; 825 } 826 if (_remaining < _needed) { 827 _env->ThrowNew(IAEClass, "remaining() < needed"); 828 goto exit; 829 } 830 glFogxv( 831 (GLenum)pname, 832 (GLfixed *)params 833 ); 834 835exit: 836 if (_array) { 837 releasePointer(_env, _array, params, JNI_FALSE); 838 } 839} 840 841/* void glFrontFace ( GLenum mode ) */ 842static void 843android_glFrontFace__I 844 (JNIEnv *_env, jobject _this, jint mode) { 845 glFrontFace( 846 (GLenum)mode 847 ); 848} 849 850/* void glFrustumf ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 851static void 852android_glFrustumf__FFFFFF 853 (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 854 glFrustumf( 855 (GLfloat)left, 856 (GLfloat)right, 857 (GLfloat)bottom, 858 (GLfloat)top, 859 (GLfloat)zNear, 860 (GLfloat)zFar 861 ); 862} 863 864/* void glFrustumx ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 865static void 866android_glFrustumx__IIIIII 867 (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 868 glFrustumx( 869 (GLfixed)left, 870 (GLfixed)right, 871 (GLfixed)bottom, 872 (GLfixed)top, 873 (GLfixed)zNear, 874 (GLfixed)zFar 875 ); 876} 877 878/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 879static void 880android_glGenTextures__I_3II 881 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 882 jint _exception = 0; 883 GLuint *textures_base = (GLuint *) 0; 884 jint _remaining; 885 GLuint *textures = (GLuint *) 0; 886 887 if (!textures_ref) { 888 _exception = 1; 889 _env->ThrowNew(IAEClass, "textures == null"); 890 goto exit; 891 } 892 if (offset < 0) { 893 _exception = 1; 894 _env->ThrowNew(IAEClass, "offset < 0"); 895 goto exit; 896 } 897 _remaining = _env->GetArrayLength(textures_ref) - offset; 898 if (_remaining < n) { 899 _exception = 1; 900 _env->ThrowNew(IAEClass, "length - offset < n"); 901 goto exit; 902 } 903 textures_base = (GLuint *) 904 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 905 textures = textures_base + offset; 906 907 glGenTextures( 908 (GLsizei)n, 909 (GLuint *)textures 910 ); 911 912exit: 913 if (textures_base) { 914 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 915 _exception ? JNI_ABORT: 0); 916 } 917} 918 919/* void glGenTextures ( GLsizei n, GLuint *textures ) */ 920static void 921android_glGenTextures__ILjava_nio_IntBuffer_2 922 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 923 jint _exception = 0; 924 jarray _array = (jarray) 0; 925 jint _remaining; 926 GLuint *textures = (GLuint *) 0; 927 928 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining); 929 if (_remaining < n) { 930 _exception = 1; 931 _env->ThrowNew(IAEClass, "remaining() < n"); 932 goto exit; 933 } 934 glGenTextures( 935 (GLsizei)n, 936 (GLuint *)textures 937 ); 938 939exit: 940 if (_array) { 941 releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 942 } 943} 944 945/* GLenum glGetError ( void ) */ 946static jint 947android_glGetError__ 948 (JNIEnv *_env, jobject _this) { 949 GLenum _returnValue; 950 _returnValue = glGetError(); 951 return _returnValue; 952} 953 954/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 955static void 956android_glGetIntegerv__I_3II 957 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 958 jint _exception = 0; 959 GLint *params_base = (GLint *) 0; 960 jint _remaining; 961 GLint *params = (GLint *) 0; 962 963 if (!params_ref) { 964 _exception = 1; 965 _env->ThrowNew(IAEClass, "params == null"); 966 goto exit; 967 } 968 if (offset < 0) { 969 _exception = 1; 970 _env->ThrowNew(IAEClass, "offset < 0"); 971 goto exit; 972 } 973 _remaining = _env->GetArrayLength(params_ref) - offset; 974 int _needed; 975 switch (pname) { 976#if defined(GL_ALPHA_BITS) 977 case GL_ALPHA_BITS: 978#endif // defined(GL_ALPHA_BITS) 979#if defined(GL_ALPHA_TEST_FUNC) 980 case GL_ALPHA_TEST_FUNC: 981#endif // defined(GL_ALPHA_TEST_FUNC) 982#if defined(GL_ALPHA_TEST_REF) 983 case GL_ALPHA_TEST_REF: 984#endif // defined(GL_ALPHA_TEST_REF) 985#if defined(GL_BLEND_DST) 986 case GL_BLEND_DST: 987#endif // defined(GL_BLEND_DST) 988#if defined(GL_BLUE_BITS) 989 case GL_BLUE_BITS: 990#endif // defined(GL_BLUE_BITS) 991#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 992 case GL_COLOR_ARRAY_BUFFER_BINDING: 993#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 994#if defined(GL_COLOR_ARRAY_SIZE) 995 case GL_COLOR_ARRAY_SIZE: 996#endif // defined(GL_COLOR_ARRAY_SIZE) 997#if defined(GL_COLOR_ARRAY_STRIDE) 998 case GL_COLOR_ARRAY_STRIDE: 999#endif // defined(GL_COLOR_ARRAY_STRIDE) 1000#if defined(GL_COLOR_ARRAY_TYPE) 1001 case GL_COLOR_ARRAY_TYPE: 1002#endif // defined(GL_COLOR_ARRAY_TYPE) 1003#if defined(GL_CULL_FACE) 1004 case GL_CULL_FACE: 1005#endif // defined(GL_CULL_FACE) 1006#if defined(GL_DEPTH_BITS) 1007 case GL_DEPTH_BITS: 1008#endif // defined(GL_DEPTH_BITS) 1009#if defined(GL_DEPTH_CLEAR_VALUE) 1010 case GL_DEPTH_CLEAR_VALUE: 1011#endif // defined(GL_DEPTH_CLEAR_VALUE) 1012#if defined(GL_DEPTH_FUNC) 1013 case GL_DEPTH_FUNC: 1014#endif // defined(GL_DEPTH_FUNC) 1015#if defined(GL_DEPTH_WRITEMASK) 1016 case GL_DEPTH_WRITEMASK: 1017#endif // defined(GL_DEPTH_WRITEMASK) 1018#if defined(GL_FOG_DENSITY) 1019 case GL_FOG_DENSITY: 1020#endif // defined(GL_FOG_DENSITY) 1021#if defined(GL_FOG_END) 1022 case GL_FOG_END: 1023#endif // defined(GL_FOG_END) 1024#if defined(GL_FOG_MODE) 1025 case GL_FOG_MODE: 1026#endif // defined(GL_FOG_MODE) 1027#if defined(GL_FOG_START) 1028 case GL_FOG_START: 1029#endif // defined(GL_FOG_START) 1030#if defined(GL_FRONT_FACE) 1031 case GL_FRONT_FACE: 1032#endif // defined(GL_FRONT_FACE) 1033#if defined(GL_GREEN_BITS) 1034 case GL_GREEN_BITS: 1035#endif // defined(GL_GREEN_BITS) 1036#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 1037 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 1038#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 1039#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1040 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 1041#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1042#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1043 case GL_LIGHT_MODEL_COLOR_CONTROL: 1044#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1045#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1046 case GL_LIGHT_MODEL_LOCAL_VIEWER: 1047#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1048#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1049 case GL_LIGHT_MODEL_TWO_SIDE: 1050#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1051#if defined(GL_LINE_SMOOTH_HINT) 1052 case GL_LINE_SMOOTH_HINT: 1053#endif // defined(GL_LINE_SMOOTH_HINT) 1054#if defined(GL_LINE_WIDTH) 1055 case GL_LINE_WIDTH: 1056#endif // defined(GL_LINE_WIDTH) 1057#if defined(GL_LOGIC_OP_MODE) 1058 case GL_LOGIC_OP_MODE: 1059#endif // defined(GL_LOGIC_OP_MODE) 1060#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 1061 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 1062#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 1063#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 1064 case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 1065#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 1066#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 1067 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 1068#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 1069#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 1070 case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 1071#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 1072#if defined(GL_MATRIX_MODE) 1073 case GL_MATRIX_MODE: 1074#endif // defined(GL_MATRIX_MODE) 1075#if defined(GL_MAX_CLIP_PLANES) 1076 case GL_MAX_CLIP_PLANES: 1077#endif // defined(GL_MAX_CLIP_PLANES) 1078#if defined(GL_MAX_ELEMENTS_INDICES) 1079 case GL_MAX_ELEMENTS_INDICES: 1080#endif // defined(GL_MAX_ELEMENTS_INDICES) 1081#if defined(GL_MAX_ELEMENTS_VERTICES) 1082 case GL_MAX_ELEMENTS_VERTICES: 1083#endif // defined(GL_MAX_ELEMENTS_VERTICES) 1084#if defined(GL_MAX_LIGHTS) 1085 case GL_MAX_LIGHTS: 1086#endif // defined(GL_MAX_LIGHTS) 1087#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 1088 case GL_MAX_MODELVIEW_STACK_DEPTH: 1089#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 1090#if defined(GL_MAX_PALETTE_MATRICES_OES) 1091 case GL_MAX_PALETTE_MATRICES_OES: 1092#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 1093#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 1094 case GL_MAX_PROJECTION_STACK_DEPTH: 1095#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 1096#if defined(GL_MAX_TEXTURE_SIZE) 1097 case GL_MAX_TEXTURE_SIZE: 1098#endif // defined(GL_MAX_TEXTURE_SIZE) 1099#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 1100 case GL_MAX_TEXTURE_STACK_DEPTH: 1101#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 1102#if defined(GL_MAX_TEXTURE_UNITS) 1103 case GL_MAX_TEXTURE_UNITS: 1104#endif // defined(GL_MAX_TEXTURE_UNITS) 1105#if defined(GL_MAX_VERTEX_UNITS_OES) 1106 case GL_MAX_VERTEX_UNITS_OES: 1107#endif // defined(GL_MAX_VERTEX_UNITS_OES) 1108#if defined(GL_MODELVIEW_STACK_DEPTH) 1109 case GL_MODELVIEW_STACK_DEPTH: 1110#endif // defined(GL_MODELVIEW_STACK_DEPTH) 1111#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 1112 case GL_NORMAL_ARRAY_BUFFER_BINDING: 1113#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 1114#if defined(GL_NORMAL_ARRAY_STRIDE) 1115 case GL_NORMAL_ARRAY_STRIDE: 1116#endif // defined(GL_NORMAL_ARRAY_STRIDE) 1117#if defined(GL_NORMAL_ARRAY_TYPE) 1118 case GL_NORMAL_ARRAY_TYPE: 1119#endif // defined(GL_NORMAL_ARRAY_TYPE) 1120#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 1121 case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 1122#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 1123#if defined(GL_PACK_ALIGNMENT) 1124 case GL_PACK_ALIGNMENT: 1125#endif // defined(GL_PACK_ALIGNMENT) 1126#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 1127 case GL_PERSPECTIVE_CORRECTION_HINT: 1128#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 1129#if defined(GL_POINT_SIZE) 1130 case GL_POINT_SIZE: 1131#endif // defined(GL_POINT_SIZE) 1132#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 1133 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 1134#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 1135#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 1136 case GL_POINT_SIZE_ARRAY_STRIDE_OES: 1137#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 1138#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 1139 case GL_POINT_SIZE_ARRAY_TYPE_OES: 1140#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 1141#if defined(GL_POINT_SMOOTH_HINT) 1142 case GL_POINT_SMOOTH_HINT: 1143#endif // defined(GL_POINT_SMOOTH_HINT) 1144#if defined(GL_POLYGON_OFFSET_FACTOR) 1145 case GL_POLYGON_OFFSET_FACTOR: 1146#endif // defined(GL_POLYGON_OFFSET_FACTOR) 1147#if defined(GL_POLYGON_OFFSET_UNITS) 1148 case GL_POLYGON_OFFSET_UNITS: 1149#endif // defined(GL_POLYGON_OFFSET_UNITS) 1150#if defined(GL_PROJECTION_STACK_DEPTH) 1151 case GL_PROJECTION_STACK_DEPTH: 1152#endif // defined(GL_PROJECTION_STACK_DEPTH) 1153#if defined(GL_RED_BITS) 1154 case GL_RED_BITS: 1155#endif // defined(GL_RED_BITS) 1156#if defined(GL_SHADE_MODEL) 1157 case GL_SHADE_MODEL: 1158#endif // defined(GL_SHADE_MODEL) 1159#if defined(GL_STENCIL_BITS) 1160 case GL_STENCIL_BITS: 1161#endif // defined(GL_STENCIL_BITS) 1162#if defined(GL_STENCIL_CLEAR_VALUE) 1163 case GL_STENCIL_CLEAR_VALUE: 1164#endif // defined(GL_STENCIL_CLEAR_VALUE) 1165#if defined(GL_STENCIL_FAIL) 1166 case GL_STENCIL_FAIL: 1167#endif // defined(GL_STENCIL_FAIL) 1168#if defined(GL_STENCIL_FUNC) 1169 case GL_STENCIL_FUNC: 1170#endif // defined(GL_STENCIL_FUNC) 1171#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 1172 case GL_STENCIL_PASS_DEPTH_FAIL: 1173#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 1174#if defined(GL_STENCIL_PASS_DEPTH_PASS) 1175 case GL_STENCIL_PASS_DEPTH_PASS: 1176#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 1177#if defined(GL_STENCIL_REF) 1178 case GL_STENCIL_REF: 1179#endif // defined(GL_STENCIL_REF) 1180#if defined(GL_STENCIL_VALUE_MASK) 1181 case GL_STENCIL_VALUE_MASK: 1182#endif // defined(GL_STENCIL_VALUE_MASK) 1183#if defined(GL_STENCIL_WRITEMASK) 1184 case GL_STENCIL_WRITEMASK: 1185#endif // defined(GL_STENCIL_WRITEMASK) 1186#if defined(GL_SUBPIXEL_BITS) 1187 case GL_SUBPIXEL_BITS: 1188#endif // defined(GL_SUBPIXEL_BITS) 1189#if defined(GL_TEXTURE_BINDING_2D) 1190 case GL_TEXTURE_BINDING_2D: 1191#endif // defined(GL_TEXTURE_BINDING_2D) 1192#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 1193 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 1194#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 1195#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 1196 case GL_TEXTURE_COORD_ARRAY_SIZE: 1197#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 1198#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 1199 case GL_TEXTURE_COORD_ARRAY_STRIDE: 1200#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 1201#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 1202 case GL_TEXTURE_COORD_ARRAY_TYPE: 1203#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 1204#if defined(GL_TEXTURE_STACK_DEPTH) 1205 case GL_TEXTURE_STACK_DEPTH: 1206#endif // defined(GL_TEXTURE_STACK_DEPTH) 1207#if defined(GL_UNPACK_ALIGNMENT) 1208 case GL_UNPACK_ALIGNMENT: 1209#endif // defined(GL_UNPACK_ALIGNMENT) 1210#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 1211 case GL_VERTEX_ARRAY_BUFFER_BINDING: 1212#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 1213#if defined(GL_VERTEX_ARRAY_SIZE) 1214 case GL_VERTEX_ARRAY_SIZE: 1215#endif // defined(GL_VERTEX_ARRAY_SIZE) 1216#if defined(GL_VERTEX_ARRAY_STRIDE) 1217 case GL_VERTEX_ARRAY_STRIDE: 1218#endif // defined(GL_VERTEX_ARRAY_STRIDE) 1219#if defined(GL_VERTEX_ARRAY_TYPE) 1220 case GL_VERTEX_ARRAY_TYPE: 1221#endif // defined(GL_VERTEX_ARRAY_TYPE) 1222#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 1223 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 1224#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 1225#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 1226 case GL_WEIGHT_ARRAY_SIZE_OES: 1227#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 1228#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 1229 case GL_WEIGHT_ARRAY_STRIDE_OES: 1230#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 1231#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 1232 case GL_WEIGHT_ARRAY_TYPE_OES: 1233#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 1234 _needed = 1; 1235 break; 1236#if defined(GL_ALIASED_POINT_SIZE_RANGE) 1237 case GL_ALIASED_POINT_SIZE_RANGE: 1238#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 1239#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 1240 case GL_ALIASED_LINE_WIDTH_RANGE: 1241#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 1242#if defined(GL_DEPTH_RANGE) 1243 case GL_DEPTH_RANGE: 1244#endif // defined(GL_DEPTH_RANGE) 1245#if defined(GL_MAX_VIEWPORT_DIMS) 1246 case GL_MAX_VIEWPORT_DIMS: 1247#endif // defined(GL_MAX_VIEWPORT_DIMS) 1248#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 1249 case GL_SMOOTH_LINE_WIDTH_RANGE: 1250#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 1251#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 1252 case GL_SMOOTH_POINT_SIZE_RANGE: 1253#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 1254 _needed = 2; 1255 break; 1256#if defined(GL_COLOR_CLEAR_VALUE) 1257 case GL_COLOR_CLEAR_VALUE: 1258#endif // defined(GL_COLOR_CLEAR_VALUE) 1259#if defined(GL_COLOR_WRITEMASK) 1260 case GL_COLOR_WRITEMASK: 1261#endif // defined(GL_COLOR_WRITEMASK) 1262#if defined(GL_FOG_COLOR) 1263 case GL_FOG_COLOR: 1264#endif // defined(GL_FOG_COLOR) 1265#if defined(GL_LIGHT_MODEL_AMBIENT) 1266 case GL_LIGHT_MODEL_AMBIENT: 1267#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1268#if defined(GL_SCISSOR_BOX) 1269 case GL_SCISSOR_BOX: 1270#endif // defined(GL_SCISSOR_BOX) 1271#if defined(GL_VIEWPORT) 1272 case GL_VIEWPORT: 1273#endif // defined(GL_VIEWPORT) 1274 _needed = 4; 1275 break; 1276#if defined(GL_MODELVIEW_MATRIX) 1277 case GL_MODELVIEW_MATRIX: 1278#endif // defined(GL_MODELVIEW_MATRIX) 1279#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 1280 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 1281#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 1282#if defined(GL_PROJECTION_MATRIX) 1283 case GL_PROJECTION_MATRIX: 1284#endif // defined(GL_PROJECTION_MATRIX) 1285#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 1286 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 1287#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 1288#if defined(GL_TEXTURE_MATRIX) 1289 case GL_TEXTURE_MATRIX: 1290#endif // defined(GL_TEXTURE_MATRIX) 1291#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 1292 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 1293#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 1294 _needed = 16; 1295 break; 1296#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 1297 case GL_COMPRESSED_TEXTURE_FORMATS: 1298#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 1299 _needed = getNumCompressedTextureFormats(); 1300 break; 1301 default: 1302 _needed = 0; 1303 break; 1304 } 1305 if (_remaining < _needed) { 1306 _exception = 1; 1307 _env->ThrowNew(IAEClass, "length - offset < needed"); 1308 goto exit; 1309 } 1310 params_base = (GLint *) 1311 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 1312 params = params_base + offset; 1313 1314 glGetIntegerv( 1315 (GLenum)pname, 1316 (GLint *)params 1317 ); 1318 1319exit: 1320 if (params_base) { 1321 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 1322 _exception ? JNI_ABORT: 0); 1323 } 1324} 1325 1326/* void glGetIntegerv ( GLenum pname, GLint *params ) */ 1327static void 1328android_glGetIntegerv__ILjava_nio_IntBuffer_2 1329 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 1330 jint _exception = 0; 1331 jarray _array = (jarray) 0; 1332 jint _remaining; 1333 GLint *params = (GLint *) 0; 1334 1335 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining); 1336 int _needed; 1337 switch (pname) { 1338#if defined(GL_ALPHA_BITS) 1339 case GL_ALPHA_BITS: 1340#endif // defined(GL_ALPHA_BITS) 1341#if defined(GL_ALPHA_TEST_FUNC) 1342 case GL_ALPHA_TEST_FUNC: 1343#endif // defined(GL_ALPHA_TEST_FUNC) 1344#if defined(GL_ALPHA_TEST_REF) 1345 case GL_ALPHA_TEST_REF: 1346#endif // defined(GL_ALPHA_TEST_REF) 1347#if defined(GL_BLEND_DST) 1348 case GL_BLEND_DST: 1349#endif // defined(GL_BLEND_DST) 1350#if defined(GL_BLUE_BITS) 1351 case GL_BLUE_BITS: 1352#endif // defined(GL_BLUE_BITS) 1353#if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 1354 case GL_COLOR_ARRAY_BUFFER_BINDING: 1355#endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 1356#if defined(GL_COLOR_ARRAY_SIZE) 1357 case GL_COLOR_ARRAY_SIZE: 1358#endif // defined(GL_COLOR_ARRAY_SIZE) 1359#if defined(GL_COLOR_ARRAY_STRIDE) 1360 case GL_COLOR_ARRAY_STRIDE: 1361#endif // defined(GL_COLOR_ARRAY_STRIDE) 1362#if defined(GL_COLOR_ARRAY_TYPE) 1363 case GL_COLOR_ARRAY_TYPE: 1364#endif // defined(GL_COLOR_ARRAY_TYPE) 1365#if defined(GL_CULL_FACE) 1366 case GL_CULL_FACE: 1367#endif // defined(GL_CULL_FACE) 1368#if defined(GL_DEPTH_BITS) 1369 case GL_DEPTH_BITS: 1370#endif // defined(GL_DEPTH_BITS) 1371#if defined(GL_DEPTH_CLEAR_VALUE) 1372 case GL_DEPTH_CLEAR_VALUE: 1373#endif // defined(GL_DEPTH_CLEAR_VALUE) 1374#if defined(GL_DEPTH_FUNC) 1375 case GL_DEPTH_FUNC: 1376#endif // defined(GL_DEPTH_FUNC) 1377#if defined(GL_DEPTH_WRITEMASK) 1378 case GL_DEPTH_WRITEMASK: 1379#endif // defined(GL_DEPTH_WRITEMASK) 1380#if defined(GL_FOG_DENSITY) 1381 case GL_FOG_DENSITY: 1382#endif // defined(GL_FOG_DENSITY) 1383#if defined(GL_FOG_END) 1384 case GL_FOG_END: 1385#endif // defined(GL_FOG_END) 1386#if defined(GL_FOG_MODE) 1387 case GL_FOG_MODE: 1388#endif // defined(GL_FOG_MODE) 1389#if defined(GL_FOG_START) 1390 case GL_FOG_START: 1391#endif // defined(GL_FOG_START) 1392#if defined(GL_FRONT_FACE) 1393 case GL_FRONT_FACE: 1394#endif // defined(GL_FRONT_FACE) 1395#if defined(GL_GREEN_BITS) 1396 case GL_GREEN_BITS: 1397#endif // defined(GL_GREEN_BITS) 1398#if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 1399 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 1400#endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 1401#if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1402 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 1403#endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 1404#if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1405 case GL_LIGHT_MODEL_COLOR_CONTROL: 1406#endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 1407#if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1408 case GL_LIGHT_MODEL_LOCAL_VIEWER: 1409#endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 1410#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1411 case GL_LIGHT_MODEL_TWO_SIDE: 1412#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1413#if defined(GL_LINE_SMOOTH_HINT) 1414 case GL_LINE_SMOOTH_HINT: 1415#endif // defined(GL_LINE_SMOOTH_HINT) 1416#if defined(GL_LINE_WIDTH) 1417 case GL_LINE_WIDTH: 1418#endif // defined(GL_LINE_WIDTH) 1419#if defined(GL_LOGIC_OP_MODE) 1420 case GL_LOGIC_OP_MODE: 1421#endif // defined(GL_LOGIC_OP_MODE) 1422#if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 1423 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 1424#endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 1425#if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 1426 case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 1427#endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 1428#if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 1429 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 1430#endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 1431#if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 1432 case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 1433#endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 1434#if defined(GL_MATRIX_MODE) 1435 case GL_MATRIX_MODE: 1436#endif // defined(GL_MATRIX_MODE) 1437#if defined(GL_MAX_CLIP_PLANES) 1438 case GL_MAX_CLIP_PLANES: 1439#endif // defined(GL_MAX_CLIP_PLANES) 1440#if defined(GL_MAX_ELEMENTS_INDICES) 1441 case GL_MAX_ELEMENTS_INDICES: 1442#endif // defined(GL_MAX_ELEMENTS_INDICES) 1443#if defined(GL_MAX_ELEMENTS_VERTICES) 1444 case GL_MAX_ELEMENTS_VERTICES: 1445#endif // defined(GL_MAX_ELEMENTS_VERTICES) 1446#if defined(GL_MAX_LIGHTS) 1447 case GL_MAX_LIGHTS: 1448#endif // defined(GL_MAX_LIGHTS) 1449#if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 1450 case GL_MAX_MODELVIEW_STACK_DEPTH: 1451#endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 1452#if defined(GL_MAX_PALETTE_MATRICES_OES) 1453 case GL_MAX_PALETTE_MATRICES_OES: 1454#endif // defined(GL_MAX_PALETTE_MATRICES_OES) 1455#if defined(GL_MAX_PROJECTION_STACK_DEPTH) 1456 case GL_MAX_PROJECTION_STACK_DEPTH: 1457#endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 1458#if defined(GL_MAX_TEXTURE_SIZE) 1459 case GL_MAX_TEXTURE_SIZE: 1460#endif // defined(GL_MAX_TEXTURE_SIZE) 1461#if defined(GL_MAX_TEXTURE_STACK_DEPTH) 1462 case GL_MAX_TEXTURE_STACK_DEPTH: 1463#endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 1464#if defined(GL_MAX_TEXTURE_UNITS) 1465 case GL_MAX_TEXTURE_UNITS: 1466#endif // defined(GL_MAX_TEXTURE_UNITS) 1467#if defined(GL_MAX_VERTEX_UNITS_OES) 1468 case GL_MAX_VERTEX_UNITS_OES: 1469#endif // defined(GL_MAX_VERTEX_UNITS_OES) 1470#if defined(GL_MODELVIEW_STACK_DEPTH) 1471 case GL_MODELVIEW_STACK_DEPTH: 1472#endif // defined(GL_MODELVIEW_STACK_DEPTH) 1473#if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 1474 case GL_NORMAL_ARRAY_BUFFER_BINDING: 1475#endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 1476#if defined(GL_NORMAL_ARRAY_STRIDE) 1477 case GL_NORMAL_ARRAY_STRIDE: 1478#endif // defined(GL_NORMAL_ARRAY_STRIDE) 1479#if defined(GL_NORMAL_ARRAY_TYPE) 1480 case GL_NORMAL_ARRAY_TYPE: 1481#endif // defined(GL_NORMAL_ARRAY_TYPE) 1482#if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 1483 case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 1484#endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 1485#if defined(GL_PACK_ALIGNMENT) 1486 case GL_PACK_ALIGNMENT: 1487#endif // defined(GL_PACK_ALIGNMENT) 1488#if defined(GL_PERSPECTIVE_CORRECTION_HINT) 1489 case GL_PERSPECTIVE_CORRECTION_HINT: 1490#endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 1491#if defined(GL_POINT_SIZE) 1492 case GL_POINT_SIZE: 1493#endif // defined(GL_POINT_SIZE) 1494#if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 1495 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 1496#endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 1497#if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 1498 case GL_POINT_SIZE_ARRAY_STRIDE_OES: 1499#endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 1500#if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 1501 case GL_POINT_SIZE_ARRAY_TYPE_OES: 1502#endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 1503#if defined(GL_POINT_SMOOTH_HINT) 1504 case GL_POINT_SMOOTH_HINT: 1505#endif // defined(GL_POINT_SMOOTH_HINT) 1506#if defined(GL_POLYGON_OFFSET_FACTOR) 1507 case GL_POLYGON_OFFSET_FACTOR: 1508#endif // defined(GL_POLYGON_OFFSET_FACTOR) 1509#if defined(GL_POLYGON_OFFSET_UNITS) 1510 case GL_POLYGON_OFFSET_UNITS: 1511#endif // defined(GL_POLYGON_OFFSET_UNITS) 1512#if defined(GL_PROJECTION_STACK_DEPTH) 1513 case GL_PROJECTION_STACK_DEPTH: 1514#endif // defined(GL_PROJECTION_STACK_DEPTH) 1515#if defined(GL_RED_BITS) 1516 case GL_RED_BITS: 1517#endif // defined(GL_RED_BITS) 1518#if defined(GL_SHADE_MODEL) 1519 case GL_SHADE_MODEL: 1520#endif // defined(GL_SHADE_MODEL) 1521#if defined(GL_STENCIL_BITS) 1522 case GL_STENCIL_BITS: 1523#endif // defined(GL_STENCIL_BITS) 1524#if defined(GL_STENCIL_CLEAR_VALUE) 1525 case GL_STENCIL_CLEAR_VALUE: 1526#endif // defined(GL_STENCIL_CLEAR_VALUE) 1527#if defined(GL_STENCIL_FAIL) 1528 case GL_STENCIL_FAIL: 1529#endif // defined(GL_STENCIL_FAIL) 1530#if defined(GL_STENCIL_FUNC) 1531 case GL_STENCIL_FUNC: 1532#endif // defined(GL_STENCIL_FUNC) 1533#if defined(GL_STENCIL_PASS_DEPTH_FAIL) 1534 case GL_STENCIL_PASS_DEPTH_FAIL: 1535#endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 1536#if defined(GL_STENCIL_PASS_DEPTH_PASS) 1537 case GL_STENCIL_PASS_DEPTH_PASS: 1538#endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 1539#if defined(GL_STENCIL_REF) 1540 case GL_STENCIL_REF: 1541#endif // defined(GL_STENCIL_REF) 1542#if defined(GL_STENCIL_VALUE_MASK) 1543 case GL_STENCIL_VALUE_MASK: 1544#endif // defined(GL_STENCIL_VALUE_MASK) 1545#if defined(GL_STENCIL_WRITEMASK) 1546 case GL_STENCIL_WRITEMASK: 1547#endif // defined(GL_STENCIL_WRITEMASK) 1548#if defined(GL_SUBPIXEL_BITS) 1549 case GL_SUBPIXEL_BITS: 1550#endif // defined(GL_SUBPIXEL_BITS) 1551#if defined(GL_TEXTURE_BINDING_2D) 1552 case GL_TEXTURE_BINDING_2D: 1553#endif // defined(GL_TEXTURE_BINDING_2D) 1554#if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 1555 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 1556#endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 1557#if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 1558 case GL_TEXTURE_COORD_ARRAY_SIZE: 1559#endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 1560#if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 1561 case GL_TEXTURE_COORD_ARRAY_STRIDE: 1562#endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 1563#if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 1564 case GL_TEXTURE_COORD_ARRAY_TYPE: 1565#endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 1566#if defined(GL_TEXTURE_STACK_DEPTH) 1567 case GL_TEXTURE_STACK_DEPTH: 1568#endif // defined(GL_TEXTURE_STACK_DEPTH) 1569#if defined(GL_UNPACK_ALIGNMENT) 1570 case GL_UNPACK_ALIGNMENT: 1571#endif // defined(GL_UNPACK_ALIGNMENT) 1572#if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 1573 case GL_VERTEX_ARRAY_BUFFER_BINDING: 1574#endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 1575#if defined(GL_VERTEX_ARRAY_SIZE) 1576 case GL_VERTEX_ARRAY_SIZE: 1577#endif // defined(GL_VERTEX_ARRAY_SIZE) 1578#if defined(GL_VERTEX_ARRAY_STRIDE) 1579 case GL_VERTEX_ARRAY_STRIDE: 1580#endif // defined(GL_VERTEX_ARRAY_STRIDE) 1581#if defined(GL_VERTEX_ARRAY_TYPE) 1582 case GL_VERTEX_ARRAY_TYPE: 1583#endif // defined(GL_VERTEX_ARRAY_TYPE) 1584#if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 1585 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 1586#endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 1587#if defined(GL_WEIGHT_ARRAY_SIZE_OES) 1588 case GL_WEIGHT_ARRAY_SIZE_OES: 1589#endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 1590#if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 1591 case GL_WEIGHT_ARRAY_STRIDE_OES: 1592#endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 1593#if defined(GL_WEIGHT_ARRAY_TYPE_OES) 1594 case GL_WEIGHT_ARRAY_TYPE_OES: 1595#endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 1596 _needed = 1; 1597 break; 1598#if defined(GL_ALIASED_POINT_SIZE_RANGE) 1599 case GL_ALIASED_POINT_SIZE_RANGE: 1600#endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 1601#if defined(GL_ALIASED_LINE_WIDTH_RANGE) 1602 case GL_ALIASED_LINE_WIDTH_RANGE: 1603#endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 1604#if defined(GL_DEPTH_RANGE) 1605 case GL_DEPTH_RANGE: 1606#endif // defined(GL_DEPTH_RANGE) 1607#if defined(GL_MAX_VIEWPORT_DIMS) 1608 case GL_MAX_VIEWPORT_DIMS: 1609#endif // defined(GL_MAX_VIEWPORT_DIMS) 1610#if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 1611 case GL_SMOOTH_LINE_WIDTH_RANGE: 1612#endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 1613#if defined(GL_SMOOTH_POINT_SIZE_RANGE) 1614 case GL_SMOOTH_POINT_SIZE_RANGE: 1615#endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 1616 _needed = 2; 1617 break; 1618#if defined(GL_COLOR_CLEAR_VALUE) 1619 case GL_COLOR_CLEAR_VALUE: 1620#endif // defined(GL_COLOR_CLEAR_VALUE) 1621#if defined(GL_COLOR_WRITEMASK) 1622 case GL_COLOR_WRITEMASK: 1623#endif // defined(GL_COLOR_WRITEMASK) 1624#if defined(GL_FOG_COLOR) 1625 case GL_FOG_COLOR: 1626#endif // defined(GL_FOG_COLOR) 1627#if defined(GL_LIGHT_MODEL_AMBIENT) 1628 case GL_LIGHT_MODEL_AMBIENT: 1629#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1630#if defined(GL_SCISSOR_BOX) 1631 case GL_SCISSOR_BOX: 1632#endif // defined(GL_SCISSOR_BOX) 1633#if defined(GL_VIEWPORT) 1634 case GL_VIEWPORT: 1635#endif // defined(GL_VIEWPORT) 1636 _needed = 4; 1637 break; 1638#if defined(GL_MODELVIEW_MATRIX) 1639 case GL_MODELVIEW_MATRIX: 1640#endif // defined(GL_MODELVIEW_MATRIX) 1641#if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 1642 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 1643#endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 1644#if defined(GL_PROJECTION_MATRIX) 1645 case GL_PROJECTION_MATRIX: 1646#endif // defined(GL_PROJECTION_MATRIX) 1647#if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 1648 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 1649#endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 1650#if defined(GL_TEXTURE_MATRIX) 1651 case GL_TEXTURE_MATRIX: 1652#endif // defined(GL_TEXTURE_MATRIX) 1653#if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 1654 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 1655#endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 1656 _needed = 16; 1657 break; 1658#if defined(GL_COMPRESSED_TEXTURE_FORMATS) 1659 case GL_COMPRESSED_TEXTURE_FORMATS: 1660#endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 1661 _needed = getNumCompressedTextureFormats(); 1662 break; 1663 default: 1664 _needed = 0; 1665 break; 1666 } 1667 if (_remaining < _needed) { 1668 _exception = 1; 1669 _env->ThrowNew(IAEClass, "remaining() < needed"); 1670 goto exit; 1671 } 1672 glGetIntegerv( 1673 (GLenum)pname, 1674 (GLint *)params 1675 ); 1676 1677exit: 1678 if (_array) { 1679 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 1680 } 1681} 1682 1683#include <string.h> 1684 1685/* const GLubyte * glGetString ( GLenum name ) */ 1686static 1687jstring 1688android_glGetString 1689 (JNIEnv *_env, jobject _this, jint name) { 1690 const char * chars = (const char *)glGetString((GLenum)name); 1691 jstring output = _env->NewStringUTF(chars); 1692 return output; 1693} 1694/* void glHint ( GLenum target, GLenum mode ) */ 1695static void 1696android_glHint__II 1697 (JNIEnv *_env, jobject _this, jint target, jint mode) { 1698 glHint( 1699 (GLenum)target, 1700 (GLenum)mode 1701 ); 1702} 1703 1704/* void glLightModelf ( GLenum pname, GLfloat param ) */ 1705static void 1706android_glLightModelf__IF 1707 (JNIEnv *_env, jobject _this, jint pname, jfloat param) { 1708 glLightModelf( 1709 (GLenum)pname, 1710 (GLfloat)param 1711 ); 1712} 1713 1714/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 1715static void 1716android_glLightModelfv__I_3FI 1717 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 1718 GLfloat *params_base = (GLfloat *) 0; 1719 jint _remaining; 1720 GLfloat *params = (GLfloat *) 0; 1721 1722 if (!params_ref) { 1723 _env->ThrowNew(IAEClass, "params == null"); 1724 goto exit; 1725 } 1726 if (offset < 0) { 1727 _env->ThrowNew(IAEClass, "offset < 0"); 1728 goto exit; 1729 } 1730 _remaining = _env->GetArrayLength(params_ref) - offset; 1731 int _needed; 1732 switch (pname) { 1733#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1734 case GL_LIGHT_MODEL_TWO_SIDE: 1735#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1736 _needed = 1; 1737 break; 1738#if defined(GL_LIGHT_MODEL_AMBIENT) 1739 case GL_LIGHT_MODEL_AMBIENT: 1740#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1741 _needed = 4; 1742 break; 1743 default: 1744 _needed = 0; 1745 break; 1746 } 1747 if (_remaining < _needed) { 1748 _env->ThrowNew(IAEClass, "length - offset < needed"); 1749 goto exit; 1750 } 1751 params_base = (GLfloat *) 1752 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 1753 params = params_base + offset; 1754 1755 glLightModelfv( 1756 (GLenum)pname, 1757 (GLfloat *)params 1758 ); 1759 1760exit: 1761 if (params_base) { 1762 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 1763 JNI_ABORT); 1764 } 1765} 1766 1767/* void glLightModelfv ( GLenum pname, const GLfloat *params ) */ 1768static void 1769android_glLightModelfv__ILjava_nio_FloatBuffer_2 1770 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 1771 jarray _array = (jarray) 0; 1772 jint _remaining; 1773 GLfloat *params = (GLfloat *) 0; 1774 1775 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 1776 int _needed; 1777 switch (pname) { 1778#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1779 case GL_LIGHT_MODEL_TWO_SIDE: 1780#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1781 _needed = 1; 1782 break; 1783#if defined(GL_LIGHT_MODEL_AMBIENT) 1784 case GL_LIGHT_MODEL_AMBIENT: 1785#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1786 _needed = 4; 1787 break; 1788 default: 1789 _needed = 0; 1790 break; 1791 } 1792 if (_remaining < _needed) { 1793 _env->ThrowNew(IAEClass, "remaining() < needed"); 1794 goto exit; 1795 } 1796 glLightModelfv( 1797 (GLenum)pname, 1798 (GLfloat *)params 1799 ); 1800 1801exit: 1802 if (_array) { 1803 releasePointer(_env, _array, params, JNI_FALSE); 1804 } 1805} 1806 1807/* void glLightModelx ( GLenum pname, GLfixed param ) */ 1808static void 1809android_glLightModelx__II 1810 (JNIEnv *_env, jobject _this, jint pname, jint param) { 1811 glLightModelx( 1812 (GLenum)pname, 1813 (GLfixed)param 1814 ); 1815} 1816 1817/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 1818static void 1819android_glLightModelxv__I_3II 1820 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 1821 GLfixed *params_base = (GLfixed *) 0; 1822 jint _remaining; 1823 GLfixed *params = (GLfixed *) 0; 1824 1825 if (!params_ref) { 1826 _env->ThrowNew(IAEClass, "params == null"); 1827 goto exit; 1828 } 1829 if (offset < 0) { 1830 _env->ThrowNew(IAEClass, "offset < 0"); 1831 goto exit; 1832 } 1833 _remaining = _env->GetArrayLength(params_ref) - offset; 1834 int _needed; 1835 switch (pname) { 1836#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1837 case GL_LIGHT_MODEL_TWO_SIDE: 1838#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1839 _needed = 1; 1840 break; 1841#if defined(GL_LIGHT_MODEL_AMBIENT) 1842 case GL_LIGHT_MODEL_AMBIENT: 1843#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1844 _needed = 4; 1845 break; 1846 default: 1847 _needed = 0; 1848 break; 1849 } 1850 if (_remaining < _needed) { 1851 _env->ThrowNew(IAEClass, "length - offset < needed"); 1852 goto exit; 1853 } 1854 params_base = (GLfixed *) 1855 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 1856 params = params_base + offset; 1857 1858 glLightModelxv( 1859 (GLenum)pname, 1860 (GLfixed *)params 1861 ); 1862 1863exit: 1864 if (params_base) { 1865 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 1866 JNI_ABORT); 1867 } 1868} 1869 1870/* void glLightModelxv ( GLenum pname, const GLfixed *params ) */ 1871static void 1872android_glLightModelxv__ILjava_nio_IntBuffer_2 1873 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 1874 jarray _array = (jarray) 0; 1875 jint _remaining; 1876 GLfixed *params = (GLfixed *) 0; 1877 1878 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 1879 int _needed; 1880 switch (pname) { 1881#if defined(GL_LIGHT_MODEL_TWO_SIDE) 1882 case GL_LIGHT_MODEL_TWO_SIDE: 1883#endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 1884 _needed = 1; 1885 break; 1886#if defined(GL_LIGHT_MODEL_AMBIENT) 1887 case GL_LIGHT_MODEL_AMBIENT: 1888#endif // defined(GL_LIGHT_MODEL_AMBIENT) 1889 _needed = 4; 1890 break; 1891 default: 1892 _needed = 0; 1893 break; 1894 } 1895 if (_remaining < _needed) { 1896 _env->ThrowNew(IAEClass, "remaining() < needed"); 1897 goto exit; 1898 } 1899 glLightModelxv( 1900 (GLenum)pname, 1901 (GLfixed *)params 1902 ); 1903 1904exit: 1905 if (_array) { 1906 releasePointer(_env, _array, params, JNI_FALSE); 1907 } 1908} 1909 1910/* void glLightf ( GLenum light, GLenum pname, GLfloat param ) */ 1911static void 1912android_glLightf__IIF 1913 (JNIEnv *_env, jobject _this, jint light, jint pname, jfloat param) { 1914 glLightf( 1915 (GLenum)light, 1916 (GLenum)pname, 1917 (GLfloat)param 1918 ); 1919} 1920 1921/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 1922static void 1923android_glLightfv__II_3FI 1924 (JNIEnv *_env, jobject _this, jint light, jint pname, jfloatArray params_ref, jint offset) { 1925 GLfloat *params_base = (GLfloat *) 0; 1926 jint _remaining; 1927 GLfloat *params = (GLfloat *) 0; 1928 1929 if (!params_ref) { 1930 _env->ThrowNew(IAEClass, "params == null"); 1931 goto exit; 1932 } 1933 if (offset < 0) { 1934 _env->ThrowNew(IAEClass, "offset < 0"); 1935 goto exit; 1936 } 1937 _remaining = _env->GetArrayLength(params_ref) - offset; 1938 int _needed; 1939 switch (pname) { 1940#if defined(GL_SPOT_EXPONENT) 1941 case GL_SPOT_EXPONENT: 1942#endif // defined(GL_SPOT_EXPONENT) 1943#if defined(GL_SPOT_CUTOFF) 1944 case GL_SPOT_CUTOFF: 1945#endif // defined(GL_SPOT_CUTOFF) 1946#if defined(GL_CONSTANT_ATTENUATION) 1947 case GL_CONSTANT_ATTENUATION: 1948#endif // defined(GL_CONSTANT_ATTENUATION) 1949#if defined(GL_LINEAR_ATTENUATION) 1950 case GL_LINEAR_ATTENUATION: 1951#endif // defined(GL_LINEAR_ATTENUATION) 1952#if defined(GL_QUADRATIC_ATTENUATION) 1953 case GL_QUADRATIC_ATTENUATION: 1954#endif // defined(GL_QUADRATIC_ATTENUATION) 1955 _needed = 1; 1956 break; 1957#if defined(GL_SPOT_DIRECTION) 1958 case GL_SPOT_DIRECTION: 1959#endif // defined(GL_SPOT_DIRECTION) 1960 _needed = 3; 1961 break; 1962#if defined(GL_AMBIENT) 1963 case GL_AMBIENT: 1964#endif // defined(GL_AMBIENT) 1965#if defined(GL_DIFFUSE) 1966 case GL_DIFFUSE: 1967#endif // defined(GL_DIFFUSE) 1968#if defined(GL_SPECULAR) 1969 case GL_SPECULAR: 1970#endif // defined(GL_SPECULAR) 1971#if defined(GL_EMISSION) 1972 case GL_EMISSION: 1973#endif // defined(GL_EMISSION) 1974 _needed = 4; 1975 break; 1976 default: 1977 _needed = 0; 1978 break; 1979 } 1980 if (_remaining < _needed) { 1981 _env->ThrowNew(IAEClass, "length - offset < needed"); 1982 goto exit; 1983 } 1984 params_base = (GLfloat *) 1985 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 1986 params = params_base + offset; 1987 1988 glLightfv( 1989 (GLenum)light, 1990 (GLenum)pname, 1991 (GLfloat *)params 1992 ); 1993 1994exit: 1995 if (params_base) { 1996 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 1997 JNI_ABORT); 1998 } 1999} 2000 2001/* void glLightfv ( GLenum light, GLenum pname, const GLfloat *params ) */ 2002static void 2003android_glLightfv__IILjava_nio_FloatBuffer_2 2004 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 2005 jarray _array = (jarray) 0; 2006 jint _remaining; 2007 GLfloat *params = (GLfloat *) 0; 2008 2009 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 2010 int _needed; 2011 switch (pname) { 2012#if defined(GL_SPOT_EXPONENT) 2013 case GL_SPOT_EXPONENT: 2014#endif // defined(GL_SPOT_EXPONENT) 2015#if defined(GL_SPOT_CUTOFF) 2016 case GL_SPOT_CUTOFF: 2017#endif // defined(GL_SPOT_CUTOFF) 2018#if defined(GL_CONSTANT_ATTENUATION) 2019 case GL_CONSTANT_ATTENUATION: 2020#endif // defined(GL_CONSTANT_ATTENUATION) 2021#if defined(GL_LINEAR_ATTENUATION) 2022 case GL_LINEAR_ATTENUATION: 2023#endif // defined(GL_LINEAR_ATTENUATION) 2024#if defined(GL_QUADRATIC_ATTENUATION) 2025 case GL_QUADRATIC_ATTENUATION: 2026#endif // defined(GL_QUADRATIC_ATTENUATION) 2027 _needed = 1; 2028 break; 2029#if defined(GL_SPOT_DIRECTION) 2030 case GL_SPOT_DIRECTION: 2031#endif // defined(GL_SPOT_DIRECTION) 2032 _needed = 3; 2033 break; 2034#if defined(GL_AMBIENT) 2035 case GL_AMBIENT: 2036#endif // defined(GL_AMBIENT) 2037#if defined(GL_DIFFUSE) 2038 case GL_DIFFUSE: 2039#endif // defined(GL_DIFFUSE) 2040#if defined(GL_SPECULAR) 2041 case GL_SPECULAR: 2042#endif // defined(GL_SPECULAR) 2043#if defined(GL_EMISSION) 2044 case GL_EMISSION: 2045#endif // defined(GL_EMISSION) 2046 _needed = 4; 2047 break; 2048 default: 2049 _needed = 0; 2050 break; 2051 } 2052 if (_remaining < _needed) { 2053 _env->ThrowNew(IAEClass, "remaining() < needed"); 2054 goto exit; 2055 } 2056 glLightfv( 2057 (GLenum)light, 2058 (GLenum)pname, 2059 (GLfloat *)params 2060 ); 2061 2062exit: 2063 if (_array) { 2064 releasePointer(_env, _array, params, JNI_FALSE); 2065 } 2066} 2067 2068/* void glLightx ( GLenum light, GLenum pname, GLfixed param ) */ 2069static void 2070android_glLightx__III 2071 (JNIEnv *_env, jobject _this, jint light, jint pname, jint param) { 2072 glLightx( 2073 (GLenum)light, 2074 (GLenum)pname, 2075 (GLfixed)param 2076 ); 2077} 2078 2079/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 2080static void 2081android_glLightxv__II_3II 2082 (JNIEnv *_env, jobject _this, jint light, jint pname, jintArray params_ref, jint offset) { 2083 GLfixed *params_base = (GLfixed *) 0; 2084 jint _remaining; 2085 GLfixed *params = (GLfixed *) 0; 2086 2087 if (!params_ref) { 2088 _env->ThrowNew(IAEClass, "params == null"); 2089 goto exit; 2090 } 2091 if (offset < 0) { 2092 _env->ThrowNew(IAEClass, "offset < 0"); 2093 goto exit; 2094 } 2095 _remaining = _env->GetArrayLength(params_ref) - offset; 2096 int _needed; 2097 switch (pname) { 2098#if defined(GL_SPOT_EXPONENT) 2099 case GL_SPOT_EXPONENT: 2100#endif // defined(GL_SPOT_EXPONENT) 2101#if defined(GL_SPOT_CUTOFF) 2102 case GL_SPOT_CUTOFF: 2103#endif // defined(GL_SPOT_CUTOFF) 2104#if defined(GL_CONSTANT_ATTENUATION) 2105 case GL_CONSTANT_ATTENUATION: 2106#endif // defined(GL_CONSTANT_ATTENUATION) 2107#if defined(GL_LINEAR_ATTENUATION) 2108 case GL_LINEAR_ATTENUATION: 2109#endif // defined(GL_LINEAR_ATTENUATION) 2110#if defined(GL_QUADRATIC_ATTENUATION) 2111 case GL_QUADRATIC_ATTENUATION: 2112#endif // defined(GL_QUADRATIC_ATTENUATION) 2113 _needed = 1; 2114 break; 2115#if defined(GL_SPOT_DIRECTION) 2116 case GL_SPOT_DIRECTION: 2117#endif // defined(GL_SPOT_DIRECTION) 2118 _needed = 3; 2119 break; 2120#if defined(GL_AMBIENT) 2121 case GL_AMBIENT: 2122#endif // defined(GL_AMBIENT) 2123#if defined(GL_DIFFUSE) 2124 case GL_DIFFUSE: 2125#endif // defined(GL_DIFFUSE) 2126#if defined(GL_SPECULAR) 2127 case GL_SPECULAR: 2128#endif // defined(GL_SPECULAR) 2129#if defined(GL_EMISSION) 2130 case GL_EMISSION: 2131#endif // defined(GL_EMISSION) 2132 _needed = 4; 2133 break; 2134 default: 2135 _needed = 0; 2136 break; 2137 } 2138 if (_remaining < _needed) { 2139 _env->ThrowNew(IAEClass, "length - offset < needed"); 2140 goto exit; 2141 } 2142 params_base = (GLfixed *) 2143 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2144 params = params_base + offset; 2145 2146 glLightxv( 2147 (GLenum)light, 2148 (GLenum)pname, 2149 (GLfixed *)params 2150 ); 2151 2152exit: 2153 if (params_base) { 2154 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2155 JNI_ABORT); 2156 } 2157} 2158 2159/* void glLightxv ( GLenum light, GLenum pname, const GLfixed *params ) */ 2160static void 2161android_glLightxv__IILjava_nio_IntBuffer_2 2162 (JNIEnv *_env, jobject _this, jint light, jint pname, jobject params_buf) { 2163 jarray _array = (jarray) 0; 2164 jint _remaining; 2165 GLfixed *params = (GLfixed *) 0; 2166 2167 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 2168 int _needed; 2169 switch (pname) { 2170#if defined(GL_SPOT_EXPONENT) 2171 case GL_SPOT_EXPONENT: 2172#endif // defined(GL_SPOT_EXPONENT) 2173#if defined(GL_SPOT_CUTOFF) 2174 case GL_SPOT_CUTOFF: 2175#endif // defined(GL_SPOT_CUTOFF) 2176#if defined(GL_CONSTANT_ATTENUATION) 2177 case GL_CONSTANT_ATTENUATION: 2178#endif // defined(GL_CONSTANT_ATTENUATION) 2179#if defined(GL_LINEAR_ATTENUATION) 2180 case GL_LINEAR_ATTENUATION: 2181#endif // defined(GL_LINEAR_ATTENUATION) 2182#if defined(GL_QUADRATIC_ATTENUATION) 2183 case GL_QUADRATIC_ATTENUATION: 2184#endif // defined(GL_QUADRATIC_ATTENUATION) 2185 _needed = 1; 2186 break; 2187#if defined(GL_SPOT_DIRECTION) 2188 case GL_SPOT_DIRECTION: 2189#endif // defined(GL_SPOT_DIRECTION) 2190 _needed = 3; 2191 break; 2192#if defined(GL_AMBIENT) 2193 case GL_AMBIENT: 2194#endif // defined(GL_AMBIENT) 2195#if defined(GL_DIFFUSE) 2196 case GL_DIFFUSE: 2197#endif // defined(GL_DIFFUSE) 2198#if defined(GL_SPECULAR) 2199 case GL_SPECULAR: 2200#endif // defined(GL_SPECULAR) 2201#if defined(GL_EMISSION) 2202 case GL_EMISSION: 2203#endif // defined(GL_EMISSION) 2204 _needed = 4; 2205 break; 2206 default: 2207 _needed = 0; 2208 break; 2209 } 2210 if (_remaining < _needed) { 2211 _env->ThrowNew(IAEClass, "remaining() < needed"); 2212 goto exit; 2213 } 2214 glLightxv( 2215 (GLenum)light, 2216 (GLenum)pname, 2217 (GLfixed *)params 2218 ); 2219 2220exit: 2221 if (_array) { 2222 releasePointer(_env, _array, params, JNI_FALSE); 2223 } 2224} 2225 2226/* void glLineWidth ( GLfloat width ) */ 2227static void 2228android_glLineWidth__F 2229 (JNIEnv *_env, jobject _this, jfloat width) { 2230 glLineWidth( 2231 (GLfloat)width 2232 ); 2233} 2234 2235/* void glLineWidthx ( GLfixed width ) */ 2236static void 2237android_glLineWidthx__I 2238 (JNIEnv *_env, jobject _this, jint width) { 2239 glLineWidthx( 2240 (GLfixed)width 2241 ); 2242} 2243 2244/* void glLoadIdentity ( void ) */ 2245static void 2246android_glLoadIdentity__ 2247 (JNIEnv *_env, jobject _this) { 2248 glLoadIdentity(); 2249} 2250 2251/* void glLoadMatrixf ( const GLfloat *m ) */ 2252static void 2253android_glLoadMatrixf___3FI 2254 (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 2255 GLfloat *m_base = (GLfloat *) 0; 2256 jint _remaining; 2257 GLfloat *m = (GLfloat *) 0; 2258 2259 if (!m_ref) { 2260 _env->ThrowNew(IAEClass, "m == null"); 2261 goto exit; 2262 } 2263 if (offset < 0) { 2264 _env->ThrowNew(IAEClass, "offset < 0"); 2265 goto exit; 2266 } 2267 _remaining = _env->GetArrayLength(m_ref) - offset; 2268 m_base = (GLfloat *) 2269 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 2270 m = m_base + offset; 2271 2272 glLoadMatrixf( 2273 (GLfloat *)m 2274 ); 2275 2276exit: 2277 if (m_base) { 2278 _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 2279 JNI_ABORT); 2280 } 2281} 2282 2283/* void glLoadMatrixf ( const GLfloat *m ) */ 2284static void 2285android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 2286 (JNIEnv *_env, jobject _this, jobject m_buf) { 2287 jarray _array = (jarray) 0; 2288 jint _remaining; 2289 GLfloat *m = (GLfloat *) 0; 2290 2291 m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining); 2292 glLoadMatrixf( 2293 (GLfloat *)m 2294 ); 2295 if (_array) { 2296 releasePointer(_env, _array, m, JNI_FALSE); 2297 } 2298} 2299 2300/* void glLoadMatrixx ( const GLfixed *m ) */ 2301static void 2302android_glLoadMatrixx___3II 2303 (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 2304 GLfixed *m_base = (GLfixed *) 0; 2305 jint _remaining; 2306 GLfixed *m = (GLfixed *) 0; 2307 2308 if (!m_ref) { 2309 _env->ThrowNew(IAEClass, "m == null"); 2310 goto exit; 2311 } 2312 if (offset < 0) { 2313 _env->ThrowNew(IAEClass, "offset < 0"); 2314 goto exit; 2315 } 2316 _remaining = _env->GetArrayLength(m_ref) - offset; 2317 m_base = (GLfixed *) 2318 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 2319 m = m_base + offset; 2320 2321 glLoadMatrixx( 2322 (GLfixed *)m 2323 ); 2324 2325exit: 2326 if (m_base) { 2327 _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 2328 JNI_ABORT); 2329 } 2330} 2331 2332/* void glLoadMatrixx ( const GLfixed *m ) */ 2333static void 2334android_glLoadMatrixx__Ljava_nio_IntBuffer_2 2335 (JNIEnv *_env, jobject _this, jobject m_buf) { 2336 jarray _array = (jarray) 0; 2337 jint _remaining; 2338 GLfixed *m = (GLfixed *) 0; 2339 2340 m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining); 2341 glLoadMatrixx( 2342 (GLfixed *)m 2343 ); 2344 if (_array) { 2345 releasePointer(_env, _array, m, JNI_FALSE); 2346 } 2347} 2348 2349/* void glLogicOp ( GLenum opcode ) */ 2350static void 2351android_glLogicOp__I 2352 (JNIEnv *_env, jobject _this, jint opcode) { 2353 glLogicOp( 2354 (GLenum)opcode 2355 ); 2356} 2357 2358/* void glMaterialf ( GLenum face, GLenum pname, GLfloat param ) */ 2359static void 2360android_glMaterialf__IIF 2361 (JNIEnv *_env, jobject _this, jint face, jint pname, jfloat param) { 2362 glMaterialf( 2363 (GLenum)face, 2364 (GLenum)pname, 2365 (GLfloat)param 2366 ); 2367} 2368 2369/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 2370static void 2371android_glMaterialfv__II_3FI 2372 (JNIEnv *_env, jobject _this, jint face, jint pname, jfloatArray params_ref, jint offset) { 2373 GLfloat *params_base = (GLfloat *) 0; 2374 jint _remaining; 2375 GLfloat *params = (GLfloat *) 0; 2376 2377 if (!params_ref) { 2378 _env->ThrowNew(IAEClass, "params == null"); 2379 goto exit; 2380 } 2381 if (offset < 0) { 2382 _env->ThrowNew(IAEClass, "offset < 0"); 2383 goto exit; 2384 } 2385 _remaining = _env->GetArrayLength(params_ref) - offset; 2386 int _needed; 2387 switch (pname) { 2388#if defined(GL_SHININESS) 2389 case GL_SHININESS: 2390#endif // defined(GL_SHININESS) 2391 _needed = 1; 2392 break; 2393#if defined(GL_AMBIENT) 2394 case GL_AMBIENT: 2395#endif // defined(GL_AMBIENT) 2396#if defined(GL_DIFFUSE) 2397 case GL_DIFFUSE: 2398#endif // defined(GL_DIFFUSE) 2399#if defined(GL_SPECULAR) 2400 case GL_SPECULAR: 2401#endif // defined(GL_SPECULAR) 2402#if defined(GL_EMISSION) 2403 case GL_EMISSION: 2404#endif // defined(GL_EMISSION) 2405#if defined(GL_AMBIENT_AND_DIFFUSE) 2406 case GL_AMBIENT_AND_DIFFUSE: 2407#endif // defined(GL_AMBIENT_AND_DIFFUSE) 2408 _needed = 4; 2409 break; 2410 default: 2411 _needed = 0; 2412 break; 2413 } 2414 if (_remaining < _needed) { 2415 _env->ThrowNew(IAEClass, "length - offset < needed"); 2416 goto exit; 2417 } 2418 params_base = (GLfloat *) 2419 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2420 params = params_base + offset; 2421 2422 glMaterialfv( 2423 (GLenum)face, 2424 (GLenum)pname, 2425 (GLfloat *)params 2426 ); 2427 2428exit: 2429 if (params_base) { 2430 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2431 JNI_ABORT); 2432 } 2433} 2434 2435/* void glMaterialfv ( GLenum face, GLenum pname, const GLfloat *params ) */ 2436static void 2437android_glMaterialfv__IILjava_nio_FloatBuffer_2 2438 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 2439 jarray _array = (jarray) 0; 2440 jint _remaining; 2441 GLfloat *params = (GLfloat *) 0; 2442 2443 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 2444 int _needed; 2445 switch (pname) { 2446#if defined(GL_SHININESS) 2447 case GL_SHININESS: 2448#endif // defined(GL_SHININESS) 2449 _needed = 1; 2450 break; 2451#if defined(GL_AMBIENT) 2452 case GL_AMBIENT: 2453#endif // defined(GL_AMBIENT) 2454#if defined(GL_DIFFUSE) 2455 case GL_DIFFUSE: 2456#endif // defined(GL_DIFFUSE) 2457#if defined(GL_SPECULAR) 2458 case GL_SPECULAR: 2459#endif // defined(GL_SPECULAR) 2460#if defined(GL_EMISSION) 2461 case GL_EMISSION: 2462#endif // defined(GL_EMISSION) 2463#if defined(GL_AMBIENT_AND_DIFFUSE) 2464 case GL_AMBIENT_AND_DIFFUSE: 2465#endif // defined(GL_AMBIENT_AND_DIFFUSE) 2466 _needed = 4; 2467 break; 2468 default: 2469 _needed = 0; 2470 break; 2471 } 2472 if (_remaining < _needed) { 2473 _env->ThrowNew(IAEClass, "remaining() < needed"); 2474 goto exit; 2475 } 2476 glMaterialfv( 2477 (GLenum)face, 2478 (GLenum)pname, 2479 (GLfloat *)params 2480 ); 2481 2482exit: 2483 if (_array) { 2484 releasePointer(_env, _array, params, JNI_FALSE); 2485 } 2486} 2487 2488/* void glMaterialx ( GLenum face, GLenum pname, GLfixed param ) */ 2489static void 2490android_glMaterialx__III 2491 (JNIEnv *_env, jobject _this, jint face, jint pname, jint param) { 2492 glMaterialx( 2493 (GLenum)face, 2494 (GLenum)pname, 2495 (GLfixed)param 2496 ); 2497} 2498 2499/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 2500static void 2501android_glMaterialxv__II_3II 2502 (JNIEnv *_env, jobject _this, jint face, jint pname, jintArray params_ref, jint offset) { 2503 GLfixed *params_base = (GLfixed *) 0; 2504 jint _remaining; 2505 GLfixed *params = (GLfixed *) 0; 2506 2507 if (!params_ref) { 2508 _env->ThrowNew(IAEClass, "params == null"); 2509 goto exit; 2510 } 2511 if (offset < 0) { 2512 _env->ThrowNew(IAEClass, "offset < 0"); 2513 goto exit; 2514 } 2515 _remaining = _env->GetArrayLength(params_ref) - offset; 2516 int _needed; 2517 switch (pname) { 2518#if defined(GL_SHININESS) 2519 case GL_SHININESS: 2520#endif // defined(GL_SHININESS) 2521 _needed = 1; 2522 break; 2523#if defined(GL_AMBIENT) 2524 case GL_AMBIENT: 2525#endif // defined(GL_AMBIENT) 2526#if defined(GL_DIFFUSE) 2527 case GL_DIFFUSE: 2528#endif // defined(GL_DIFFUSE) 2529#if defined(GL_SPECULAR) 2530 case GL_SPECULAR: 2531#endif // defined(GL_SPECULAR) 2532#if defined(GL_EMISSION) 2533 case GL_EMISSION: 2534#endif // defined(GL_EMISSION) 2535#if defined(GL_AMBIENT_AND_DIFFUSE) 2536 case GL_AMBIENT_AND_DIFFUSE: 2537#endif // defined(GL_AMBIENT_AND_DIFFUSE) 2538 _needed = 4; 2539 break; 2540 default: 2541 _needed = 0; 2542 break; 2543 } 2544 if (_remaining < _needed) { 2545 _env->ThrowNew(IAEClass, "length - offset < needed"); 2546 goto exit; 2547 } 2548 params_base = (GLfixed *) 2549 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2550 params = params_base + offset; 2551 2552 glMaterialxv( 2553 (GLenum)face, 2554 (GLenum)pname, 2555 (GLfixed *)params 2556 ); 2557 2558exit: 2559 if (params_base) { 2560 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2561 JNI_ABORT); 2562 } 2563} 2564 2565/* void glMaterialxv ( GLenum face, GLenum pname, const GLfixed *params ) */ 2566static void 2567android_glMaterialxv__IILjava_nio_IntBuffer_2 2568 (JNIEnv *_env, jobject _this, jint face, jint pname, jobject params_buf) { 2569 jarray _array = (jarray) 0; 2570 jint _remaining; 2571 GLfixed *params = (GLfixed *) 0; 2572 2573 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 2574 int _needed; 2575 switch (pname) { 2576#if defined(GL_SHININESS) 2577 case GL_SHININESS: 2578#endif // defined(GL_SHININESS) 2579 _needed = 1; 2580 break; 2581#if defined(GL_AMBIENT) 2582 case GL_AMBIENT: 2583#endif // defined(GL_AMBIENT) 2584#if defined(GL_DIFFUSE) 2585 case GL_DIFFUSE: 2586#endif // defined(GL_DIFFUSE) 2587#if defined(GL_SPECULAR) 2588 case GL_SPECULAR: 2589#endif // defined(GL_SPECULAR) 2590#if defined(GL_EMISSION) 2591 case GL_EMISSION: 2592#endif // defined(GL_EMISSION) 2593#if defined(GL_AMBIENT_AND_DIFFUSE) 2594 case GL_AMBIENT_AND_DIFFUSE: 2595#endif // defined(GL_AMBIENT_AND_DIFFUSE) 2596 _needed = 4; 2597 break; 2598 default: 2599 _needed = 0; 2600 break; 2601 } 2602 if (_remaining < _needed) { 2603 _env->ThrowNew(IAEClass, "remaining() < needed"); 2604 goto exit; 2605 } 2606 glMaterialxv( 2607 (GLenum)face, 2608 (GLenum)pname, 2609 (GLfixed *)params 2610 ); 2611 2612exit: 2613 if (_array) { 2614 releasePointer(_env, _array, params, JNI_FALSE); 2615 } 2616} 2617 2618/* void glMatrixMode ( GLenum mode ) */ 2619static void 2620android_glMatrixMode__I 2621 (JNIEnv *_env, jobject _this, jint mode) { 2622 glMatrixMode( 2623 (GLenum)mode 2624 ); 2625} 2626 2627/* void glMultMatrixf ( const GLfloat *m ) */ 2628static void 2629android_glMultMatrixf___3FI 2630 (JNIEnv *_env, jobject _this, jfloatArray m_ref, jint offset) { 2631 GLfloat *m_base = (GLfloat *) 0; 2632 jint _remaining; 2633 GLfloat *m = (GLfloat *) 0; 2634 2635 if (!m_ref) { 2636 _env->ThrowNew(IAEClass, "m == null"); 2637 goto exit; 2638 } 2639 if (offset < 0) { 2640 _env->ThrowNew(IAEClass, "offset < 0"); 2641 goto exit; 2642 } 2643 _remaining = _env->GetArrayLength(m_ref) - offset; 2644 m_base = (GLfloat *) 2645 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 2646 m = m_base + offset; 2647 2648 glMultMatrixf( 2649 (GLfloat *)m 2650 ); 2651 2652exit: 2653 if (m_base) { 2654 _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 2655 JNI_ABORT); 2656 } 2657} 2658 2659/* void glMultMatrixf ( const GLfloat *m ) */ 2660static void 2661android_glMultMatrixf__Ljava_nio_FloatBuffer_2 2662 (JNIEnv *_env, jobject _this, jobject m_buf) { 2663 jarray _array = (jarray) 0; 2664 jint _remaining; 2665 GLfloat *m = (GLfloat *) 0; 2666 2667 m = (GLfloat *)getPointer(_env, m_buf, &_array, &_remaining); 2668 glMultMatrixf( 2669 (GLfloat *)m 2670 ); 2671 if (_array) { 2672 releasePointer(_env, _array, m, JNI_FALSE); 2673 } 2674} 2675 2676/* void glMultMatrixx ( const GLfixed *m ) */ 2677static void 2678android_glMultMatrixx___3II 2679 (JNIEnv *_env, jobject _this, jintArray m_ref, jint offset) { 2680 GLfixed *m_base = (GLfixed *) 0; 2681 jint _remaining; 2682 GLfixed *m = (GLfixed *) 0; 2683 2684 if (!m_ref) { 2685 _env->ThrowNew(IAEClass, "m == null"); 2686 goto exit; 2687 } 2688 if (offset < 0) { 2689 _env->ThrowNew(IAEClass, "offset < 0"); 2690 goto exit; 2691 } 2692 _remaining = _env->GetArrayLength(m_ref) - offset; 2693 m_base = (GLfixed *) 2694 _env->GetPrimitiveArrayCritical(m_ref, (jboolean *)0); 2695 m = m_base + offset; 2696 2697 glMultMatrixx( 2698 (GLfixed *)m 2699 ); 2700 2701exit: 2702 if (m_base) { 2703 _env->ReleasePrimitiveArrayCritical(m_ref, m_base, 2704 JNI_ABORT); 2705 } 2706} 2707 2708/* void glMultMatrixx ( const GLfixed *m ) */ 2709static void 2710android_glMultMatrixx__Ljava_nio_IntBuffer_2 2711 (JNIEnv *_env, jobject _this, jobject m_buf) { 2712 jarray _array = (jarray) 0; 2713 jint _remaining; 2714 GLfixed *m = (GLfixed *) 0; 2715 2716 m = (GLfixed *)getPointer(_env, m_buf, &_array, &_remaining); 2717 glMultMatrixx( 2718 (GLfixed *)m 2719 ); 2720 if (_array) { 2721 releasePointer(_env, _array, m, JNI_FALSE); 2722 } 2723} 2724 2725/* void glMultiTexCoord4f ( GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q ) */ 2726static void 2727android_glMultiTexCoord4f__IFFFF 2728 (JNIEnv *_env, jobject _this, jint target, jfloat s, jfloat t, jfloat r, jfloat q) { 2729 glMultiTexCoord4f( 2730 (GLenum)target, 2731 (GLfloat)s, 2732 (GLfloat)t, 2733 (GLfloat)r, 2734 (GLfloat)q 2735 ); 2736} 2737 2738/* void glMultiTexCoord4x ( GLenum target, GLfixed s, GLfixed t, GLfixed r, GLfixed q ) */ 2739static void 2740android_glMultiTexCoord4x__IIIII 2741 (JNIEnv *_env, jobject _this, jint target, jint s, jint t, jint r, jint q) { 2742 glMultiTexCoord4x( 2743 (GLenum)target, 2744 (GLfixed)s, 2745 (GLfixed)t, 2746 (GLfixed)r, 2747 (GLfixed)q 2748 ); 2749} 2750 2751/* void glNormal3f ( GLfloat nx, GLfloat ny, GLfloat nz ) */ 2752static void 2753android_glNormal3f__FFF 2754 (JNIEnv *_env, jobject _this, jfloat nx, jfloat ny, jfloat nz) { 2755 glNormal3f( 2756 (GLfloat)nx, 2757 (GLfloat)ny, 2758 (GLfloat)nz 2759 ); 2760} 2761 2762/* void glNormal3x ( GLfixed nx, GLfixed ny, GLfixed nz ) */ 2763static void 2764android_glNormal3x__III 2765 (JNIEnv *_env, jobject _this, jint nx, jint ny, jint nz) { 2766 glNormal3x( 2767 (GLfixed)nx, 2768 (GLfixed)ny, 2769 (GLfixed)nz 2770 ); 2771} 2772 2773/* void glNormalPointer ( GLenum type, GLsizei stride, const GLvoid *pointer ) */ 2774static void 2775android_glNormalPointerBounds__IILjava_nio_Buffer_2I 2776 (JNIEnv *_env, jobject _this, jint type, jint stride, jobject pointer_buf, jint remaining) { 2777 jarray _array = (jarray) 0; 2778 jint _remaining; 2779 GLvoid *pointer = (GLvoid *) 0; 2780 2781 if (pointer_buf) { 2782 pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf); 2783 if ( ! pointer ) { 2784 _env->ThrowNew(IAEClass, "Must use a native order direct Buffer"); 2785 return; 2786 } 2787 } 2788 glNormalPointerBounds( 2789 (GLenum)type, 2790 (GLsizei)stride, 2791 (GLvoid *)pointer, 2792 (GLsizei)remaining 2793 ); 2794} 2795 2796/* void glOrthof ( GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar ) */ 2797static void 2798android_glOrthof__FFFFFF 2799 (JNIEnv *_env, jobject _this, jfloat left, jfloat right, jfloat bottom, jfloat top, jfloat zNear, jfloat zFar) { 2800 glOrthof( 2801 (GLfloat)left, 2802 (GLfloat)right, 2803 (GLfloat)bottom, 2804 (GLfloat)top, 2805 (GLfloat)zNear, 2806 (GLfloat)zFar 2807 ); 2808} 2809 2810/* void glOrthox ( GLfixed left, GLfixed right, GLfixed bottom, GLfixed top, GLfixed zNear, GLfixed zFar ) */ 2811static void 2812android_glOrthox__IIIIII 2813 (JNIEnv *_env, jobject _this, jint left, jint right, jint bottom, jint top, jint zNear, jint zFar) { 2814 glOrthox( 2815 (GLfixed)left, 2816 (GLfixed)right, 2817 (GLfixed)bottom, 2818 (GLfixed)top, 2819 (GLfixed)zNear, 2820 (GLfixed)zFar 2821 ); 2822} 2823 2824/* void glPixelStorei ( GLenum pname, GLint param ) */ 2825static void 2826android_glPixelStorei__II 2827 (JNIEnv *_env, jobject _this, jint pname, jint param) { 2828 glPixelStorei( 2829 (GLenum)pname, 2830 (GLint)param 2831 ); 2832} 2833 2834/* void glPointSize ( GLfloat size ) */ 2835static void 2836android_glPointSize__F 2837 (JNIEnv *_env, jobject _this, jfloat size) { 2838 glPointSize( 2839 (GLfloat)size 2840 ); 2841} 2842 2843/* void glPointSizex ( GLfixed size ) */ 2844static void 2845android_glPointSizex__I 2846 (JNIEnv *_env, jobject _this, jint size) { 2847 glPointSizex( 2848 (GLfixed)size 2849 ); 2850} 2851 2852/* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 2853static void 2854android_glPolygonOffset__FF 2855 (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 2856 glPolygonOffset( 2857 (GLfloat)factor, 2858 (GLfloat)units 2859 ); 2860} 2861 2862/* void glPolygonOffsetx ( GLfixed factor, GLfixed units ) */ 2863static void 2864android_glPolygonOffsetx__II 2865 (JNIEnv *_env, jobject _this, jint factor, jint units) { 2866 glPolygonOffsetx( 2867 (GLfixed)factor, 2868 (GLfixed)units 2869 ); 2870} 2871 2872/* void glPopMatrix ( void ) */ 2873static void 2874android_glPopMatrix__ 2875 (JNIEnv *_env, jobject _this) { 2876 glPopMatrix(); 2877} 2878 2879/* void glPushMatrix ( void ) */ 2880static void 2881android_glPushMatrix__ 2882 (JNIEnv *_env, jobject _this) { 2883 glPushMatrix(); 2884} 2885 2886/* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 2887static void 2888android_glReadPixels__IIIIIILjava_nio_Buffer_2 2889 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 2890 jint _exception = 0; 2891 jarray _array = (jarray) 0; 2892 jint _remaining; 2893 GLvoid *pixels = (GLvoid *) 0; 2894 2895 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining); 2896 glReadPixels( 2897 (GLint)x, 2898 (GLint)y, 2899 (GLsizei)width, 2900 (GLsizei)height, 2901 (GLenum)format, 2902 (GLenum)type, 2903 (GLvoid *)pixels 2904 ); 2905 if (_array) { 2906 releasePointer(_env, _array, pixels, _exception ? JNI_FALSE : JNI_TRUE); 2907 } 2908} 2909 2910/* void glRotatef ( GLfloat angle, GLfloat x, GLfloat y, GLfloat z ) */ 2911static void 2912android_glRotatef__FFFF 2913 (JNIEnv *_env, jobject _this, jfloat angle, jfloat x, jfloat y, jfloat z) { 2914 glRotatef( 2915 (GLfloat)angle, 2916 (GLfloat)x, 2917 (GLfloat)y, 2918 (GLfloat)z 2919 ); 2920} 2921 2922/* void glRotatex ( GLfixed angle, GLfixed x, GLfixed y, GLfixed z ) */ 2923static void 2924android_glRotatex__IIII 2925 (JNIEnv *_env, jobject _this, jint angle, jint x, jint y, jint z) { 2926 glRotatex( 2927 (GLfixed)angle, 2928 (GLfixed)x, 2929 (GLfixed)y, 2930 (GLfixed)z 2931 ); 2932} 2933 2934/* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 2935static void 2936android_glSampleCoverage__FZ 2937 (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 2938 glSampleCoverage( 2939 (GLclampf)value, 2940 (GLboolean)invert 2941 ); 2942} 2943 2944/* void glSampleCoveragex ( GLclampx value, GLboolean invert ) */ 2945static void 2946android_glSampleCoveragex__IZ 2947 (JNIEnv *_env, jobject _this, jint value, jboolean invert) { 2948 glSampleCoveragex( 2949 (GLclampx)value, 2950 (GLboolean)invert 2951 ); 2952} 2953 2954/* void glScalef ( GLfloat x, GLfloat y, GLfloat z ) */ 2955static void 2956android_glScalef__FFF 2957 (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 2958 glScalef( 2959 (GLfloat)x, 2960 (GLfloat)y, 2961 (GLfloat)z 2962 ); 2963} 2964 2965/* void glScalex ( GLfixed x, GLfixed y, GLfixed z ) */ 2966static void 2967android_glScalex__III 2968 (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 2969 glScalex( 2970 (GLfixed)x, 2971 (GLfixed)y, 2972 (GLfixed)z 2973 ); 2974} 2975 2976/* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 2977static void 2978android_glScissor__IIII 2979 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 2980 glScissor( 2981 (GLint)x, 2982 (GLint)y, 2983 (GLsizei)width, 2984 (GLsizei)height 2985 ); 2986} 2987 2988/* void glShadeModel ( GLenum mode ) */ 2989static void 2990android_glShadeModel__I 2991 (JNIEnv *_env, jobject _this, jint mode) { 2992 glShadeModel( 2993 (GLenum)mode 2994 ); 2995} 2996 2997/* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 2998static void 2999android_glStencilFunc__III 3000 (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 3001 glStencilFunc( 3002 (GLenum)func, 3003 (GLint)ref, 3004 (GLuint)mask 3005 ); 3006} 3007 3008/* void glStencilMask ( GLuint mask ) */ 3009static void 3010android_glStencilMask__I 3011 (JNIEnv *_env, jobject _this, jint mask) { 3012 glStencilMask( 3013 (GLuint)mask 3014 ); 3015} 3016 3017/* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 3018static void 3019android_glStencilOp__III 3020 (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 3021 glStencilOp( 3022 (GLenum)fail, 3023 (GLenum)zfail, 3024 (GLenum)zpass 3025 ); 3026} 3027 3028/* void glTexCoordPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 3029static void 3030android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I 3031 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 3032 jarray _array = (jarray) 0; 3033 jint _remaining; 3034 GLvoid *pointer = (GLvoid *) 0; 3035 3036 if (pointer_buf) { 3037 pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf); 3038 if ( ! pointer ) { 3039 _env->ThrowNew(IAEClass, "Must use a native order direct Buffer"); 3040 return; 3041 } 3042 } 3043 glTexCoordPointerBounds( 3044 (GLint)size, 3045 (GLenum)type, 3046 (GLsizei)stride, 3047 (GLvoid *)pointer, 3048 (GLsizei)remaining 3049 ); 3050} 3051 3052/* void glTexEnvf ( GLenum target, GLenum pname, GLfloat param ) */ 3053static void 3054android_glTexEnvf__IIF 3055 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 3056 glTexEnvf( 3057 (GLenum)target, 3058 (GLenum)pname, 3059 (GLfloat)param 3060 ); 3061} 3062 3063/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 3064static void 3065android_glTexEnvfv__II_3FI 3066 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 3067 GLfloat *params_base = (GLfloat *) 0; 3068 jint _remaining; 3069 GLfloat *params = (GLfloat *) 0; 3070 3071 if (!params_ref) { 3072 _env->ThrowNew(IAEClass, "params == null"); 3073 goto exit; 3074 } 3075 if (offset < 0) { 3076 _env->ThrowNew(IAEClass, "offset < 0"); 3077 goto exit; 3078 } 3079 _remaining = _env->GetArrayLength(params_ref) - offset; 3080 int _needed; 3081 switch (pname) { 3082#if defined(GL_TEXTURE_ENV_MODE) 3083 case GL_TEXTURE_ENV_MODE: 3084#endif // defined(GL_TEXTURE_ENV_MODE) 3085#if defined(GL_COMBINE_RGB) 3086 case GL_COMBINE_RGB: 3087#endif // defined(GL_COMBINE_RGB) 3088#if defined(GL_COMBINE_ALPHA) 3089 case GL_COMBINE_ALPHA: 3090#endif // defined(GL_COMBINE_ALPHA) 3091 _needed = 1; 3092 break; 3093#if defined(GL_TEXTURE_ENV_COLOR) 3094 case GL_TEXTURE_ENV_COLOR: 3095#endif // defined(GL_TEXTURE_ENV_COLOR) 3096 _needed = 4; 3097 break; 3098 default: 3099 _needed = 0; 3100 break; 3101 } 3102 if (_remaining < _needed) { 3103 _env->ThrowNew(IAEClass, "length - offset < needed"); 3104 goto exit; 3105 } 3106 params_base = (GLfloat *) 3107 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3108 params = params_base + offset; 3109 3110 glTexEnvfv( 3111 (GLenum)target, 3112 (GLenum)pname, 3113 (GLfloat *)params 3114 ); 3115 3116exit: 3117 if (params_base) { 3118 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3119 JNI_ABORT); 3120 } 3121} 3122 3123/* void glTexEnvfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 3124static void 3125android_glTexEnvfv__IILjava_nio_FloatBuffer_2 3126 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3127 jarray _array = (jarray) 0; 3128 jint _remaining; 3129 GLfloat *params = (GLfloat *) 0; 3130 3131 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining); 3132 int _needed; 3133 switch (pname) { 3134#if defined(GL_TEXTURE_ENV_MODE) 3135 case GL_TEXTURE_ENV_MODE: 3136#endif // defined(GL_TEXTURE_ENV_MODE) 3137#if defined(GL_COMBINE_RGB) 3138 case GL_COMBINE_RGB: 3139#endif // defined(GL_COMBINE_RGB) 3140#if defined(GL_COMBINE_ALPHA) 3141 case GL_COMBINE_ALPHA: 3142#endif // defined(GL_COMBINE_ALPHA) 3143 _needed = 1; 3144 break; 3145#if defined(GL_TEXTURE_ENV_COLOR) 3146 case GL_TEXTURE_ENV_COLOR: 3147#endif // defined(GL_TEXTURE_ENV_COLOR) 3148 _needed = 4; 3149 break; 3150 default: 3151 _needed = 0; 3152 break; 3153 } 3154 if (_remaining < _needed) { 3155 _env->ThrowNew(IAEClass, "remaining() < needed"); 3156 goto exit; 3157 } 3158 glTexEnvfv( 3159 (GLenum)target, 3160 (GLenum)pname, 3161 (GLfloat *)params 3162 ); 3163 3164exit: 3165 if (_array) { 3166 releasePointer(_env, _array, params, JNI_FALSE); 3167 } 3168} 3169 3170/* void glTexEnvx ( GLenum target, GLenum pname, GLfixed param ) */ 3171static void 3172android_glTexEnvx__III 3173 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 3174 glTexEnvx( 3175 (GLenum)target, 3176 (GLenum)pname, 3177 (GLfixed)param 3178 ); 3179} 3180 3181/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 3182static void 3183android_glTexEnvxv__II_3II 3184 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 3185 GLfixed *params_base = (GLfixed *) 0; 3186 jint _remaining; 3187 GLfixed *params = (GLfixed *) 0; 3188 3189 if (!params_ref) { 3190 _env->ThrowNew(IAEClass, "params == null"); 3191 goto exit; 3192 } 3193 if (offset < 0) { 3194 _env->ThrowNew(IAEClass, "offset < 0"); 3195 goto exit; 3196 } 3197 _remaining = _env->GetArrayLength(params_ref) - offset; 3198 int _needed; 3199 switch (pname) { 3200#if defined(GL_TEXTURE_ENV_MODE) 3201 case GL_TEXTURE_ENV_MODE: 3202#endif // defined(GL_TEXTURE_ENV_MODE) 3203#if defined(GL_COMBINE_RGB) 3204 case GL_COMBINE_RGB: 3205#endif // defined(GL_COMBINE_RGB) 3206#if defined(GL_COMBINE_ALPHA) 3207 case GL_COMBINE_ALPHA: 3208#endif // defined(GL_COMBINE_ALPHA) 3209 _needed = 1; 3210 break; 3211#if defined(GL_TEXTURE_ENV_COLOR) 3212 case GL_TEXTURE_ENV_COLOR: 3213#endif // defined(GL_TEXTURE_ENV_COLOR) 3214 _needed = 4; 3215 break; 3216 default: 3217 _needed = 0; 3218 break; 3219 } 3220 if (_remaining < _needed) { 3221 _env->ThrowNew(IAEClass, "length - offset < needed"); 3222 goto exit; 3223 } 3224 params_base = (GLfixed *) 3225 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3226 params = params_base + offset; 3227 3228 glTexEnvxv( 3229 (GLenum)target, 3230 (GLenum)pname, 3231 (GLfixed *)params 3232 ); 3233 3234exit: 3235 if (params_base) { 3236 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3237 JNI_ABORT); 3238 } 3239} 3240 3241/* void glTexEnvxv ( GLenum target, GLenum pname, const GLfixed *params ) */ 3242static void 3243android_glTexEnvxv__IILjava_nio_IntBuffer_2 3244 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3245 jarray _array = (jarray) 0; 3246 jint _remaining; 3247 GLfixed *params = (GLfixed *) 0; 3248 3249 params = (GLfixed *)getPointer(_env, params_buf, &_array, &_remaining); 3250 int _needed; 3251 switch (pname) { 3252#if defined(GL_TEXTURE_ENV_MODE) 3253 case GL_TEXTURE_ENV_MODE: 3254#endif // defined(GL_TEXTURE_ENV_MODE) 3255#if defined(GL_COMBINE_RGB) 3256 case GL_COMBINE_RGB: 3257#endif // defined(GL_COMBINE_RGB) 3258#if defined(GL_COMBINE_ALPHA) 3259 case GL_COMBINE_ALPHA: 3260#endif // defined(GL_COMBINE_ALPHA) 3261 _needed = 1; 3262 break; 3263#if defined(GL_TEXTURE_ENV_COLOR) 3264 case GL_TEXTURE_ENV_COLOR: 3265#endif // defined(GL_TEXTURE_ENV_COLOR) 3266 _needed = 4; 3267 break; 3268 default: 3269 _needed = 0; 3270 break; 3271 } 3272 if (_remaining < _needed) { 3273 _env->ThrowNew(IAEClass, "remaining() < needed"); 3274 goto exit; 3275 } 3276 glTexEnvxv( 3277 (GLenum)target, 3278 (GLenum)pname, 3279 (GLfixed *)params 3280 ); 3281 3282exit: 3283 if (_array) { 3284 releasePointer(_env, _array, params, JNI_FALSE); 3285 } 3286} 3287 3288/* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 3289static void 3290android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 3291 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 3292 jarray _array = (jarray) 0; 3293 jint _remaining; 3294 GLvoid *pixels = (GLvoid *) 0; 3295 3296 if (pixels_buf) { 3297 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining); 3298 } 3299 glTexImage2D( 3300 (GLenum)target, 3301 (GLint)level, 3302 (GLint)internalformat, 3303 (GLsizei)width, 3304 (GLsizei)height, 3305 (GLint)border, 3306 (GLenum)format, 3307 (GLenum)type, 3308 (GLvoid *)pixels 3309 ); 3310 if (_array) { 3311 releasePointer(_env, _array, pixels, JNI_FALSE); 3312 } 3313} 3314 3315/* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 3316static void 3317android_glTexParameterf__IIF 3318 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 3319 glTexParameterf( 3320 (GLenum)target, 3321 (GLenum)pname, 3322 (GLfloat)param 3323 ); 3324} 3325 3326/* void glTexParameterx ( GLenum target, GLenum pname, GLfixed param ) */ 3327static void 3328android_glTexParameterx__III 3329 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 3330 glTexParameterx( 3331 (GLenum)target, 3332 (GLenum)pname, 3333 (GLfixed)param 3334 ); 3335} 3336 3337/* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 3338static void 3339android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 3340 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 3341 jarray _array = (jarray) 0; 3342 jint _remaining; 3343 GLvoid *pixels = (GLvoid *) 0; 3344 3345 if (pixels_buf) { 3346 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining); 3347 } 3348 glTexSubImage2D( 3349 (GLenum)target, 3350 (GLint)level, 3351 (GLint)xoffset, 3352 (GLint)yoffset, 3353 (GLsizei)width, 3354 (GLsizei)height, 3355 (GLenum)format, 3356 (GLenum)type, 3357 (GLvoid *)pixels 3358 ); 3359 if (_array) { 3360 releasePointer(_env, _array, pixels, JNI_FALSE); 3361 } 3362} 3363 3364/* void glTranslatef ( GLfloat x, GLfloat y, GLfloat z ) */ 3365static void 3366android_glTranslatef__FFF 3367 (JNIEnv *_env, jobject _this, jfloat x, jfloat y, jfloat z) { 3368 glTranslatef( 3369 (GLfloat)x, 3370 (GLfloat)y, 3371 (GLfloat)z 3372 ); 3373} 3374 3375/* void glTranslatex ( GLfixed x, GLfixed y, GLfixed z ) */ 3376static void 3377android_glTranslatex__III 3378 (JNIEnv *_env, jobject _this, jint x, jint y, jint z) { 3379 glTranslatex( 3380 (GLfixed)x, 3381 (GLfixed)y, 3382 (GLfixed)z 3383 ); 3384} 3385 3386/* void glVertexPointer ( GLint size, GLenum type, GLsizei stride, const GLvoid *pointer ) */ 3387static void 3388android_glVertexPointerBounds__IIILjava_nio_Buffer_2I 3389 (JNIEnv *_env, jobject _this, jint size, jint type, jint stride, jobject pointer_buf, jint remaining) { 3390 jarray _array = (jarray) 0; 3391 jint _remaining; 3392 GLvoid *pointer = (GLvoid *) 0; 3393 3394 if (pointer_buf) { 3395 pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf); 3396 if ( ! pointer ) { 3397 _env->ThrowNew(IAEClass, "Must use a native order direct Buffer"); 3398 return; 3399 } 3400 } 3401 glVertexPointerBounds( 3402 (GLint)size, 3403 (GLenum)type, 3404 (GLsizei)stride, 3405 (GLvoid *)pointer, 3406 (GLsizei)remaining 3407 ); 3408} 3409 3410/* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 3411static void 3412android_glViewport__IIII 3413 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 3414 glViewport( 3415 (GLint)x, 3416 (GLint)y, 3417 (GLsizei)width, 3418 (GLsizei)height 3419 ); 3420} 3421 3422static const char *classPathName = "android/opengl/GLES10"; 3423 3424static JNINativeMethod methods[] = { 3425{"_nativeClassInit", "()V", (void*)nativeClassInit }, 3426{"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 3427{"glAlphaFunc", "(IF)V", (void *) android_glAlphaFunc__IF }, 3428{"glAlphaFuncx", "(II)V", (void *) android_glAlphaFuncx__II }, 3429{"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 3430{"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 3431{"glClear", "(I)V", (void *) android_glClear__I }, 3432{"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 3433{"glClearColorx", "(IIII)V", (void *) android_glClearColorx__IIII }, 3434{"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 3435{"glClearDepthx", "(I)V", (void *) android_glClearDepthx__I }, 3436{"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 3437{"glClientActiveTexture", "(I)V", (void *) android_glClientActiveTexture__I }, 3438{"glColor4f", "(FFFF)V", (void *) android_glColor4f__FFFF }, 3439{"glColor4x", "(IIII)V", (void *) android_glColor4x__IIII }, 3440{"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 3441{"glColorPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glColorPointerBounds__IIILjava_nio_Buffer_2I }, 3442{"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 3443{"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 3444{"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 3445{"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 3446{"glCullFace", "(I)V", (void *) android_glCullFace__I }, 3447{"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 3448{"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 3449{"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 3450{"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 3451{"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 3452{"glDepthRangex", "(II)V", (void *) android_glDepthRangex__II }, 3453{"glDisable", "(I)V", (void *) android_glDisable__I }, 3454{"glDisableClientState", "(I)V", (void *) android_glDisableClientState__I }, 3455{"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 3456{"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 3457{"glEnable", "(I)V", (void *) android_glEnable__I }, 3458{"glEnableClientState", "(I)V", (void *) android_glEnableClientState__I }, 3459{"glFinish", "()V", (void *) android_glFinish__ }, 3460{"glFlush", "()V", (void *) android_glFlush__ }, 3461{"glFogf", "(IF)V", (void *) android_glFogf__IF }, 3462{"glFogfv", "(I[FI)V", (void *) android_glFogfv__I_3FI }, 3463{"glFogfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glFogfv__ILjava_nio_FloatBuffer_2 }, 3464{"glFogx", "(II)V", (void *) android_glFogx__II }, 3465{"glFogxv", "(I[II)V", (void *) android_glFogxv__I_3II }, 3466{"glFogxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glFogxv__ILjava_nio_IntBuffer_2 }, 3467{"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 3468{"glFrustumf", "(FFFFFF)V", (void *) android_glFrustumf__FFFFFF }, 3469{"glFrustumx", "(IIIIII)V", (void *) android_glFrustumx__IIIIII }, 3470{"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 3471{"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 3472{"glGetError", "()I", (void *) android_glGetError__ }, 3473{"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 3474{"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 3475{"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 3476{"glHint", "(II)V", (void *) android_glHint__II }, 3477{"glLightModelf", "(IF)V", (void *) android_glLightModelf__IF }, 3478{"glLightModelfv", "(I[FI)V", (void *) android_glLightModelfv__I_3FI }, 3479{"glLightModelfv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glLightModelfv__ILjava_nio_FloatBuffer_2 }, 3480{"glLightModelx", "(II)V", (void *) android_glLightModelx__II }, 3481{"glLightModelxv", "(I[II)V", (void *) android_glLightModelxv__I_3II }, 3482{"glLightModelxv", "(ILjava/nio/IntBuffer;)V", (void *) android_glLightModelxv__ILjava_nio_IntBuffer_2 }, 3483{"glLightf", "(IIF)V", (void *) android_glLightf__IIF }, 3484{"glLightfv", "(II[FI)V", (void *) android_glLightfv__II_3FI }, 3485{"glLightfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glLightfv__IILjava_nio_FloatBuffer_2 }, 3486{"glLightx", "(III)V", (void *) android_glLightx__III }, 3487{"glLightxv", "(II[II)V", (void *) android_glLightxv__II_3II }, 3488{"glLightxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glLightxv__IILjava_nio_IntBuffer_2 }, 3489{"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 3490{"glLineWidthx", "(I)V", (void *) android_glLineWidthx__I }, 3491{"glLoadIdentity", "()V", (void *) android_glLoadIdentity__ }, 3492{"glLoadMatrixf", "([FI)V", (void *) android_glLoadMatrixf___3FI }, 3493{"glLoadMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glLoadMatrixf__Ljava_nio_FloatBuffer_2 }, 3494{"glLoadMatrixx", "([II)V", (void *) android_glLoadMatrixx___3II }, 3495{"glLoadMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glLoadMatrixx__Ljava_nio_IntBuffer_2 }, 3496{"glLogicOp", "(I)V", (void *) android_glLogicOp__I }, 3497{"glMaterialf", "(IIF)V", (void *) android_glMaterialf__IIF }, 3498{"glMaterialfv", "(II[FI)V", (void *) android_glMaterialfv__II_3FI }, 3499{"glMaterialfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glMaterialfv__IILjava_nio_FloatBuffer_2 }, 3500{"glMaterialx", "(III)V", (void *) android_glMaterialx__III }, 3501{"glMaterialxv", "(II[II)V", (void *) android_glMaterialxv__II_3II }, 3502{"glMaterialxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glMaterialxv__IILjava_nio_IntBuffer_2 }, 3503{"glMatrixMode", "(I)V", (void *) android_glMatrixMode__I }, 3504{"glMultMatrixf", "([FI)V", (void *) android_glMultMatrixf___3FI }, 3505{"glMultMatrixf", "(Ljava/nio/FloatBuffer;)V", (void *) android_glMultMatrixf__Ljava_nio_FloatBuffer_2 }, 3506{"glMultMatrixx", "([II)V", (void *) android_glMultMatrixx___3II }, 3507{"glMultMatrixx", "(Ljava/nio/IntBuffer;)V", (void *) android_glMultMatrixx__Ljava_nio_IntBuffer_2 }, 3508{"glMultiTexCoord4f", "(IFFFF)V", (void *) android_glMultiTexCoord4f__IFFFF }, 3509{"glMultiTexCoord4x", "(IIIII)V", (void *) android_glMultiTexCoord4x__IIIII }, 3510{"glNormal3f", "(FFF)V", (void *) android_glNormal3f__FFF }, 3511{"glNormal3x", "(III)V", (void *) android_glNormal3x__III }, 3512{"glNormalPointerBounds", "(IILjava/nio/Buffer;I)V", (void *) android_glNormalPointerBounds__IILjava_nio_Buffer_2I }, 3513{"glOrthof", "(FFFFFF)V", (void *) android_glOrthof__FFFFFF }, 3514{"glOrthox", "(IIIIII)V", (void *) android_glOrthox__IIIIII }, 3515{"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 3516{"glPointSize", "(F)V", (void *) android_glPointSize__F }, 3517{"glPointSizex", "(I)V", (void *) android_glPointSizex__I }, 3518{"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 3519{"glPolygonOffsetx", "(II)V", (void *) android_glPolygonOffsetx__II }, 3520{"glPopMatrix", "()V", (void *) android_glPopMatrix__ }, 3521{"glPushMatrix", "()V", (void *) android_glPushMatrix__ }, 3522{"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 3523{"glRotatef", "(FFFF)V", (void *) android_glRotatef__FFFF }, 3524{"glRotatex", "(IIII)V", (void *) android_glRotatex__IIII }, 3525{"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 3526{"glSampleCoveragex", "(IZ)V", (void *) android_glSampleCoveragex__IZ }, 3527{"glScalef", "(FFF)V", (void *) android_glScalef__FFF }, 3528{"glScalex", "(III)V", (void *) android_glScalex__III }, 3529{"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 3530{"glShadeModel", "(I)V", (void *) android_glShadeModel__I }, 3531{"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 3532{"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 3533{"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 3534{"glTexCoordPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I }, 3535{"glTexEnvf", "(IIF)V", (void *) android_glTexEnvf__IIF }, 3536{"glTexEnvfv", "(II[FI)V", (void *) android_glTexEnvfv__II_3FI }, 3537{"glTexEnvfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexEnvfv__IILjava_nio_FloatBuffer_2 }, 3538{"glTexEnvx", "(III)V", (void *) android_glTexEnvx__III }, 3539{"glTexEnvxv", "(II[II)V", (void *) android_glTexEnvxv__II_3II }, 3540{"glTexEnvxv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexEnvxv__IILjava_nio_IntBuffer_2 }, 3541{"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 3542{"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 3543{"glTexParameterx", "(III)V", (void *) android_glTexParameterx__III }, 3544{"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 3545{"glTranslatef", "(FFF)V", (void *) android_glTranslatef__FFF }, 3546{"glTranslatex", "(III)V", (void *) android_glTranslatex__III }, 3547{"glVertexPointerBounds", "(IIILjava/nio/Buffer;I)V", (void *) android_glVertexPointerBounds__IIILjava_nio_Buffer_2I }, 3548{"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 3549}; 3550 3551int register_android_opengl_jni_GLES10(JNIEnv *_env) 3552{ 3553 int err; 3554 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 3555 return err; 3556} 3557