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