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