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