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