1 /* 2 ** 3 ** Copyright 2009, The Android Open Source Project 4 ** 5 ** Licensed under the Apache License, Version 2.0 (the "License"); 6 ** you may not use this file except in compliance with the License. 7 ** You may obtain a copy of the License at 8 ** 9 ** http://www.apache.org/licenses/LICENSE-2.0 10 ** 11 ** Unless required by applicable law or agreed to in writing, software 12 ** distributed under the License is distributed on an "AS IS" BASIS, 13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 ** See the License for the specific language governing permissions and 15 ** limitations under the License. 16 */ 17 18 // This source file is automatically generated 19 20 #include "jni.h" 21 #include "JNIHelp.h" 22 #include <android_runtime/AndroidRuntime.h> 23 #include <utils/misc.h> 24 25 #include <assert.h> 26 #include <GLES2/gl2.h> 27 #include <GLES2/gl2ext.h> 28 29 static int initialized = 0; 30 31 static jclass nioAccessClass; 32 static jclass bufferClass; 33 static jmethodID getBasePointerID; 34 static jmethodID getBaseArrayID; 35 static jmethodID getBaseArrayOffsetID; 36 static jfieldID positionID; 37 static jfieldID limitID; 38 static jfieldID elementSizeShiftID; 39 40 /* Cache method IDs each time the class is loaded. */ 41 42 static void 43 nativeClassInit(JNIEnv *_env, jclass glImplClass) 44 { 45 jclass nioAccessClassLocal = _env->FindClass("java/nio/NIOAccess"); 46 nioAccessClass = (jclass) _env->NewGlobalRef(nioAccessClassLocal); 47 48 jclass bufferClassLocal = _env->FindClass("java/nio/Buffer"); 49 bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal); 50 51 getBasePointerID = _env->GetStaticMethodID(nioAccessClass, 52 "getBasePointer", "(Ljava/nio/Buffer;)J"); 53 getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, 54 "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;"); 55 getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass, 56 "getBaseArrayOffset", "(Ljava/nio/Buffer;)I"); 57 58 positionID = _env->GetFieldID(bufferClass, "position", "I"); 59 limitID = _env->GetFieldID(bufferClass, "limit", "I"); 60 elementSizeShiftID = 61 _env->GetFieldID(bufferClass, "_elementSizeShift", "I"); 62 } 63 64 65 static void * 66 getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset) 67 { 68 jint position; 69 jint limit; 70 jint elementSizeShift; 71 jlong pointer; 72 73 position = _env->GetIntField(buffer, positionID); 74 limit = _env->GetIntField(buffer, limitID); 75 elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 76 *remaining = (limit - position) << elementSizeShift; 77 pointer = _env->CallStaticLongMethod(nioAccessClass, 78 getBasePointerID, buffer); 79 if (pointer != 0L) { 80 *array = NULL; 81 return (void *) (jint) pointer; 82 } 83 84 *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass, 85 getBaseArrayID, buffer); 86 *offset = _env->CallStaticIntMethod(nioAccessClass, 87 getBaseArrayOffsetID, buffer); 88 89 return NULL; 90 } 91 92 93 static void 94 releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) 95 { 96 _env->ReleasePrimitiveArrayCritical(array, data, 97 commit ? 0 : JNI_ABORT); 98 } 99 100 static void * 101 getDirectBufferPointer(JNIEnv *_env, jobject buffer) { 102 char* buf = (char*) _env->GetDirectBufferAddress(buffer); 103 if (buf) { 104 jint position = _env->GetIntField(buffer, positionID); 105 jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID); 106 buf += position << elementSizeShift; 107 } else { 108 jniThrowException(_env, "java/lang/IllegalArgumentException", 109 "Must use a native order direct Buffer"); 110 } 111 return (void*) buf; 112 } 113 114 static int 115 getNumCompressedTextureFormats() { 116 int numCompressedTextureFormats = 0; 117 glGetIntegerv(GL_NUM_COMPRESSED_TEXTURE_FORMATS, &numCompressedTextureFormats); 118 return numCompressedTextureFormats; 119 } 120 121 static void glVertexAttribPointerBounds(GLuint indx, GLint size, GLenum type, 122 GLboolean normalized, GLsizei stride, const GLvoid *pointer, GLsizei count) { 123 glVertexAttribPointer(indx, size, type, normalized, stride, pointer); 124 } 125 126 // -------------------------------------------------------------------------- 127 /* void glActiveTexture ( GLenum texture ) */ 128 static void 129 android_glActiveTexture__I 130 (JNIEnv *_env, jobject _this, jint texture) { 131 glActiveTexture( 132 (GLenum)texture 133 ); 134 } 135 136 /* void glAttachShader ( GLuint program, GLuint shader ) */ 137 static void 138 android_glAttachShader__II 139 (JNIEnv *_env, jobject _this, jint program, jint shader) { 140 glAttachShader( 141 (GLuint)program, 142 (GLuint)shader 143 ); 144 } 145 146 /* void glBindAttribLocation ( GLuint program, GLuint index, const char *name ) */ 147 static void 148 android_glBindAttribLocation__IILjava_lang_String_2 149 (JNIEnv *_env, jobject _this, jint program, jint index, jstring name) { 150 jint _exception = 0; 151 const char * _exceptionType; 152 const char * _exceptionMessage; 153 const char* _nativename = 0; 154 155 if (!name) { 156 _exceptionType = "java/lang/IllegalArgumentException"; 157 _exceptionMessage = "name == null"; 158 goto exit; 159 } 160 _nativename = _env->GetStringUTFChars(name, 0); 161 162 glBindAttribLocation( 163 (GLuint)program, 164 (GLuint)index, 165 (char *)_nativename 166 ); 167 168 exit: 169 if (_nativename) { 170 _env->ReleaseStringUTFChars(name, _nativename); 171 } 172 173 if (_exception) { 174 jniThrowException(_env, _exceptionType, _exceptionMessage); 175 } 176 } 177 178 /* void glBindBuffer ( GLenum target, GLuint buffer ) */ 179 static void 180 android_glBindBuffer__II 181 (JNIEnv *_env, jobject _this, jint target, jint buffer) { 182 glBindBuffer( 183 (GLenum)target, 184 (GLuint)buffer 185 ); 186 } 187 188 /* void glBindFramebuffer ( GLenum target, GLuint framebuffer ) */ 189 static void 190 android_glBindFramebuffer__II 191 (JNIEnv *_env, jobject _this, jint target, jint framebuffer) { 192 glBindFramebuffer( 193 (GLenum)target, 194 (GLuint)framebuffer 195 ); 196 } 197 198 /* void glBindRenderbuffer ( GLenum target, GLuint renderbuffer ) */ 199 static void 200 android_glBindRenderbuffer__II 201 (JNIEnv *_env, jobject _this, jint target, jint renderbuffer) { 202 glBindRenderbuffer( 203 (GLenum)target, 204 (GLuint)renderbuffer 205 ); 206 } 207 208 /* void glBindTexture ( GLenum target, GLuint texture ) */ 209 static void 210 android_glBindTexture__II 211 (JNIEnv *_env, jobject _this, jint target, jint texture) { 212 glBindTexture( 213 (GLenum)target, 214 (GLuint)texture 215 ); 216 } 217 218 /* void glBlendColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 219 static void 220 android_glBlendColor__FFFF 221 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 222 glBlendColor( 223 (GLclampf)red, 224 (GLclampf)green, 225 (GLclampf)blue, 226 (GLclampf)alpha 227 ); 228 } 229 230 /* void glBlendEquation ( GLenum mode ) */ 231 static void 232 android_glBlendEquation__I 233 (JNIEnv *_env, jobject _this, jint mode) { 234 glBlendEquation( 235 (GLenum)mode 236 ); 237 } 238 239 /* void glBlendEquationSeparate ( GLenum modeRGB, GLenum modeAlpha ) */ 240 static void 241 android_glBlendEquationSeparate__II 242 (JNIEnv *_env, jobject _this, jint modeRGB, jint modeAlpha) { 243 glBlendEquationSeparate( 244 (GLenum)modeRGB, 245 (GLenum)modeAlpha 246 ); 247 } 248 249 /* void glBlendFunc ( GLenum sfactor, GLenum dfactor ) */ 250 static void 251 android_glBlendFunc__II 252 (JNIEnv *_env, jobject _this, jint sfactor, jint dfactor) { 253 glBlendFunc( 254 (GLenum)sfactor, 255 (GLenum)dfactor 256 ); 257 } 258 259 /* void glBlendFuncSeparate ( GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha ) */ 260 static void 261 android_glBlendFuncSeparate__IIII 262 (JNIEnv *_env, jobject _this, jint srcRGB, jint dstRGB, jint srcAlpha, jint dstAlpha) { 263 glBlendFuncSeparate( 264 (GLenum)srcRGB, 265 (GLenum)dstRGB, 266 (GLenum)srcAlpha, 267 (GLenum)dstAlpha 268 ); 269 } 270 271 /* void glBufferData ( GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage ) */ 272 static void 273 android_glBufferData__IILjava_nio_Buffer_2I 274 (JNIEnv *_env, jobject _this, jint target, jint size, jobject data_buf, jint usage) { 275 jint _exception = 0; 276 const char * _exceptionType; 277 const char * _exceptionMessage; 278 jarray _array = (jarray) 0; 279 jint _bufferOffset = (jint) 0; 280 jint _remaining; 281 GLvoid *data = (GLvoid *) 0; 282 283 if (data_buf) { 284 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 285 if (_remaining < size) { 286 _exception = 1; 287 _exceptionType = "java/lang/IllegalArgumentException"; 288 _exceptionMessage = "remaining() < size < needed"; 289 goto exit; 290 } 291 } 292 if (data_buf && data == NULL) { 293 char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 294 data = (GLvoid *) (_dataBase + _bufferOffset); 295 } 296 glBufferData( 297 (GLenum)target, 298 (GLsizeiptr)size, 299 (GLvoid *)data, 300 (GLenum)usage 301 ); 302 303 exit: 304 if (_array) { 305 releasePointer(_env, _array, data, JNI_FALSE); 306 } 307 if (_exception) { 308 jniThrowException(_env, _exceptionType, _exceptionMessage); 309 } 310 } 311 312 /* void glBufferSubData ( GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data ) */ 313 static void 314 android_glBufferSubData__IIILjava_nio_Buffer_2 315 (JNIEnv *_env, jobject _this, jint target, jint offset, jint size, jobject data_buf) { 316 jint _exception = 0; 317 const char * _exceptionType; 318 const char * _exceptionMessage; 319 jarray _array = (jarray) 0; 320 jint _bufferOffset = (jint) 0; 321 jint _remaining; 322 GLvoid *data = (GLvoid *) 0; 323 324 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 325 if (_remaining < size) { 326 _exception = 1; 327 _exceptionType = "java/lang/IllegalArgumentException"; 328 _exceptionMessage = "remaining() < size < needed"; 329 goto exit; 330 } 331 if (data == NULL) { 332 char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 333 data = (GLvoid *) (_dataBase + _bufferOffset); 334 } 335 glBufferSubData( 336 (GLenum)target, 337 (GLintptr)offset, 338 (GLsizeiptr)size, 339 (GLvoid *)data 340 ); 341 342 exit: 343 if (_array) { 344 releasePointer(_env, _array, data, JNI_FALSE); 345 } 346 if (_exception) { 347 jniThrowException(_env, _exceptionType, _exceptionMessage); 348 } 349 } 350 351 /* GLenum glCheckFramebufferStatus ( GLenum target ) */ 352 static jint 353 android_glCheckFramebufferStatus__I 354 (JNIEnv *_env, jobject _this, jint target) { 355 GLenum _returnValue; 356 _returnValue = glCheckFramebufferStatus( 357 (GLenum)target 358 ); 359 return _returnValue; 360 } 361 362 /* void glClear ( GLbitfield mask ) */ 363 static void 364 android_glClear__I 365 (JNIEnv *_env, jobject _this, jint mask) { 366 glClear( 367 (GLbitfield)mask 368 ); 369 } 370 371 /* void glClearColor ( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha ) */ 372 static void 373 android_glClearColor__FFFF 374 (JNIEnv *_env, jobject _this, jfloat red, jfloat green, jfloat blue, jfloat alpha) { 375 glClearColor( 376 (GLclampf)red, 377 (GLclampf)green, 378 (GLclampf)blue, 379 (GLclampf)alpha 380 ); 381 } 382 383 /* void glClearDepthf ( GLclampf depth ) */ 384 static void 385 android_glClearDepthf__F 386 (JNIEnv *_env, jobject _this, jfloat depth) { 387 glClearDepthf( 388 (GLclampf)depth 389 ); 390 } 391 392 /* void glClearStencil ( GLint s ) */ 393 static void 394 android_glClearStencil__I 395 (JNIEnv *_env, jobject _this, jint s) { 396 glClearStencil( 397 (GLint)s 398 ); 399 } 400 401 /* void glColorMask ( GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha ) */ 402 static void 403 android_glColorMask__ZZZZ 404 (JNIEnv *_env, jobject _this, jboolean red, jboolean green, jboolean blue, jboolean alpha) { 405 glColorMask( 406 (GLboolean)red, 407 (GLboolean)green, 408 (GLboolean)blue, 409 (GLboolean)alpha 410 ); 411 } 412 413 /* void glCompileShader ( GLuint shader ) */ 414 static void 415 android_glCompileShader__I 416 (JNIEnv *_env, jobject _this, jint shader) { 417 glCompileShader( 418 (GLuint)shader 419 ); 420 } 421 422 /* void glCompressedTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data ) */ 423 static void 424 android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 425 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint imageSize, jobject data_buf) { 426 jarray _array = (jarray) 0; 427 jint _bufferOffset = (jint) 0; 428 jint _remaining; 429 GLvoid *data = (GLvoid *) 0; 430 431 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 432 if (data == NULL) { 433 char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 434 data = (GLvoid *) (_dataBase + _bufferOffset); 435 } 436 glCompressedTexImage2D( 437 (GLenum)target, 438 (GLint)level, 439 (GLenum)internalformat, 440 (GLsizei)width, 441 (GLsizei)height, 442 (GLint)border, 443 (GLsizei)imageSize, 444 (GLvoid *)data 445 ); 446 if (_array) { 447 releasePointer(_env, _array, data, JNI_FALSE); 448 } 449 } 450 451 /* void glCompressedTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data ) */ 452 static void 453 android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 454 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint imageSize, jobject data_buf) { 455 jarray _array = (jarray) 0; 456 jint _bufferOffset = (jint) 0; 457 jint _remaining; 458 GLvoid *data = (GLvoid *) 0; 459 460 data = (GLvoid *)getPointer(_env, data_buf, &_array, &_remaining, &_bufferOffset); 461 if (data == NULL) { 462 char * _dataBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 463 data = (GLvoid *) (_dataBase + _bufferOffset); 464 } 465 glCompressedTexSubImage2D( 466 (GLenum)target, 467 (GLint)level, 468 (GLint)xoffset, 469 (GLint)yoffset, 470 (GLsizei)width, 471 (GLsizei)height, 472 (GLenum)format, 473 (GLsizei)imageSize, 474 (GLvoid *)data 475 ); 476 if (_array) { 477 releasePointer(_env, _array, data, JNI_FALSE); 478 } 479 } 480 481 /* void glCopyTexImage2D ( GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border ) */ 482 static void 483 android_glCopyTexImage2D__IIIIIIII 484 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint x, jint y, jint width, jint height, jint border) { 485 glCopyTexImage2D( 486 (GLenum)target, 487 (GLint)level, 488 (GLenum)internalformat, 489 (GLint)x, 490 (GLint)y, 491 (GLsizei)width, 492 (GLsizei)height, 493 (GLint)border 494 ); 495 } 496 497 /* void glCopyTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height ) */ 498 static void 499 android_glCopyTexSubImage2D__IIIIIIII 500 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint x, jint y, jint width, jint height) { 501 glCopyTexSubImage2D( 502 (GLenum)target, 503 (GLint)level, 504 (GLint)xoffset, 505 (GLint)yoffset, 506 (GLint)x, 507 (GLint)y, 508 (GLsizei)width, 509 (GLsizei)height 510 ); 511 } 512 513 /* GLuint glCreateProgram ( void ) */ 514 static jint 515 android_glCreateProgram__ 516 (JNIEnv *_env, jobject _this) { 517 GLuint _returnValue; 518 _returnValue = glCreateProgram(); 519 return _returnValue; 520 } 521 522 /* GLuint glCreateShader ( GLenum type ) */ 523 static jint 524 android_glCreateShader__I 525 (JNIEnv *_env, jobject _this, jint type) { 526 GLuint _returnValue; 527 _returnValue = glCreateShader( 528 (GLenum)type 529 ); 530 return _returnValue; 531 } 532 533 /* void glCullFace ( GLenum mode ) */ 534 static void 535 android_glCullFace__I 536 (JNIEnv *_env, jobject _this, jint mode) { 537 glCullFace( 538 (GLenum)mode 539 ); 540 } 541 542 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 543 static void 544 android_glDeleteBuffers__I_3II 545 (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 546 jint _exception = 0; 547 const char * _exceptionType; 548 const char * _exceptionMessage; 549 GLuint *buffers_base = (GLuint *) 0; 550 jint _remaining; 551 GLuint *buffers = (GLuint *) 0; 552 553 if (!buffers_ref) { 554 _exception = 1; 555 _exceptionType = "java/lang/IllegalArgumentException"; 556 _exceptionMessage = "buffers == null"; 557 goto exit; 558 } 559 if (offset < 0) { 560 _exception = 1; 561 _exceptionType = "java/lang/IllegalArgumentException"; 562 _exceptionMessage = "offset < 0"; 563 goto exit; 564 } 565 _remaining = _env->GetArrayLength(buffers_ref) - offset; 566 if (_remaining < n) { 567 _exception = 1; 568 _exceptionType = "java/lang/IllegalArgumentException"; 569 _exceptionMessage = "length - offset < n < needed"; 570 goto exit; 571 } 572 buffers_base = (GLuint *) 573 _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 574 buffers = buffers_base + offset; 575 576 glDeleteBuffers( 577 (GLsizei)n, 578 (GLuint *)buffers 579 ); 580 581 exit: 582 if (buffers_base) { 583 _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 584 JNI_ABORT); 585 } 586 if (_exception) { 587 jniThrowException(_env, _exceptionType, _exceptionMessage); 588 } 589 } 590 591 /* void glDeleteBuffers ( GLsizei n, const GLuint *buffers ) */ 592 static void 593 android_glDeleteBuffers__ILjava_nio_IntBuffer_2 594 (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 595 jint _exception = 0; 596 const char * _exceptionType; 597 const char * _exceptionMessage; 598 jarray _array = (jarray) 0; 599 jint _bufferOffset = (jint) 0; 600 jint _remaining; 601 GLuint *buffers = (GLuint *) 0; 602 603 buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 604 if (_remaining < n) { 605 _exception = 1; 606 _exceptionType = "java/lang/IllegalArgumentException"; 607 _exceptionMessage = "remaining() < n < needed"; 608 goto exit; 609 } 610 if (buffers == NULL) { 611 char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 612 buffers = (GLuint *) (_buffersBase + _bufferOffset); 613 } 614 glDeleteBuffers( 615 (GLsizei)n, 616 (GLuint *)buffers 617 ); 618 619 exit: 620 if (_array) { 621 releasePointer(_env, _array, buffers, JNI_FALSE); 622 } 623 if (_exception) { 624 jniThrowException(_env, _exceptionType, _exceptionMessage); 625 } 626 } 627 628 /* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */ 629 static void 630 android_glDeleteFramebuffers__I_3II 631 (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) { 632 jint _exception = 0; 633 const char * _exceptionType; 634 const char * _exceptionMessage; 635 GLuint *framebuffers_base = (GLuint *) 0; 636 jint _remaining; 637 GLuint *framebuffers = (GLuint *) 0; 638 639 if (!framebuffers_ref) { 640 _exception = 1; 641 _exceptionType = "java/lang/IllegalArgumentException"; 642 _exceptionMessage = "framebuffers == null"; 643 goto exit; 644 } 645 if (offset < 0) { 646 _exception = 1; 647 _exceptionType = "java/lang/IllegalArgumentException"; 648 _exceptionMessage = "offset < 0"; 649 goto exit; 650 } 651 _remaining = _env->GetArrayLength(framebuffers_ref) - offset; 652 framebuffers_base = (GLuint *) 653 _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); 654 framebuffers = framebuffers_base + offset; 655 656 glDeleteFramebuffers( 657 (GLsizei)n, 658 (GLuint *)framebuffers 659 ); 660 661 exit: 662 if (framebuffers_base) { 663 _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, 664 JNI_ABORT); 665 } 666 if (_exception) { 667 jniThrowException(_env, _exceptionType, _exceptionMessage); 668 } 669 } 670 671 /* void glDeleteFramebuffers ( GLsizei n, const GLuint *framebuffers ) */ 672 static void 673 android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 674 (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) { 675 jarray _array = (jarray) 0; 676 jint _bufferOffset = (jint) 0; 677 jint _remaining; 678 GLuint *framebuffers = (GLuint *) 0; 679 680 framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); 681 if (framebuffers == NULL) { 682 char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 683 framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); 684 } 685 glDeleteFramebuffers( 686 (GLsizei)n, 687 (GLuint *)framebuffers 688 ); 689 if (_array) { 690 releasePointer(_env, _array, framebuffers, JNI_FALSE); 691 } 692 } 693 694 /* void glDeleteProgram ( GLuint program ) */ 695 static void 696 android_glDeleteProgram__I 697 (JNIEnv *_env, jobject _this, jint program) { 698 glDeleteProgram( 699 (GLuint)program 700 ); 701 } 702 703 /* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */ 704 static void 705 android_glDeleteRenderbuffers__I_3II 706 (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) { 707 jint _exception = 0; 708 const char * _exceptionType; 709 const char * _exceptionMessage; 710 GLuint *renderbuffers_base = (GLuint *) 0; 711 jint _remaining; 712 GLuint *renderbuffers = (GLuint *) 0; 713 714 if (!renderbuffers_ref) { 715 _exception = 1; 716 _exceptionType = "java/lang/IllegalArgumentException"; 717 _exceptionMessage = "renderbuffers == null"; 718 goto exit; 719 } 720 if (offset < 0) { 721 _exception = 1; 722 _exceptionType = "java/lang/IllegalArgumentException"; 723 _exceptionMessage = "offset < 0"; 724 goto exit; 725 } 726 _remaining = _env->GetArrayLength(renderbuffers_ref) - offset; 727 renderbuffers_base = (GLuint *) 728 _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); 729 renderbuffers = renderbuffers_base + offset; 730 731 glDeleteRenderbuffers( 732 (GLsizei)n, 733 (GLuint *)renderbuffers 734 ); 735 736 exit: 737 if (renderbuffers_base) { 738 _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, 739 JNI_ABORT); 740 } 741 if (_exception) { 742 jniThrowException(_env, _exceptionType, _exceptionMessage); 743 } 744 } 745 746 /* void glDeleteRenderbuffers ( GLsizei n, const GLuint *renderbuffers ) */ 747 static void 748 android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 749 (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) { 750 jarray _array = (jarray) 0; 751 jint _bufferOffset = (jint) 0; 752 jint _remaining; 753 GLuint *renderbuffers = (GLuint *) 0; 754 755 renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); 756 if (renderbuffers == NULL) { 757 char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 758 renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); 759 } 760 glDeleteRenderbuffers( 761 (GLsizei)n, 762 (GLuint *)renderbuffers 763 ); 764 if (_array) { 765 releasePointer(_env, _array, renderbuffers, JNI_FALSE); 766 } 767 } 768 769 /* void glDeleteShader ( GLuint shader ) */ 770 static void 771 android_glDeleteShader__I 772 (JNIEnv *_env, jobject _this, jint shader) { 773 glDeleteShader( 774 (GLuint)shader 775 ); 776 } 777 778 /* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 779 static void 780 android_glDeleteTextures__I_3II 781 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 782 jint _exception = 0; 783 const char * _exceptionType; 784 const char * _exceptionMessage; 785 GLuint *textures_base = (GLuint *) 0; 786 jint _remaining; 787 GLuint *textures = (GLuint *) 0; 788 789 if (!textures_ref) { 790 _exception = 1; 791 _exceptionType = "java/lang/IllegalArgumentException"; 792 _exceptionMessage = "textures == null"; 793 goto exit; 794 } 795 if (offset < 0) { 796 _exception = 1; 797 _exceptionType = "java/lang/IllegalArgumentException"; 798 _exceptionMessage = "offset < 0"; 799 goto exit; 800 } 801 _remaining = _env->GetArrayLength(textures_ref) - offset; 802 if (_remaining < n) { 803 _exception = 1; 804 _exceptionType = "java/lang/IllegalArgumentException"; 805 _exceptionMessage = "length - offset < n < needed"; 806 goto exit; 807 } 808 textures_base = (GLuint *) 809 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 810 textures = textures_base + offset; 811 812 glDeleteTextures( 813 (GLsizei)n, 814 (GLuint *)textures 815 ); 816 817 exit: 818 if (textures_base) { 819 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 820 JNI_ABORT); 821 } 822 if (_exception) { 823 jniThrowException(_env, _exceptionType, _exceptionMessage); 824 } 825 } 826 827 /* void glDeleteTextures ( GLsizei n, const GLuint *textures ) */ 828 static void 829 android_glDeleteTextures__ILjava_nio_IntBuffer_2 830 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 831 jint _exception = 0; 832 const char * _exceptionType; 833 const char * _exceptionMessage; 834 jarray _array = (jarray) 0; 835 jint _bufferOffset = (jint) 0; 836 jint _remaining; 837 GLuint *textures = (GLuint *) 0; 838 839 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 840 if (_remaining < n) { 841 _exception = 1; 842 _exceptionType = "java/lang/IllegalArgumentException"; 843 _exceptionMessage = "remaining() < n < needed"; 844 goto exit; 845 } 846 if (textures == NULL) { 847 char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 848 textures = (GLuint *) (_texturesBase + _bufferOffset); 849 } 850 glDeleteTextures( 851 (GLsizei)n, 852 (GLuint *)textures 853 ); 854 855 exit: 856 if (_array) { 857 releasePointer(_env, _array, textures, JNI_FALSE); 858 } 859 if (_exception) { 860 jniThrowException(_env, _exceptionType, _exceptionMessage); 861 } 862 } 863 864 /* void glDepthFunc ( GLenum func ) */ 865 static void 866 android_glDepthFunc__I 867 (JNIEnv *_env, jobject _this, jint func) { 868 glDepthFunc( 869 (GLenum)func 870 ); 871 } 872 873 /* void glDepthMask ( GLboolean flag ) */ 874 static void 875 android_glDepthMask__Z 876 (JNIEnv *_env, jobject _this, jboolean flag) { 877 glDepthMask( 878 (GLboolean)flag 879 ); 880 } 881 882 /* void glDepthRangef ( GLclampf zNear, GLclampf zFar ) */ 883 static void 884 android_glDepthRangef__FF 885 (JNIEnv *_env, jobject _this, jfloat zNear, jfloat zFar) { 886 glDepthRangef( 887 (GLclampf)zNear, 888 (GLclampf)zFar 889 ); 890 } 891 892 /* void glDetachShader ( GLuint program, GLuint shader ) */ 893 static void 894 android_glDetachShader__II 895 (JNIEnv *_env, jobject _this, jint program, jint shader) { 896 glDetachShader( 897 (GLuint)program, 898 (GLuint)shader 899 ); 900 } 901 902 /* void glDisable ( GLenum cap ) */ 903 static void 904 android_glDisable__I 905 (JNIEnv *_env, jobject _this, jint cap) { 906 glDisable( 907 (GLenum)cap 908 ); 909 } 910 911 /* void glDisableVertexAttribArray ( GLuint index ) */ 912 static void 913 android_glDisableVertexAttribArray__I 914 (JNIEnv *_env, jobject _this, jint index) { 915 glDisableVertexAttribArray( 916 (GLuint)index 917 ); 918 } 919 920 /* void glDrawArrays ( GLenum mode, GLint first, GLsizei count ) */ 921 static void 922 android_glDrawArrays__III 923 (JNIEnv *_env, jobject _this, jint mode, jint first, jint count) { 924 glDrawArrays( 925 (GLenum)mode, 926 (GLint)first, 927 (GLsizei)count 928 ); 929 } 930 931 /* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, GLint offset ) */ 932 static void 933 android_glDrawElements__IIII 934 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint offset) { 935 jint _exception = 0; 936 const char * _exceptionType; 937 const char * _exceptionMessage; 938 glDrawElements( 939 (GLenum)mode, 940 (GLsizei)count, 941 (GLenum)type, 942 (const GLvoid *)offset 943 ); 944 if (_exception) { 945 jniThrowException(_env, _exceptionType, _exceptionMessage); 946 } 947 } 948 949 /* void glDrawElements ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices ) */ 950 static void 951 android_glDrawElements__IIILjava_nio_Buffer_2 952 (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf) { 953 jint _exception = 0; 954 const char * _exceptionType; 955 const char * _exceptionMessage; 956 jarray _array = (jarray) 0; 957 jint _bufferOffset = (jint) 0; 958 jint _remaining; 959 GLvoid *indices = (GLvoid *) 0; 960 961 indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset); 962 if (_remaining < count) { 963 _exception = 1; 964 _exceptionType = "java/lang/ArrayIndexOutOfBoundsException"; 965 _exceptionMessage = "remaining() < count < needed"; 966 goto exit; 967 } 968 if (indices == NULL) { 969 char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 970 indices = (GLvoid *) (_indicesBase + _bufferOffset); 971 } 972 glDrawElements( 973 (GLenum)mode, 974 (GLsizei)count, 975 (GLenum)type, 976 (GLvoid *)indices 977 ); 978 979 exit: 980 if (_array) { 981 releasePointer(_env, _array, indices, JNI_FALSE); 982 } 983 if (_exception) { 984 jniThrowException(_env, _exceptionType, _exceptionMessage); 985 } 986 } 987 988 /* void glEnable ( GLenum cap ) */ 989 static void 990 android_glEnable__I 991 (JNIEnv *_env, jobject _this, jint cap) { 992 glEnable( 993 (GLenum)cap 994 ); 995 } 996 997 /* void glEnableVertexAttribArray ( GLuint index ) */ 998 static void 999 android_glEnableVertexAttribArray__I 1000 (JNIEnv *_env, jobject _this, jint index) { 1001 glEnableVertexAttribArray( 1002 (GLuint)index 1003 ); 1004 } 1005 1006 /* void glFinish ( void ) */ 1007 static void 1008 android_glFinish__ 1009 (JNIEnv *_env, jobject _this) { 1010 glFinish(); 1011 } 1012 1013 /* void glFlush ( void ) */ 1014 static void 1015 android_glFlush__ 1016 (JNIEnv *_env, jobject _this) { 1017 glFlush(); 1018 } 1019 1020 /* void glFramebufferRenderbuffer ( GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer ) */ 1021 static void 1022 android_glFramebufferRenderbuffer__IIII 1023 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint renderbuffertarget, jint renderbuffer) { 1024 glFramebufferRenderbuffer( 1025 (GLenum)target, 1026 (GLenum)attachment, 1027 (GLenum)renderbuffertarget, 1028 (GLuint)renderbuffer 1029 ); 1030 } 1031 1032 /* void glFramebufferTexture2D ( GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level ) */ 1033 static void 1034 android_glFramebufferTexture2D__IIIII 1035 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint textarget, jint texture, jint level) { 1036 glFramebufferTexture2D( 1037 (GLenum)target, 1038 (GLenum)attachment, 1039 (GLenum)textarget, 1040 (GLuint)texture, 1041 (GLint)level 1042 ); 1043 } 1044 1045 /* void glFrontFace ( GLenum mode ) */ 1046 static void 1047 android_glFrontFace__I 1048 (JNIEnv *_env, jobject _this, jint mode) { 1049 glFrontFace( 1050 (GLenum)mode 1051 ); 1052 } 1053 1054 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 1055 static void 1056 android_glGenBuffers__I_3II 1057 (JNIEnv *_env, jobject _this, jint n, jintArray buffers_ref, jint offset) { 1058 jint _exception = 0; 1059 const char * _exceptionType; 1060 const char * _exceptionMessage; 1061 GLuint *buffers_base = (GLuint *) 0; 1062 jint _remaining; 1063 GLuint *buffers = (GLuint *) 0; 1064 1065 if (!buffers_ref) { 1066 _exception = 1; 1067 _exceptionType = "java/lang/IllegalArgumentException"; 1068 _exceptionMessage = "buffers == null"; 1069 goto exit; 1070 } 1071 if (offset < 0) { 1072 _exception = 1; 1073 _exceptionType = "java/lang/IllegalArgumentException"; 1074 _exceptionMessage = "offset < 0"; 1075 goto exit; 1076 } 1077 _remaining = _env->GetArrayLength(buffers_ref) - offset; 1078 if (_remaining < n) { 1079 _exception = 1; 1080 _exceptionType = "java/lang/IllegalArgumentException"; 1081 _exceptionMessage = "length - offset < n < needed"; 1082 goto exit; 1083 } 1084 buffers_base = (GLuint *) 1085 _env->GetPrimitiveArrayCritical(buffers_ref, (jboolean *)0); 1086 buffers = buffers_base + offset; 1087 1088 glGenBuffers( 1089 (GLsizei)n, 1090 (GLuint *)buffers 1091 ); 1092 1093 exit: 1094 if (buffers_base) { 1095 _env->ReleasePrimitiveArrayCritical(buffers_ref, buffers_base, 1096 _exception ? JNI_ABORT: 0); 1097 } 1098 if (_exception) { 1099 jniThrowException(_env, _exceptionType, _exceptionMessage); 1100 } 1101 } 1102 1103 /* void glGenBuffers ( GLsizei n, GLuint *buffers ) */ 1104 static void 1105 android_glGenBuffers__ILjava_nio_IntBuffer_2 1106 (JNIEnv *_env, jobject _this, jint n, jobject buffers_buf) { 1107 jint _exception = 0; 1108 const char * _exceptionType; 1109 const char * _exceptionMessage; 1110 jarray _array = (jarray) 0; 1111 jint _bufferOffset = (jint) 0; 1112 jint _remaining; 1113 GLuint *buffers = (GLuint *) 0; 1114 1115 buffers = (GLuint *)getPointer(_env, buffers_buf, &_array, &_remaining, &_bufferOffset); 1116 if (_remaining < n) { 1117 _exception = 1; 1118 _exceptionType = "java/lang/IllegalArgumentException"; 1119 _exceptionMessage = "remaining() < n < needed"; 1120 goto exit; 1121 } 1122 if (buffers == NULL) { 1123 char * _buffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 1124 buffers = (GLuint *) (_buffersBase + _bufferOffset); 1125 } 1126 glGenBuffers( 1127 (GLsizei)n, 1128 (GLuint *)buffers 1129 ); 1130 1131 exit: 1132 if (_array) { 1133 releasePointer(_env, _array, buffers, _exception ? JNI_FALSE : JNI_TRUE); 1134 } 1135 if (_exception) { 1136 jniThrowException(_env, _exceptionType, _exceptionMessage); 1137 } 1138 } 1139 1140 /* void glGenerateMipmap ( GLenum target ) */ 1141 static void 1142 android_glGenerateMipmap__I 1143 (JNIEnv *_env, jobject _this, jint target) { 1144 glGenerateMipmap( 1145 (GLenum)target 1146 ); 1147 } 1148 1149 /* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */ 1150 static void 1151 android_glGenFramebuffers__I_3II 1152 (JNIEnv *_env, jobject _this, jint n, jintArray framebuffers_ref, jint offset) { 1153 jint _exception = 0; 1154 const char * _exceptionType; 1155 const char * _exceptionMessage; 1156 GLuint *framebuffers_base = (GLuint *) 0; 1157 jint _remaining; 1158 GLuint *framebuffers = (GLuint *) 0; 1159 1160 if (!framebuffers_ref) { 1161 _exception = 1; 1162 _exceptionType = "java/lang/IllegalArgumentException"; 1163 _exceptionMessage = "framebuffers == null"; 1164 goto exit; 1165 } 1166 if (offset < 0) { 1167 _exception = 1; 1168 _exceptionType = "java/lang/IllegalArgumentException"; 1169 _exceptionMessage = "offset < 0"; 1170 goto exit; 1171 } 1172 _remaining = _env->GetArrayLength(framebuffers_ref) - offset; 1173 framebuffers_base = (GLuint *) 1174 _env->GetPrimitiveArrayCritical(framebuffers_ref, (jboolean *)0); 1175 framebuffers = framebuffers_base + offset; 1176 1177 glGenFramebuffers( 1178 (GLsizei)n, 1179 (GLuint *)framebuffers 1180 ); 1181 1182 exit: 1183 if (framebuffers_base) { 1184 _env->ReleasePrimitiveArrayCritical(framebuffers_ref, framebuffers_base, 1185 _exception ? JNI_ABORT: 0); 1186 } 1187 if (_exception) { 1188 jniThrowException(_env, _exceptionType, _exceptionMessage); 1189 } 1190 } 1191 1192 /* void glGenFramebuffers ( GLsizei n, GLuint *framebuffers ) */ 1193 static void 1194 android_glGenFramebuffers__ILjava_nio_IntBuffer_2 1195 (JNIEnv *_env, jobject _this, jint n, jobject framebuffers_buf) { 1196 jarray _array = (jarray) 0; 1197 jint _bufferOffset = (jint) 0; 1198 jint _remaining; 1199 GLuint *framebuffers = (GLuint *) 0; 1200 1201 framebuffers = (GLuint *)getPointer(_env, framebuffers_buf, &_array, &_remaining, &_bufferOffset); 1202 if (framebuffers == NULL) { 1203 char * _framebuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 1204 framebuffers = (GLuint *) (_framebuffersBase + _bufferOffset); 1205 } 1206 glGenFramebuffers( 1207 (GLsizei)n, 1208 (GLuint *)framebuffers 1209 ); 1210 if (_array) { 1211 releasePointer(_env, _array, framebuffers, JNI_TRUE); 1212 } 1213 } 1214 1215 /* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */ 1216 static void 1217 android_glGenRenderbuffers__I_3II 1218 (JNIEnv *_env, jobject _this, jint n, jintArray renderbuffers_ref, jint offset) { 1219 jint _exception = 0; 1220 const char * _exceptionType; 1221 const char * _exceptionMessage; 1222 GLuint *renderbuffers_base = (GLuint *) 0; 1223 jint _remaining; 1224 GLuint *renderbuffers = (GLuint *) 0; 1225 1226 if (!renderbuffers_ref) { 1227 _exception = 1; 1228 _exceptionType = "java/lang/IllegalArgumentException"; 1229 _exceptionMessage = "renderbuffers == null"; 1230 goto exit; 1231 } 1232 if (offset < 0) { 1233 _exception = 1; 1234 _exceptionType = "java/lang/IllegalArgumentException"; 1235 _exceptionMessage = "offset < 0"; 1236 goto exit; 1237 } 1238 _remaining = _env->GetArrayLength(renderbuffers_ref) - offset; 1239 renderbuffers_base = (GLuint *) 1240 _env->GetPrimitiveArrayCritical(renderbuffers_ref, (jboolean *)0); 1241 renderbuffers = renderbuffers_base + offset; 1242 1243 glGenRenderbuffers( 1244 (GLsizei)n, 1245 (GLuint *)renderbuffers 1246 ); 1247 1248 exit: 1249 if (renderbuffers_base) { 1250 _env->ReleasePrimitiveArrayCritical(renderbuffers_ref, renderbuffers_base, 1251 _exception ? JNI_ABORT: 0); 1252 } 1253 if (_exception) { 1254 jniThrowException(_env, _exceptionType, _exceptionMessage); 1255 } 1256 } 1257 1258 /* void glGenRenderbuffers ( GLsizei n, GLuint *renderbuffers ) */ 1259 static void 1260 android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 1261 (JNIEnv *_env, jobject _this, jint n, jobject renderbuffers_buf) { 1262 jarray _array = (jarray) 0; 1263 jint _bufferOffset = (jint) 0; 1264 jint _remaining; 1265 GLuint *renderbuffers = (GLuint *) 0; 1266 1267 renderbuffers = (GLuint *)getPointer(_env, renderbuffers_buf, &_array, &_remaining, &_bufferOffset); 1268 if (renderbuffers == NULL) { 1269 char * _renderbuffersBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 1270 renderbuffers = (GLuint *) (_renderbuffersBase + _bufferOffset); 1271 } 1272 glGenRenderbuffers( 1273 (GLsizei)n, 1274 (GLuint *)renderbuffers 1275 ); 1276 if (_array) { 1277 releasePointer(_env, _array, renderbuffers, JNI_TRUE); 1278 } 1279 } 1280 1281 /* void glGenTextures ( GLsizei n, GLuint *textures ) */ 1282 static void 1283 android_glGenTextures__I_3II 1284 (JNIEnv *_env, jobject _this, jint n, jintArray textures_ref, jint offset) { 1285 jint _exception = 0; 1286 const char * _exceptionType; 1287 const char * _exceptionMessage; 1288 GLuint *textures_base = (GLuint *) 0; 1289 jint _remaining; 1290 GLuint *textures = (GLuint *) 0; 1291 1292 if (!textures_ref) { 1293 _exception = 1; 1294 _exceptionType = "java/lang/IllegalArgumentException"; 1295 _exceptionMessage = "textures == null"; 1296 goto exit; 1297 } 1298 if (offset < 0) { 1299 _exception = 1; 1300 _exceptionType = "java/lang/IllegalArgumentException"; 1301 _exceptionMessage = "offset < 0"; 1302 goto exit; 1303 } 1304 _remaining = _env->GetArrayLength(textures_ref) - offset; 1305 if (_remaining < n) { 1306 _exception = 1; 1307 _exceptionType = "java/lang/IllegalArgumentException"; 1308 _exceptionMessage = "length - offset < n < needed"; 1309 goto exit; 1310 } 1311 textures_base = (GLuint *) 1312 _env->GetPrimitiveArrayCritical(textures_ref, (jboolean *)0); 1313 textures = textures_base + offset; 1314 1315 glGenTextures( 1316 (GLsizei)n, 1317 (GLuint *)textures 1318 ); 1319 1320 exit: 1321 if (textures_base) { 1322 _env->ReleasePrimitiveArrayCritical(textures_ref, textures_base, 1323 _exception ? JNI_ABORT: 0); 1324 } 1325 if (_exception) { 1326 jniThrowException(_env, _exceptionType, _exceptionMessage); 1327 } 1328 } 1329 1330 /* void glGenTextures ( GLsizei n, GLuint *textures ) */ 1331 static void 1332 android_glGenTextures__ILjava_nio_IntBuffer_2 1333 (JNIEnv *_env, jobject _this, jint n, jobject textures_buf) { 1334 jint _exception = 0; 1335 const char * _exceptionType; 1336 const char * _exceptionMessage; 1337 jarray _array = (jarray) 0; 1338 jint _bufferOffset = (jint) 0; 1339 jint _remaining; 1340 GLuint *textures = (GLuint *) 0; 1341 1342 textures = (GLuint *)getPointer(_env, textures_buf, &_array, &_remaining, &_bufferOffset); 1343 if (_remaining < n) { 1344 _exception = 1; 1345 _exceptionType = "java/lang/IllegalArgumentException"; 1346 _exceptionMessage = "remaining() < n < needed"; 1347 goto exit; 1348 } 1349 if (textures == NULL) { 1350 char * _texturesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 1351 textures = (GLuint *) (_texturesBase + _bufferOffset); 1352 } 1353 glGenTextures( 1354 (GLsizei)n, 1355 (GLuint *)textures 1356 ); 1357 1358 exit: 1359 if (_array) { 1360 releasePointer(_env, _array, textures, _exception ? JNI_FALSE : JNI_TRUE); 1361 } 1362 if (_exception) { 1363 jniThrowException(_env, _exceptionType, _exceptionMessage); 1364 } 1365 } 1366 1367 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1368 static void 1369 android_glGetActiveAttrib__III_3II_3II_3II_3BI 1370 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) { 1371 jint _exception = 0; 1372 const char * _exceptionType; 1373 const char * _exceptionMessage; 1374 GLsizei *length_base = (GLsizei *) 0; 1375 jint _lengthRemaining; 1376 GLsizei *length = (GLsizei *) 0; 1377 GLint *size_base = (GLint *) 0; 1378 jint _sizeRemaining; 1379 GLint *size = (GLint *) 0; 1380 GLenum *type_base = (GLenum *) 0; 1381 jint _typeRemaining; 1382 GLenum *type = (GLenum *) 0; 1383 char *name_base = (char *) 0; 1384 jint _nameRemaining; 1385 char *name = (char *) 0; 1386 1387 if (!length_ref) { 1388 _exception = 1; 1389 _exceptionType = "java/lang/IllegalArgumentException"; 1390 _exceptionMessage = "length == null"; 1391 goto exit; 1392 } 1393 if (lengthOffset < 0) { 1394 _exception = 1; 1395 _exceptionType = "java/lang/IllegalArgumentException"; 1396 _exceptionMessage = "lengthOffset < 0"; 1397 goto exit; 1398 } 1399 _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 1400 length_base = (GLsizei *) 1401 _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 1402 length = length_base + lengthOffset; 1403 1404 if (!size_ref) { 1405 _exception = 1; 1406 _exceptionType = "java/lang/IllegalArgumentException"; 1407 _exceptionMessage = "size == null"; 1408 goto exit; 1409 } 1410 if (sizeOffset < 0) { 1411 _exception = 1; 1412 _exceptionType = "java/lang/IllegalArgumentException"; 1413 _exceptionMessage = "sizeOffset < 0"; 1414 goto exit; 1415 } 1416 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1417 size_base = (GLint *) 1418 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1419 size = size_base + sizeOffset; 1420 1421 if (!type_ref) { 1422 _exception = 1; 1423 _exceptionType = "java/lang/IllegalArgumentException"; 1424 _exceptionMessage = "type == null"; 1425 goto exit; 1426 } 1427 if (typeOffset < 0) { 1428 _exception = 1; 1429 _exceptionType = "java/lang/IllegalArgumentException"; 1430 _exceptionMessage = "typeOffset < 0"; 1431 goto exit; 1432 } 1433 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1434 type_base = (GLenum *) 1435 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1436 type = type_base + typeOffset; 1437 1438 if (!name_ref) { 1439 _exception = 1; 1440 _exceptionType = "java/lang/IllegalArgumentException"; 1441 _exceptionMessage = "name == null"; 1442 goto exit; 1443 } 1444 if (nameOffset < 0) { 1445 _exception = 1; 1446 _exceptionType = "java/lang/IllegalArgumentException"; 1447 _exceptionMessage = "nameOffset < 0"; 1448 goto exit; 1449 } 1450 _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; 1451 name_base = (char *) 1452 _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); 1453 name = name_base + nameOffset; 1454 1455 glGetActiveAttrib( 1456 (GLuint)program, 1457 (GLuint)index, 1458 (GLsizei)bufsize, 1459 (GLsizei *)length, 1460 (GLint *)size, 1461 (GLenum *)type, 1462 (char *)name 1463 ); 1464 1465 exit: 1466 if (name_base) { 1467 _env->ReleasePrimitiveArrayCritical(name_ref, name_base, 1468 _exception ? JNI_ABORT: 0); 1469 } 1470 if (type_base) { 1471 _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1472 _exception ? JNI_ABORT: 0); 1473 } 1474 if (size_base) { 1475 _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1476 _exception ? JNI_ABORT: 0); 1477 } 1478 if (length_base) { 1479 _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 1480 _exception ? JNI_ABORT: 0); 1481 } 1482 if (_exception) { 1483 jniThrowException(_env, _exceptionType, _exceptionMessage); 1484 } 1485 } 1486 1487 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1488 static void 1489 android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B 1490 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { 1491 jarray _lengthArray = (jarray) 0; 1492 jint _lengthBufferOffset = (jint) 0; 1493 jarray _sizeArray = (jarray) 0; 1494 jint _sizeBufferOffset = (jint) 0; 1495 jarray _typeArray = (jarray) 0; 1496 jint _typeBufferOffset = (jint) 0; 1497 jint _lengthRemaining; 1498 GLsizei *length = (GLsizei *) 0; 1499 jint _sizeRemaining; 1500 GLint *size = (GLint *) 0; 1501 jint _typeRemaining; 1502 GLenum *type = (GLenum *) 0; 1503 1504 length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); 1505 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1506 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1507 if (length == NULL) { 1508 char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); 1509 length = (GLsizei *) (_lengthBase + _lengthBufferOffset); 1510 } 1511 if (size == NULL) { 1512 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1513 size = (GLint *) (_sizeBase + _sizeBufferOffset); 1514 } 1515 if (type == NULL) { 1516 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 1517 type = (GLenum *) (_typeBase + _typeBufferOffset); 1518 } 1519 glGetActiveAttrib( 1520 (GLuint)program, 1521 (GLuint)index, 1522 (GLsizei)bufsize, 1523 (GLsizei *)length, 1524 (GLint *)size, 1525 (GLenum *)type, 1526 (char *)name 1527 ); 1528 if (_typeArray) { 1529 releasePointer(_env, _typeArray, type, JNI_TRUE); 1530 } 1531 if (_sizeArray) { 1532 releasePointer(_env, _sizeArray, size, JNI_TRUE); 1533 } 1534 if (_lengthArray) { 1535 releasePointer(_env, _lengthArray, length, JNI_TRUE); 1536 } 1537 } 1538 1539 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1540 static jstring 1541 android_glGetActiveAttrib1 1542 (JNIEnv *_env, jobject _this, jint program, jint index, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset) { 1543 jint _exception = 0; 1544 const char * _exceptionType; 1545 const char * _exceptionMessage; 1546 GLint *size_base = (GLint *) 0; 1547 jint _sizeRemaining; 1548 GLint *size = (GLint *) 0; 1549 GLenum *type_base = (GLenum *) 0; 1550 jint _typeRemaining; 1551 GLenum *type = (GLenum *) 0; 1552 1553 jstring result = 0; 1554 1555 GLint len = 0; 1556 glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len); 1557 if (!len) { 1558 return _env->NewStringUTF(""); 1559 } 1560 char* buf = (char*) malloc(len); 1561 1562 if (buf == NULL) { 1563 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1564 return NULL; 1565 } 1566 if (!size_ref) { 1567 _exception = 1; 1568 _exceptionType = "java/lang/IllegalArgumentException"; 1569 _exceptionMessage = "size == null"; 1570 goto exit; 1571 } 1572 if (sizeOffset < 0) { 1573 _exception = 1; 1574 _exceptionType = "java/lang/IllegalArgumentException"; 1575 _exceptionMessage = "sizeOffset < 0"; 1576 goto exit; 1577 } 1578 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1579 size_base = (GLint *) 1580 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1581 size = size_base + sizeOffset; 1582 1583 if (!type_ref) { 1584 _exception = 1; 1585 _exceptionType = "java/lang/IllegalArgumentException"; 1586 _exceptionMessage = "type == null"; 1587 goto exit; 1588 } 1589 if (typeOffset < 0) { 1590 _exception = 1; 1591 _exceptionType = "java/lang/IllegalArgumentException"; 1592 _exceptionMessage = "typeOffset < 0"; 1593 goto exit; 1594 } 1595 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1596 type_base = (GLenum *) 1597 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1598 type = type_base + typeOffset; 1599 1600 glGetActiveAttrib( 1601 (GLuint)program, 1602 (GLuint)index, 1603 (GLsizei)len, 1604 NULL, 1605 (GLint *)size, 1606 (GLenum *)type, 1607 (char *)buf 1608 ); 1609 exit: 1610 if (type_base) { 1611 _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1612 _exception ? JNI_ABORT: 0); 1613 } 1614 if (size_base) { 1615 _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1616 _exception ? JNI_ABORT: 0); 1617 } 1618 if (_exception != 1) { 1619 result = _env->NewStringUTF(buf); 1620 } 1621 if (buf) { 1622 free(buf); 1623 } 1624 if (_exception) { 1625 jniThrowException(_env, _exceptionType, _exceptionMessage); 1626 } 1627 if (result == 0) { 1628 result = _env->NewStringUTF(""); 1629 } 1630 1631 return result; 1632 } 1633 1634 /* void glGetActiveAttrib ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1635 static jstring 1636 android_glGetActiveAttrib2 1637 (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { 1638 jarray _sizeArray = (jarray) 0; 1639 jint _sizeBufferOffset = (jint) 0; 1640 jarray _typeArray = (jarray) 0; 1641 jint _typeBufferOffset = (jint) 0; 1642 jint _lengthRemaining; 1643 GLsizei *length = (GLsizei *) 0; 1644 jint _sizeRemaining; 1645 GLint *size = (GLint *) 0; 1646 jint _typeRemaining; 1647 GLenum *type = (GLenum *) 0; 1648 1649 jstring result = 0; 1650 1651 GLint len = 0; 1652 glGetProgramiv((GLuint)program, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, &len); 1653 if (!len) { 1654 return _env->NewStringUTF(""); 1655 } 1656 char* buf = (char*) malloc(len); 1657 1658 if (buf == NULL) { 1659 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1660 return NULL; 1661 } 1662 1663 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1664 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1665 if (size == NULL) { 1666 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1667 size = (GLint *) (_sizeBase + _sizeBufferOffset); 1668 } 1669 if (type == NULL) { 1670 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 1671 type = (GLenum *) (_typeBase + _typeBufferOffset); 1672 } 1673 glGetActiveAttrib( 1674 (GLuint)program, 1675 (GLuint)index, 1676 (GLsizei)len, 1677 NULL, 1678 (GLint *)size, 1679 (GLenum *)type, 1680 (char *)buf 1681 ); 1682 1683 if (_typeArray) { 1684 releasePointer(_env, _typeArray, type, JNI_TRUE); 1685 } 1686 if (_sizeArray) { 1687 releasePointer(_env, _sizeArray, size, JNI_TRUE); 1688 } 1689 result = _env->NewStringUTF(buf); 1690 if (buf) { 1691 free(buf); 1692 } 1693 return result; 1694 } 1695 /* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1696 static void 1697 android_glGetActiveUniform__III_3II_3II_3II_3BI 1698 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jintArray length_ref, jint lengthOffset, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset, jbyteArray name_ref, jint nameOffset) { 1699 jint _exception = 0; 1700 const char * _exceptionType; 1701 const char * _exceptionMessage; 1702 GLsizei *length_base = (GLsizei *) 0; 1703 jint _lengthRemaining; 1704 GLsizei *length = (GLsizei *) 0; 1705 GLint *size_base = (GLint *) 0; 1706 jint _sizeRemaining; 1707 GLint *size = (GLint *) 0; 1708 GLenum *type_base = (GLenum *) 0; 1709 jint _typeRemaining; 1710 GLenum *type = (GLenum *) 0; 1711 char *name_base = (char *) 0; 1712 jint _nameRemaining; 1713 char *name = (char *) 0; 1714 1715 if (!length_ref) { 1716 _exception = 1; 1717 _exceptionType = "java/lang/IllegalArgumentException"; 1718 _exceptionMessage = "length == null"; 1719 goto exit; 1720 } 1721 if (lengthOffset < 0) { 1722 _exception = 1; 1723 _exceptionType = "java/lang/IllegalArgumentException"; 1724 _exceptionMessage = "lengthOffset < 0"; 1725 goto exit; 1726 } 1727 _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 1728 length_base = (GLsizei *) 1729 _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 1730 length = length_base + lengthOffset; 1731 1732 if (!size_ref) { 1733 _exception = 1; 1734 _exceptionType = "java/lang/IllegalArgumentException"; 1735 _exceptionMessage = "size == null"; 1736 goto exit; 1737 } 1738 if (sizeOffset < 0) { 1739 _exception = 1; 1740 _exceptionType = "java/lang/IllegalArgumentException"; 1741 _exceptionMessage = "sizeOffset < 0"; 1742 goto exit; 1743 } 1744 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1745 size_base = (GLint *) 1746 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1747 size = size_base + sizeOffset; 1748 1749 if (!type_ref) { 1750 _exception = 1; 1751 _exceptionType = "java/lang/IllegalArgumentException"; 1752 _exceptionMessage = "type == null"; 1753 goto exit; 1754 } 1755 if (typeOffset < 0) { 1756 _exception = 1; 1757 _exceptionType = "java/lang/IllegalArgumentException"; 1758 _exceptionMessage = "typeOffset < 0"; 1759 goto exit; 1760 } 1761 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1762 type_base = (GLenum *) 1763 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1764 type = type_base + typeOffset; 1765 1766 if (!name_ref) { 1767 _exception = 1; 1768 _exceptionType = "java/lang/IllegalArgumentException"; 1769 _exceptionMessage = "name == null"; 1770 goto exit; 1771 } 1772 if (nameOffset < 0) { 1773 _exception = 1; 1774 _exceptionType = "java/lang/IllegalArgumentException"; 1775 _exceptionMessage = "nameOffset < 0"; 1776 goto exit; 1777 } 1778 _nameRemaining = _env->GetArrayLength(name_ref) - nameOffset; 1779 name_base = (char *) 1780 _env->GetPrimitiveArrayCritical(name_ref, (jboolean *)0); 1781 name = name_base + nameOffset; 1782 1783 glGetActiveUniform( 1784 (GLuint)program, 1785 (GLuint)index, 1786 (GLsizei)bufsize, 1787 (GLsizei *)length, 1788 (GLint *)size, 1789 (GLenum *)type, 1790 (char *)name 1791 ); 1792 1793 exit: 1794 if (name_base) { 1795 _env->ReleasePrimitiveArrayCritical(name_ref, name_base, 1796 _exception ? JNI_ABORT: 0); 1797 } 1798 if (type_base) { 1799 _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1800 _exception ? JNI_ABORT: 0); 1801 } 1802 if (size_base) { 1803 _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1804 _exception ? JNI_ABORT: 0); 1805 } 1806 if (length_base) { 1807 _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 1808 _exception ? JNI_ABORT: 0); 1809 } 1810 if (_exception) { 1811 jniThrowException(_env, _exceptionType, _exceptionMessage); 1812 } 1813 } 1814 1815 /* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1816 static void 1817 android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B 1818 (JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) { 1819 jarray _lengthArray = (jarray) 0; 1820 jint _lengthBufferOffset = (jint) 0; 1821 jarray _sizeArray = (jarray) 0; 1822 jint _sizeBufferOffset = (jint) 0; 1823 jarray _typeArray = (jarray) 0; 1824 jint _typeBufferOffset = (jint) 0; 1825 jint _lengthRemaining; 1826 GLsizei *length = (GLsizei *) 0; 1827 jint _sizeRemaining; 1828 GLint *size = (GLint *) 0; 1829 jint _typeRemaining; 1830 GLenum *type = (GLenum *) 0; 1831 1832 length = (GLsizei *)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset); 1833 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1834 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1835 if (length == NULL) { 1836 char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean *) 0); 1837 length = (GLsizei *) (_lengthBase + _lengthBufferOffset); 1838 } 1839 if (size == NULL) { 1840 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1841 size = (GLint *) (_sizeBase + _sizeBufferOffset); 1842 } 1843 if (type == NULL) { 1844 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 1845 type = (GLenum *) (_typeBase + _typeBufferOffset); 1846 } 1847 glGetActiveUniform( 1848 (GLuint)program, 1849 (GLuint)index, 1850 (GLsizei)bufsize, 1851 (GLsizei *)length, 1852 (GLint *)size, 1853 (GLenum *)type, 1854 (char *)name 1855 ); 1856 if (_typeArray) { 1857 releasePointer(_env, _typeArray, type, JNI_TRUE); 1858 } 1859 if (_sizeArray) { 1860 releasePointer(_env, _sizeArray, size, JNI_TRUE); 1861 } 1862 if (_lengthArray) { 1863 releasePointer(_env, _lengthArray, length, JNI_TRUE); 1864 } 1865 } 1866 1867 /* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1868 static jstring 1869 android_glGetActiveUniform1 1870 (JNIEnv *_env, jobject _this, jint program, jint index, jintArray size_ref, jint sizeOffset, jintArray type_ref, jint typeOffset) { 1871 jint _exception = 0; 1872 const char * _exceptionType; 1873 const char * _exceptionMessage; 1874 1875 GLint *size_base = (GLint *) 0; 1876 jint _sizeRemaining; 1877 GLint *size = (GLint *) 0; 1878 1879 GLenum *type_base = (GLenum *) 0; 1880 jint _typeRemaining; 1881 GLenum *type = (GLenum *) 0; 1882 1883 jstring result = 0; 1884 1885 GLint len = 0; 1886 glGetProgramiv((GLuint)program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &len); 1887 if (!len) { 1888 return _env->NewStringUTF(""); 1889 } 1890 char* buf = (char*) malloc(len); 1891 1892 if (buf == NULL) { 1893 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1894 return NULL; 1895 } 1896 1897 if (!size_ref) { 1898 _exception = 1; 1899 _exceptionType = "java/lang/IllegalArgumentException"; 1900 _exceptionMessage = "size == null"; 1901 goto exit; 1902 } 1903 if (sizeOffset < 0) { 1904 _exception = 1; 1905 _exceptionType = "java/lang/IllegalArgumentException"; 1906 _exceptionMessage = "sizeOffset < 0"; 1907 goto exit; 1908 } 1909 _sizeRemaining = _env->GetArrayLength(size_ref) - sizeOffset; 1910 size_base = (GLint *) 1911 _env->GetPrimitiveArrayCritical(size_ref, (jboolean *)0); 1912 size = size_base + sizeOffset; 1913 1914 if (!type_ref) { 1915 _exception = 1; 1916 _exceptionType = "java/lang/IllegalArgumentException"; 1917 _exceptionMessage = "type == null"; 1918 goto exit; 1919 } 1920 if (typeOffset < 0) { 1921 _exception = 1; 1922 _exceptionType = "java/lang/IllegalArgumentException"; 1923 _exceptionMessage = "typeOffset < 0"; 1924 goto exit; 1925 } 1926 _typeRemaining = _env->GetArrayLength(type_ref) - typeOffset; 1927 type_base = (GLenum *) 1928 _env->GetPrimitiveArrayCritical(type_ref, (jboolean *)0); 1929 type = type_base + typeOffset; 1930 1931 glGetActiveUniform( 1932 (GLuint)program, 1933 (GLuint)index, 1934 (GLsizei)len, 1935 NULL, 1936 (GLint *)size, 1937 (GLenum *)type, 1938 (char *)buf 1939 ); 1940 1941 exit: 1942 if (type_base) { 1943 _env->ReleasePrimitiveArrayCritical(type_ref, type_base, 1944 _exception ? JNI_ABORT: 0); 1945 } 1946 if (size_base) { 1947 _env->ReleasePrimitiveArrayCritical(size_ref, size_base, 1948 _exception ? JNI_ABORT: 0); 1949 } 1950 if (_exception != 1) { 1951 result = _env->NewStringUTF(buf); 1952 } 1953 if (buf) { 1954 free(buf); 1955 } 1956 if (_exception) { 1957 jniThrowException(_env, _exceptionType, _exceptionMessage); 1958 } 1959 if (result == 0) { 1960 result = _env->NewStringUTF(""); 1961 } 1962 return result; 1963 } 1964 1965 /* void glGetActiveUniform ( GLuint program, GLuint index, GLsizei bufsize, GLsizei *length, GLint *size, GLenum *type, char *name ) */ 1966 static jstring 1967 android_glGetActiveUniform2 1968 (JNIEnv *_env, jobject _this, jint program, jint index, jobject size_buf, jobject type_buf) { 1969 jarray _sizeArray = (jarray) 0; 1970 jint _sizeBufferOffset = (jint) 0; 1971 jarray _typeArray = (jarray) 0; 1972 jint _typeBufferOffset = (jint) 0; 1973 jint _sizeRemaining; 1974 GLint *size = (GLint *) 0; 1975 jint _typeRemaining; 1976 GLenum *type = (GLenum *) 0; 1977 1978 jstring result = 0; 1979 GLint len = 0; 1980 glGetProgramiv((GLuint)program, GL_ACTIVE_UNIFORM_MAX_LENGTH, &len); 1981 if (!len) { 1982 return _env->NewStringUTF(""); 1983 } 1984 char* buf = (char*) malloc(len); 1985 1986 if (buf == NULL) { 1987 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 1988 return NULL; 1989 } 1990 1991 size = (GLint *)getPointer(_env, size_buf, &_sizeArray, &_sizeRemaining, &_sizeBufferOffset); 1992 type = (GLenum *)getPointer(_env, type_buf, &_typeArray, &_typeRemaining, &_typeBufferOffset); 1993 1994 if (size == NULL) { 1995 char * _sizeBase = (char *)_env->GetPrimitiveArrayCritical(_sizeArray, (jboolean *) 0); 1996 size = (GLint *) (_sizeBase + _sizeBufferOffset); 1997 } 1998 if (type == NULL) { 1999 char * _typeBase = (char *)_env->GetPrimitiveArrayCritical(_typeArray, (jboolean *) 0); 2000 type = (GLenum *) (_typeBase + _typeBufferOffset); 2001 } 2002 glGetActiveUniform( 2003 (GLuint)program, 2004 (GLuint)index, 2005 len, 2006 NULL, 2007 (GLint *)size, 2008 (GLenum *)type, 2009 (char *)buf 2010 ); 2011 2012 if (_typeArray) { 2013 releasePointer(_env, _typeArray, type, JNI_TRUE); 2014 } 2015 if (_sizeArray) { 2016 releasePointer(_env, _sizeArray, size, JNI_TRUE); 2017 } 2018 result = _env->NewStringUTF(buf); 2019 if (buf) { 2020 free(buf); 2021 } 2022 return result; 2023 } 2024 /* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */ 2025 static void 2026 android_glGetAttachedShaders__II_3II_3II 2027 (JNIEnv *_env, jobject _this, jint program, jint maxcount, jintArray count_ref, jint countOffset, jintArray shaders_ref, jint shadersOffset) { 2028 jint _exception = 0; 2029 const char * _exceptionType; 2030 const char * _exceptionMessage; 2031 GLsizei *count_base = (GLsizei *) 0; 2032 jint _countRemaining; 2033 GLsizei *count = (GLsizei *) 0; 2034 GLuint *shaders_base = (GLuint *) 0; 2035 jint _shadersRemaining; 2036 GLuint *shaders = (GLuint *) 0; 2037 2038 if (!count_ref) { 2039 _exception = 1; 2040 _exceptionType = "java/lang/IllegalArgumentException"; 2041 _exceptionMessage = "count == null"; 2042 goto exit; 2043 } 2044 if (countOffset < 0) { 2045 _exception = 1; 2046 _exceptionType = "java/lang/IllegalArgumentException"; 2047 _exceptionMessage = "countOffset < 0"; 2048 goto exit; 2049 } 2050 _countRemaining = _env->GetArrayLength(count_ref) - countOffset; 2051 count_base = (GLsizei *) 2052 _env->GetPrimitiveArrayCritical(count_ref, (jboolean *)0); 2053 count = count_base + countOffset; 2054 2055 if (!shaders_ref) { 2056 _exception = 1; 2057 _exceptionType = "java/lang/IllegalArgumentException"; 2058 _exceptionMessage = "shaders == null"; 2059 goto exit; 2060 } 2061 if (shadersOffset < 0) { 2062 _exception = 1; 2063 _exceptionType = "java/lang/IllegalArgumentException"; 2064 _exceptionMessage = "shadersOffset < 0"; 2065 goto exit; 2066 } 2067 _shadersRemaining = _env->GetArrayLength(shaders_ref) - shadersOffset; 2068 shaders_base = (GLuint *) 2069 _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); 2070 shaders = shaders_base + shadersOffset; 2071 2072 glGetAttachedShaders( 2073 (GLuint)program, 2074 (GLsizei)maxcount, 2075 (GLsizei *)count, 2076 (GLuint *)shaders 2077 ); 2078 2079 exit: 2080 if (shaders_base) { 2081 _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, 2082 _exception ? JNI_ABORT: 0); 2083 } 2084 if (count_base) { 2085 _env->ReleasePrimitiveArrayCritical(count_ref, count_base, 2086 _exception ? JNI_ABORT: 0); 2087 } 2088 if (_exception) { 2089 jniThrowException(_env, _exceptionType, _exceptionMessage); 2090 } 2091 } 2092 2093 /* void glGetAttachedShaders ( GLuint program, GLsizei maxcount, GLsizei *count, GLuint *shaders ) */ 2094 static void 2095 android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 2096 (JNIEnv *_env, jobject _this, jint program, jint maxcount, jobject count_buf, jobject shaders_buf) { 2097 jarray _countArray = (jarray) 0; 2098 jint _countBufferOffset = (jint) 0; 2099 jarray _shadersArray = (jarray) 0; 2100 jint _shadersBufferOffset = (jint) 0; 2101 jint _countRemaining; 2102 GLsizei *count = (GLsizei *) 0; 2103 jint _shadersRemaining; 2104 GLuint *shaders = (GLuint *) 0; 2105 2106 count = (GLsizei *)getPointer(_env, count_buf, &_countArray, &_countRemaining, &_countBufferOffset); 2107 shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); 2108 if (count == NULL) { 2109 char * _countBase = (char *)_env->GetPrimitiveArrayCritical(_countArray, (jboolean *) 0); 2110 count = (GLsizei *) (_countBase + _countBufferOffset); 2111 } 2112 if (shaders == NULL) { 2113 char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); 2114 shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); 2115 } 2116 glGetAttachedShaders( 2117 (GLuint)program, 2118 (GLsizei)maxcount, 2119 (GLsizei *)count, 2120 (GLuint *)shaders 2121 ); 2122 if (_shadersArray) { 2123 releasePointer(_env, _shadersArray, shaders, JNI_TRUE); 2124 } 2125 if (_countArray) { 2126 releasePointer(_env, _countArray, count, JNI_TRUE); 2127 } 2128 } 2129 2130 /* int glGetAttribLocation ( GLuint program, const char *name ) */ 2131 static jint 2132 android_glGetAttribLocation__ILjava_lang_String_2 2133 (JNIEnv *_env, jobject _this, jint program, jstring name) { 2134 jint _exception = 0; 2135 const char * _exceptionType; 2136 const char * _exceptionMessage; 2137 int _returnValue = 0; 2138 const char* _nativename = 0; 2139 2140 if (!name) { 2141 _exceptionType = "java/lang/IllegalArgumentException"; 2142 _exceptionMessage = "name == null"; 2143 goto exit; 2144 } 2145 _nativename = _env->GetStringUTFChars(name, 0); 2146 2147 _returnValue = glGetAttribLocation( 2148 (GLuint)program, 2149 (char *)_nativename 2150 ); 2151 2152 exit: 2153 if (_nativename) { 2154 _env->ReleaseStringUTFChars(name, _nativename); 2155 } 2156 2157 if (_exception) { 2158 jniThrowException(_env, _exceptionType, _exceptionMessage); 2159 } 2160 return _returnValue; 2161 } 2162 2163 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 2164 static void 2165 android_glGetBooleanv__I_3ZI 2166 (JNIEnv *_env, jobject _this, jint pname, jbooleanArray params_ref, jint offset) { 2167 jint _exception = 0; 2168 const char * _exceptionType; 2169 const char * _exceptionMessage; 2170 GLboolean *params_base = (GLboolean *) 0; 2171 jint _remaining; 2172 GLboolean *params = (GLboolean *) 0; 2173 2174 if (!params_ref) { 2175 _exception = 1; 2176 _exceptionType = "java/lang/IllegalArgumentException"; 2177 _exceptionMessage = "params == null"; 2178 goto exit; 2179 } 2180 if (offset < 0) { 2181 _exception = 1; 2182 _exceptionType = "java/lang/IllegalArgumentException"; 2183 _exceptionMessage = "offset < 0"; 2184 goto exit; 2185 } 2186 _remaining = _env->GetArrayLength(params_ref) - offset; 2187 params_base = (GLboolean *) 2188 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2189 params = params_base + offset; 2190 2191 glGetBooleanv( 2192 (GLenum)pname, 2193 (GLboolean *)params 2194 ); 2195 2196 exit: 2197 if (params_base) { 2198 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2199 _exception ? JNI_ABORT: 0); 2200 } 2201 if (_exception) { 2202 jniThrowException(_env, _exceptionType, _exceptionMessage); 2203 } 2204 } 2205 2206 /* void glGetBooleanv ( GLenum pname, GLboolean *params ) */ 2207 static void 2208 android_glGetBooleanv__ILjava_nio_IntBuffer_2 2209 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2210 jarray _array = (jarray) 0; 2211 jint _bufferOffset = (jint) 0; 2212 jint _remaining; 2213 GLboolean *params = (GLboolean *) 0; 2214 2215 params = (GLboolean *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2216 if (params == NULL) { 2217 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 2218 params = (GLboolean *) (_paramsBase + _bufferOffset); 2219 } 2220 glGetBooleanv( 2221 (GLenum)pname, 2222 (GLboolean *)params 2223 ); 2224 if (_array) { 2225 releasePointer(_env, _array, params, JNI_TRUE); 2226 } 2227 } 2228 2229 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 2230 static void 2231 android_glGetBufferParameteriv__II_3II 2232 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 2233 jint _exception = 0; 2234 const char * _exceptionType; 2235 const char * _exceptionMessage; 2236 GLint *params_base = (GLint *) 0; 2237 jint _remaining; 2238 GLint *params = (GLint *) 0; 2239 2240 if (!params_ref) { 2241 _exception = 1; 2242 _exceptionType = "java/lang/IllegalArgumentException"; 2243 _exceptionMessage = "params == null"; 2244 goto exit; 2245 } 2246 if (offset < 0) { 2247 _exception = 1; 2248 _exceptionType = "java/lang/IllegalArgumentException"; 2249 _exceptionMessage = "offset < 0"; 2250 goto exit; 2251 } 2252 _remaining = _env->GetArrayLength(params_ref) - offset; 2253 if (_remaining < 1) { 2254 _exception = 1; 2255 _exceptionType = "java/lang/IllegalArgumentException"; 2256 _exceptionMessage = "length - offset < 1 < needed"; 2257 goto exit; 2258 } 2259 params_base = (GLint *) 2260 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2261 params = params_base + offset; 2262 2263 glGetBufferParameteriv( 2264 (GLenum)target, 2265 (GLenum)pname, 2266 (GLint *)params 2267 ); 2268 2269 exit: 2270 if (params_base) { 2271 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2272 _exception ? JNI_ABORT: 0); 2273 } 2274 if (_exception) { 2275 jniThrowException(_env, _exceptionType, _exceptionMessage); 2276 } 2277 } 2278 2279 /* void glGetBufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 2280 static void 2281 android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 2282 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 2283 jint _exception = 0; 2284 const char * _exceptionType; 2285 const char * _exceptionMessage; 2286 jarray _array = (jarray) 0; 2287 jint _bufferOffset = (jint) 0; 2288 jint _remaining; 2289 GLint *params = (GLint *) 0; 2290 2291 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2292 if (_remaining < 1) { 2293 _exception = 1; 2294 _exceptionType = "java/lang/IllegalArgumentException"; 2295 _exceptionMessage = "remaining() < 1 < needed"; 2296 goto exit; 2297 } 2298 if (params == NULL) { 2299 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 2300 params = (GLint *) (_paramsBase + _bufferOffset); 2301 } 2302 glGetBufferParameteriv( 2303 (GLenum)target, 2304 (GLenum)pname, 2305 (GLint *)params 2306 ); 2307 2308 exit: 2309 if (_array) { 2310 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 2311 } 2312 if (_exception) { 2313 jniThrowException(_env, _exceptionType, _exceptionMessage); 2314 } 2315 } 2316 2317 /* GLenum glGetError ( void ) */ 2318 static jint 2319 android_glGetError__ 2320 (JNIEnv *_env, jobject _this) { 2321 GLenum _returnValue; 2322 _returnValue = glGetError(); 2323 return _returnValue; 2324 } 2325 2326 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 2327 static void 2328 android_glGetFloatv__I_3FI 2329 (JNIEnv *_env, jobject _this, jint pname, jfloatArray params_ref, jint offset) { 2330 jint _exception = 0; 2331 const char * _exceptionType; 2332 const char * _exceptionMessage; 2333 GLfloat *params_base = (GLfloat *) 0; 2334 jint _remaining; 2335 GLfloat *params = (GLfloat *) 0; 2336 2337 if (!params_ref) { 2338 _exception = 1; 2339 _exceptionType = "java/lang/IllegalArgumentException"; 2340 _exceptionMessage = "params == null"; 2341 goto exit; 2342 } 2343 if (offset < 0) { 2344 _exception = 1; 2345 _exceptionType = "java/lang/IllegalArgumentException"; 2346 _exceptionMessage = "offset < 0"; 2347 goto exit; 2348 } 2349 _remaining = _env->GetArrayLength(params_ref) - offset; 2350 params_base = (GLfloat *) 2351 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2352 params = params_base + offset; 2353 2354 glGetFloatv( 2355 (GLenum)pname, 2356 (GLfloat *)params 2357 ); 2358 2359 exit: 2360 if (params_base) { 2361 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2362 _exception ? JNI_ABORT: 0); 2363 } 2364 if (_exception) { 2365 jniThrowException(_env, _exceptionType, _exceptionMessage); 2366 } 2367 } 2368 2369 /* void glGetFloatv ( GLenum pname, GLfloat *params ) */ 2370 static void 2371 android_glGetFloatv__ILjava_nio_FloatBuffer_2 2372 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2373 jarray _array = (jarray) 0; 2374 jint _bufferOffset = (jint) 0; 2375 jint _remaining; 2376 GLfloat *params = (GLfloat *) 0; 2377 2378 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2379 if (params == NULL) { 2380 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 2381 params = (GLfloat *) (_paramsBase + _bufferOffset); 2382 } 2383 glGetFloatv( 2384 (GLenum)pname, 2385 (GLfloat *)params 2386 ); 2387 if (_array) { 2388 releasePointer(_env, _array, params, JNI_TRUE); 2389 } 2390 } 2391 2392 /* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */ 2393 static void 2394 android_glGetFramebufferAttachmentParameteriv__III_3II 2395 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jintArray params_ref, jint offset) { 2396 jint _exception = 0; 2397 const char * _exceptionType; 2398 const char * _exceptionMessage; 2399 GLint *params_base = (GLint *) 0; 2400 jint _remaining; 2401 GLint *params = (GLint *) 0; 2402 2403 if (!params_ref) { 2404 _exception = 1; 2405 _exceptionType = "java/lang/IllegalArgumentException"; 2406 _exceptionMessage = "params == null"; 2407 goto exit; 2408 } 2409 if (offset < 0) { 2410 _exception = 1; 2411 _exceptionType = "java/lang/IllegalArgumentException"; 2412 _exceptionMessage = "offset < 0"; 2413 goto exit; 2414 } 2415 _remaining = _env->GetArrayLength(params_ref) - offset; 2416 params_base = (GLint *) 2417 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2418 params = params_base + offset; 2419 2420 glGetFramebufferAttachmentParameteriv( 2421 (GLenum)target, 2422 (GLenum)attachment, 2423 (GLenum)pname, 2424 (GLint *)params 2425 ); 2426 2427 exit: 2428 if (params_base) { 2429 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2430 _exception ? JNI_ABORT: 0); 2431 } 2432 if (_exception) { 2433 jniThrowException(_env, _exceptionType, _exceptionMessage); 2434 } 2435 } 2436 2437 /* void glGetFramebufferAttachmentParameteriv ( GLenum target, GLenum attachment, GLenum pname, GLint *params ) */ 2438 static void 2439 android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 2440 (JNIEnv *_env, jobject _this, jint target, jint attachment, jint pname, jobject params_buf) { 2441 jarray _array = (jarray) 0; 2442 jint _bufferOffset = (jint) 0; 2443 jint _remaining; 2444 GLint *params = (GLint *) 0; 2445 2446 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2447 if (params == NULL) { 2448 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 2449 params = (GLint *) (_paramsBase + _bufferOffset); 2450 } 2451 glGetFramebufferAttachmentParameteriv( 2452 (GLenum)target, 2453 (GLenum)attachment, 2454 (GLenum)pname, 2455 (GLint *)params 2456 ); 2457 if (_array) { 2458 releasePointer(_env, _array, params, JNI_TRUE); 2459 } 2460 } 2461 2462 /* void glGetIntegerv ( GLenum pname, GLint *params ) */ 2463 static void 2464 android_glGetIntegerv__I_3II 2465 (JNIEnv *_env, jobject _this, jint pname, jintArray params_ref, jint offset) { 2466 jint _exception = 0; 2467 const char * _exceptionType; 2468 const char * _exceptionMessage; 2469 GLint *params_base = (GLint *) 0; 2470 jint _remaining; 2471 GLint *params = (GLint *) 0; 2472 2473 if (!params_ref) { 2474 _exception = 1; 2475 _exceptionType = "java/lang/IllegalArgumentException"; 2476 _exceptionMessage = "params == null"; 2477 goto exit; 2478 } 2479 if (offset < 0) { 2480 _exception = 1; 2481 _exceptionType = "java/lang/IllegalArgumentException"; 2482 _exceptionMessage = "offset < 0"; 2483 goto exit; 2484 } 2485 _remaining = _env->GetArrayLength(params_ref) - offset; 2486 int _needed; 2487 switch (pname) { 2488 #if defined(GL_ALPHA_BITS) 2489 case GL_ALPHA_BITS: 2490 #endif // defined(GL_ALPHA_BITS) 2491 #if defined(GL_ALPHA_TEST_FUNC) 2492 case GL_ALPHA_TEST_FUNC: 2493 #endif // defined(GL_ALPHA_TEST_FUNC) 2494 #if defined(GL_ALPHA_TEST_REF) 2495 case GL_ALPHA_TEST_REF: 2496 #endif // defined(GL_ALPHA_TEST_REF) 2497 #if defined(GL_BLEND_DST) 2498 case GL_BLEND_DST: 2499 #endif // defined(GL_BLEND_DST) 2500 #if defined(GL_BLUE_BITS) 2501 case GL_BLUE_BITS: 2502 #endif // defined(GL_BLUE_BITS) 2503 #if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2504 case GL_COLOR_ARRAY_BUFFER_BINDING: 2505 #endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2506 #if defined(GL_COLOR_ARRAY_SIZE) 2507 case GL_COLOR_ARRAY_SIZE: 2508 #endif // defined(GL_COLOR_ARRAY_SIZE) 2509 #if defined(GL_COLOR_ARRAY_STRIDE) 2510 case GL_COLOR_ARRAY_STRIDE: 2511 #endif // defined(GL_COLOR_ARRAY_STRIDE) 2512 #if defined(GL_COLOR_ARRAY_TYPE) 2513 case GL_COLOR_ARRAY_TYPE: 2514 #endif // defined(GL_COLOR_ARRAY_TYPE) 2515 #if defined(GL_CULL_FACE) 2516 case GL_CULL_FACE: 2517 #endif // defined(GL_CULL_FACE) 2518 #if defined(GL_DEPTH_BITS) 2519 case GL_DEPTH_BITS: 2520 #endif // defined(GL_DEPTH_BITS) 2521 #if defined(GL_DEPTH_CLEAR_VALUE) 2522 case GL_DEPTH_CLEAR_VALUE: 2523 #endif // defined(GL_DEPTH_CLEAR_VALUE) 2524 #if defined(GL_DEPTH_FUNC) 2525 case GL_DEPTH_FUNC: 2526 #endif // defined(GL_DEPTH_FUNC) 2527 #if defined(GL_DEPTH_WRITEMASK) 2528 case GL_DEPTH_WRITEMASK: 2529 #endif // defined(GL_DEPTH_WRITEMASK) 2530 #if defined(GL_FOG_DENSITY) 2531 case GL_FOG_DENSITY: 2532 #endif // defined(GL_FOG_DENSITY) 2533 #if defined(GL_FOG_END) 2534 case GL_FOG_END: 2535 #endif // defined(GL_FOG_END) 2536 #if defined(GL_FOG_MODE) 2537 case GL_FOG_MODE: 2538 #endif // defined(GL_FOG_MODE) 2539 #if defined(GL_FOG_START) 2540 case GL_FOG_START: 2541 #endif // defined(GL_FOG_START) 2542 #if defined(GL_FRONT_FACE) 2543 case GL_FRONT_FACE: 2544 #endif // defined(GL_FRONT_FACE) 2545 #if defined(GL_GREEN_BITS) 2546 case GL_GREEN_BITS: 2547 #endif // defined(GL_GREEN_BITS) 2548 #if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2549 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 2550 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2551 #if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2552 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 2553 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2554 #if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2555 case GL_LIGHT_MODEL_COLOR_CONTROL: 2556 #endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2557 #if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2558 case GL_LIGHT_MODEL_LOCAL_VIEWER: 2559 #endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2560 #if defined(GL_LIGHT_MODEL_TWO_SIDE) 2561 case GL_LIGHT_MODEL_TWO_SIDE: 2562 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 2563 #if defined(GL_LINE_SMOOTH_HINT) 2564 case GL_LINE_SMOOTH_HINT: 2565 #endif // defined(GL_LINE_SMOOTH_HINT) 2566 #if defined(GL_LINE_WIDTH) 2567 case GL_LINE_WIDTH: 2568 #endif // defined(GL_LINE_WIDTH) 2569 #if defined(GL_LOGIC_OP_MODE) 2570 case GL_LOGIC_OP_MODE: 2571 #endif // defined(GL_LOGIC_OP_MODE) 2572 #if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2573 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 2574 #endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2575 #if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2576 case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 2577 #endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2578 #if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2579 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 2580 #endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2581 #if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2582 case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 2583 #endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2584 #if defined(GL_MATRIX_MODE) 2585 case GL_MATRIX_MODE: 2586 #endif // defined(GL_MATRIX_MODE) 2587 #if defined(GL_MAX_CLIP_PLANES) 2588 case GL_MAX_CLIP_PLANES: 2589 #endif // defined(GL_MAX_CLIP_PLANES) 2590 #if defined(GL_MAX_ELEMENTS_INDICES) 2591 case GL_MAX_ELEMENTS_INDICES: 2592 #endif // defined(GL_MAX_ELEMENTS_INDICES) 2593 #if defined(GL_MAX_ELEMENTS_VERTICES) 2594 case GL_MAX_ELEMENTS_VERTICES: 2595 #endif // defined(GL_MAX_ELEMENTS_VERTICES) 2596 #if defined(GL_MAX_LIGHTS) 2597 case GL_MAX_LIGHTS: 2598 #endif // defined(GL_MAX_LIGHTS) 2599 #if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2600 case GL_MAX_MODELVIEW_STACK_DEPTH: 2601 #endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2602 #if defined(GL_MAX_PALETTE_MATRICES_OES) 2603 case GL_MAX_PALETTE_MATRICES_OES: 2604 #endif // defined(GL_MAX_PALETTE_MATRICES_OES) 2605 #if defined(GL_MAX_PROJECTION_STACK_DEPTH) 2606 case GL_MAX_PROJECTION_STACK_DEPTH: 2607 #endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 2608 #if defined(GL_MAX_TEXTURE_SIZE) 2609 case GL_MAX_TEXTURE_SIZE: 2610 #endif // defined(GL_MAX_TEXTURE_SIZE) 2611 #if defined(GL_MAX_TEXTURE_STACK_DEPTH) 2612 case GL_MAX_TEXTURE_STACK_DEPTH: 2613 #endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 2614 #if defined(GL_MAX_TEXTURE_UNITS) 2615 case GL_MAX_TEXTURE_UNITS: 2616 #endif // defined(GL_MAX_TEXTURE_UNITS) 2617 #if defined(GL_MAX_VERTEX_UNITS_OES) 2618 case GL_MAX_VERTEX_UNITS_OES: 2619 #endif // defined(GL_MAX_VERTEX_UNITS_OES) 2620 #if defined(GL_MODELVIEW_STACK_DEPTH) 2621 case GL_MODELVIEW_STACK_DEPTH: 2622 #endif // defined(GL_MODELVIEW_STACK_DEPTH) 2623 #if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2624 case GL_NORMAL_ARRAY_BUFFER_BINDING: 2625 #endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2626 #if defined(GL_NORMAL_ARRAY_STRIDE) 2627 case GL_NORMAL_ARRAY_STRIDE: 2628 #endif // defined(GL_NORMAL_ARRAY_STRIDE) 2629 #if defined(GL_NORMAL_ARRAY_TYPE) 2630 case GL_NORMAL_ARRAY_TYPE: 2631 #endif // defined(GL_NORMAL_ARRAY_TYPE) 2632 #if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 2633 case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 2634 #endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 2635 #if defined(GL_PACK_ALIGNMENT) 2636 case GL_PACK_ALIGNMENT: 2637 #endif // defined(GL_PACK_ALIGNMENT) 2638 #if defined(GL_PERSPECTIVE_CORRECTION_HINT) 2639 case GL_PERSPECTIVE_CORRECTION_HINT: 2640 #endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 2641 #if defined(GL_POINT_SIZE) 2642 case GL_POINT_SIZE: 2643 #endif // defined(GL_POINT_SIZE) 2644 #if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 2645 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 2646 #endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 2647 #if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 2648 case GL_POINT_SIZE_ARRAY_STRIDE_OES: 2649 #endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 2650 #if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 2651 case GL_POINT_SIZE_ARRAY_TYPE_OES: 2652 #endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 2653 #if defined(GL_POINT_SMOOTH_HINT) 2654 case GL_POINT_SMOOTH_HINT: 2655 #endif // defined(GL_POINT_SMOOTH_HINT) 2656 #if defined(GL_POLYGON_OFFSET_FACTOR) 2657 case GL_POLYGON_OFFSET_FACTOR: 2658 #endif // defined(GL_POLYGON_OFFSET_FACTOR) 2659 #if defined(GL_POLYGON_OFFSET_UNITS) 2660 case GL_POLYGON_OFFSET_UNITS: 2661 #endif // defined(GL_POLYGON_OFFSET_UNITS) 2662 #if defined(GL_PROJECTION_STACK_DEPTH) 2663 case GL_PROJECTION_STACK_DEPTH: 2664 #endif // defined(GL_PROJECTION_STACK_DEPTH) 2665 #if defined(GL_RED_BITS) 2666 case GL_RED_BITS: 2667 #endif // defined(GL_RED_BITS) 2668 #if defined(GL_SHADE_MODEL) 2669 case GL_SHADE_MODEL: 2670 #endif // defined(GL_SHADE_MODEL) 2671 #if defined(GL_STENCIL_BITS) 2672 case GL_STENCIL_BITS: 2673 #endif // defined(GL_STENCIL_BITS) 2674 #if defined(GL_STENCIL_CLEAR_VALUE) 2675 case GL_STENCIL_CLEAR_VALUE: 2676 #endif // defined(GL_STENCIL_CLEAR_VALUE) 2677 #if defined(GL_STENCIL_FAIL) 2678 case GL_STENCIL_FAIL: 2679 #endif // defined(GL_STENCIL_FAIL) 2680 #if defined(GL_STENCIL_FUNC) 2681 case GL_STENCIL_FUNC: 2682 #endif // defined(GL_STENCIL_FUNC) 2683 #if defined(GL_STENCIL_PASS_DEPTH_FAIL) 2684 case GL_STENCIL_PASS_DEPTH_FAIL: 2685 #endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 2686 #if defined(GL_STENCIL_PASS_DEPTH_PASS) 2687 case GL_STENCIL_PASS_DEPTH_PASS: 2688 #endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 2689 #if defined(GL_STENCIL_REF) 2690 case GL_STENCIL_REF: 2691 #endif // defined(GL_STENCIL_REF) 2692 #if defined(GL_STENCIL_VALUE_MASK) 2693 case GL_STENCIL_VALUE_MASK: 2694 #endif // defined(GL_STENCIL_VALUE_MASK) 2695 #if defined(GL_STENCIL_WRITEMASK) 2696 case GL_STENCIL_WRITEMASK: 2697 #endif // defined(GL_STENCIL_WRITEMASK) 2698 #if defined(GL_SUBPIXEL_BITS) 2699 case GL_SUBPIXEL_BITS: 2700 #endif // defined(GL_SUBPIXEL_BITS) 2701 #if defined(GL_TEXTURE_BINDING_2D) 2702 case GL_TEXTURE_BINDING_2D: 2703 #endif // defined(GL_TEXTURE_BINDING_2D) 2704 #if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 2705 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 2706 #endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 2707 #if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 2708 case GL_TEXTURE_COORD_ARRAY_SIZE: 2709 #endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 2710 #if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 2711 case GL_TEXTURE_COORD_ARRAY_STRIDE: 2712 #endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 2713 #if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 2714 case GL_TEXTURE_COORD_ARRAY_TYPE: 2715 #endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 2716 #if defined(GL_TEXTURE_STACK_DEPTH) 2717 case GL_TEXTURE_STACK_DEPTH: 2718 #endif // defined(GL_TEXTURE_STACK_DEPTH) 2719 #if defined(GL_UNPACK_ALIGNMENT) 2720 case GL_UNPACK_ALIGNMENT: 2721 #endif // defined(GL_UNPACK_ALIGNMENT) 2722 #if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 2723 case GL_VERTEX_ARRAY_BUFFER_BINDING: 2724 #endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 2725 #if defined(GL_VERTEX_ARRAY_SIZE) 2726 case GL_VERTEX_ARRAY_SIZE: 2727 #endif // defined(GL_VERTEX_ARRAY_SIZE) 2728 #if defined(GL_VERTEX_ARRAY_STRIDE) 2729 case GL_VERTEX_ARRAY_STRIDE: 2730 #endif // defined(GL_VERTEX_ARRAY_STRIDE) 2731 #if defined(GL_VERTEX_ARRAY_TYPE) 2732 case GL_VERTEX_ARRAY_TYPE: 2733 #endif // defined(GL_VERTEX_ARRAY_TYPE) 2734 #if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 2735 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 2736 #endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 2737 #if defined(GL_WEIGHT_ARRAY_SIZE_OES) 2738 case GL_WEIGHT_ARRAY_SIZE_OES: 2739 #endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 2740 #if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 2741 case GL_WEIGHT_ARRAY_STRIDE_OES: 2742 #endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 2743 #if defined(GL_WEIGHT_ARRAY_TYPE_OES) 2744 case GL_WEIGHT_ARRAY_TYPE_OES: 2745 #endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 2746 _needed = 1; 2747 break; 2748 #if defined(GL_ALIASED_POINT_SIZE_RANGE) 2749 case GL_ALIASED_POINT_SIZE_RANGE: 2750 #endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 2751 #if defined(GL_ALIASED_LINE_WIDTH_RANGE) 2752 case GL_ALIASED_LINE_WIDTH_RANGE: 2753 #endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 2754 #if defined(GL_DEPTH_RANGE) 2755 case GL_DEPTH_RANGE: 2756 #endif // defined(GL_DEPTH_RANGE) 2757 #if defined(GL_MAX_VIEWPORT_DIMS) 2758 case GL_MAX_VIEWPORT_DIMS: 2759 #endif // defined(GL_MAX_VIEWPORT_DIMS) 2760 #if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 2761 case GL_SMOOTH_LINE_WIDTH_RANGE: 2762 #endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 2763 #if defined(GL_SMOOTH_POINT_SIZE_RANGE) 2764 case GL_SMOOTH_POINT_SIZE_RANGE: 2765 #endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 2766 _needed = 2; 2767 break; 2768 #if defined(GL_COLOR_CLEAR_VALUE) 2769 case GL_COLOR_CLEAR_VALUE: 2770 #endif // defined(GL_COLOR_CLEAR_VALUE) 2771 #if defined(GL_COLOR_WRITEMASK) 2772 case GL_COLOR_WRITEMASK: 2773 #endif // defined(GL_COLOR_WRITEMASK) 2774 #if defined(GL_FOG_COLOR) 2775 case GL_FOG_COLOR: 2776 #endif // defined(GL_FOG_COLOR) 2777 #if defined(GL_LIGHT_MODEL_AMBIENT) 2778 case GL_LIGHT_MODEL_AMBIENT: 2779 #endif // defined(GL_LIGHT_MODEL_AMBIENT) 2780 #if defined(GL_SCISSOR_BOX) 2781 case GL_SCISSOR_BOX: 2782 #endif // defined(GL_SCISSOR_BOX) 2783 #if defined(GL_VIEWPORT) 2784 case GL_VIEWPORT: 2785 #endif // defined(GL_VIEWPORT) 2786 _needed = 4; 2787 break; 2788 #if defined(GL_MODELVIEW_MATRIX) 2789 case GL_MODELVIEW_MATRIX: 2790 #endif // defined(GL_MODELVIEW_MATRIX) 2791 #if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 2792 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 2793 #endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 2794 #if defined(GL_PROJECTION_MATRIX) 2795 case GL_PROJECTION_MATRIX: 2796 #endif // defined(GL_PROJECTION_MATRIX) 2797 #if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 2798 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 2799 #endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 2800 #if defined(GL_TEXTURE_MATRIX) 2801 case GL_TEXTURE_MATRIX: 2802 #endif // defined(GL_TEXTURE_MATRIX) 2803 #if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 2804 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 2805 #endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 2806 _needed = 16; 2807 break; 2808 #if defined(GL_COMPRESSED_TEXTURE_FORMATS) 2809 case GL_COMPRESSED_TEXTURE_FORMATS: 2810 #endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 2811 _needed = getNumCompressedTextureFormats(); 2812 break; 2813 default: 2814 _needed = 0; 2815 break; 2816 } 2817 if (_remaining < _needed) { 2818 _exception = 1; 2819 _exceptionType = "java/lang/IllegalArgumentException"; 2820 _exceptionMessage = "length - offset < needed"; 2821 goto exit; 2822 } 2823 params_base = (GLint *) 2824 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 2825 params = params_base + offset; 2826 2827 glGetIntegerv( 2828 (GLenum)pname, 2829 (GLint *)params 2830 ); 2831 2832 exit: 2833 if (params_base) { 2834 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 2835 _exception ? JNI_ABORT: 0); 2836 } 2837 if (_exception) { 2838 jniThrowException(_env, _exceptionType, _exceptionMessage); 2839 } 2840 } 2841 2842 /* void glGetIntegerv ( GLenum pname, GLint *params ) */ 2843 static void 2844 android_glGetIntegerv__ILjava_nio_IntBuffer_2 2845 (JNIEnv *_env, jobject _this, jint pname, jobject params_buf) { 2846 jint _exception = 0; 2847 const char * _exceptionType; 2848 const char * _exceptionMessage; 2849 jarray _array = (jarray) 0; 2850 jint _bufferOffset = (jint) 0; 2851 jint _remaining; 2852 GLint *params = (GLint *) 0; 2853 2854 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 2855 int _needed; 2856 switch (pname) { 2857 #if defined(GL_ALPHA_BITS) 2858 case GL_ALPHA_BITS: 2859 #endif // defined(GL_ALPHA_BITS) 2860 #if defined(GL_ALPHA_TEST_FUNC) 2861 case GL_ALPHA_TEST_FUNC: 2862 #endif // defined(GL_ALPHA_TEST_FUNC) 2863 #if defined(GL_ALPHA_TEST_REF) 2864 case GL_ALPHA_TEST_REF: 2865 #endif // defined(GL_ALPHA_TEST_REF) 2866 #if defined(GL_BLEND_DST) 2867 case GL_BLEND_DST: 2868 #endif // defined(GL_BLEND_DST) 2869 #if defined(GL_BLUE_BITS) 2870 case GL_BLUE_BITS: 2871 #endif // defined(GL_BLUE_BITS) 2872 #if defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2873 case GL_COLOR_ARRAY_BUFFER_BINDING: 2874 #endif // defined(GL_COLOR_ARRAY_BUFFER_BINDING) 2875 #if defined(GL_COLOR_ARRAY_SIZE) 2876 case GL_COLOR_ARRAY_SIZE: 2877 #endif // defined(GL_COLOR_ARRAY_SIZE) 2878 #if defined(GL_COLOR_ARRAY_STRIDE) 2879 case GL_COLOR_ARRAY_STRIDE: 2880 #endif // defined(GL_COLOR_ARRAY_STRIDE) 2881 #if defined(GL_COLOR_ARRAY_TYPE) 2882 case GL_COLOR_ARRAY_TYPE: 2883 #endif // defined(GL_COLOR_ARRAY_TYPE) 2884 #if defined(GL_CULL_FACE) 2885 case GL_CULL_FACE: 2886 #endif // defined(GL_CULL_FACE) 2887 #if defined(GL_DEPTH_BITS) 2888 case GL_DEPTH_BITS: 2889 #endif // defined(GL_DEPTH_BITS) 2890 #if defined(GL_DEPTH_CLEAR_VALUE) 2891 case GL_DEPTH_CLEAR_VALUE: 2892 #endif // defined(GL_DEPTH_CLEAR_VALUE) 2893 #if defined(GL_DEPTH_FUNC) 2894 case GL_DEPTH_FUNC: 2895 #endif // defined(GL_DEPTH_FUNC) 2896 #if defined(GL_DEPTH_WRITEMASK) 2897 case GL_DEPTH_WRITEMASK: 2898 #endif // defined(GL_DEPTH_WRITEMASK) 2899 #if defined(GL_FOG_DENSITY) 2900 case GL_FOG_DENSITY: 2901 #endif // defined(GL_FOG_DENSITY) 2902 #if defined(GL_FOG_END) 2903 case GL_FOG_END: 2904 #endif // defined(GL_FOG_END) 2905 #if defined(GL_FOG_MODE) 2906 case GL_FOG_MODE: 2907 #endif // defined(GL_FOG_MODE) 2908 #if defined(GL_FOG_START) 2909 case GL_FOG_START: 2910 #endif // defined(GL_FOG_START) 2911 #if defined(GL_FRONT_FACE) 2912 case GL_FRONT_FACE: 2913 #endif // defined(GL_FRONT_FACE) 2914 #if defined(GL_GREEN_BITS) 2915 case GL_GREEN_BITS: 2916 #endif // defined(GL_GREEN_BITS) 2917 #if defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2918 case GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES: 2919 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES) 2920 #if defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2921 case GL_IMPLEMENTATION_COLOR_READ_TYPE_OES: 2922 #endif // defined(GL_IMPLEMENTATION_COLOR_READ_TYPE_OES) 2923 #if defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2924 case GL_LIGHT_MODEL_COLOR_CONTROL: 2925 #endif // defined(GL_LIGHT_MODEL_COLOR_CONTROL) 2926 #if defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2927 case GL_LIGHT_MODEL_LOCAL_VIEWER: 2928 #endif // defined(GL_LIGHT_MODEL_LOCAL_VIEWER) 2929 #if defined(GL_LIGHT_MODEL_TWO_SIDE) 2930 case GL_LIGHT_MODEL_TWO_SIDE: 2931 #endif // defined(GL_LIGHT_MODEL_TWO_SIDE) 2932 #if defined(GL_LINE_SMOOTH_HINT) 2933 case GL_LINE_SMOOTH_HINT: 2934 #endif // defined(GL_LINE_SMOOTH_HINT) 2935 #if defined(GL_LINE_WIDTH) 2936 case GL_LINE_WIDTH: 2937 #endif // defined(GL_LINE_WIDTH) 2938 #if defined(GL_LOGIC_OP_MODE) 2939 case GL_LOGIC_OP_MODE: 2940 #endif // defined(GL_LOGIC_OP_MODE) 2941 #if defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2942 case GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES: 2943 #endif // defined(GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES) 2944 #if defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2945 case GL_MATRIX_INDEX_ARRAY_SIZE_OES: 2946 #endif // defined(GL_MATRIX_INDEX_ARRAY_SIZE_OES) 2947 #if defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2948 case GL_MATRIX_INDEX_ARRAY_STRIDE_OES: 2949 #endif // defined(GL_MATRIX_INDEX_ARRAY_STRIDE_OES) 2950 #if defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2951 case GL_MATRIX_INDEX_ARRAY_TYPE_OES: 2952 #endif // defined(GL_MATRIX_INDEX_ARRAY_TYPE_OES) 2953 #if defined(GL_MATRIX_MODE) 2954 case GL_MATRIX_MODE: 2955 #endif // defined(GL_MATRIX_MODE) 2956 #if defined(GL_MAX_CLIP_PLANES) 2957 case GL_MAX_CLIP_PLANES: 2958 #endif // defined(GL_MAX_CLIP_PLANES) 2959 #if defined(GL_MAX_ELEMENTS_INDICES) 2960 case GL_MAX_ELEMENTS_INDICES: 2961 #endif // defined(GL_MAX_ELEMENTS_INDICES) 2962 #if defined(GL_MAX_ELEMENTS_VERTICES) 2963 case GL_MAX_ELEMENTS_VERTICES: 2964 #endif // defined(GL_MAX_ELEMENTS_VERTICES) 2965 #if defined(GL_MAX_LIGHTS) 2966 case GL_MAX_LIGHTS: 2967 #endif // defined(GL_MAX_LIGHTS) 2968 #if defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2969 case GL_MAX_MODELVIEW_STACK_DEPTH: 2970 #endif // defined(GL_MAX_MODELVIEW_STACK_DEPTH) 2971 #if defined(GL_MAX_PALETTE_MATRICES_OES) 2972 case GL_MAX_PALETTE_MATRICES_OES: 2973 #endif // defined(GL_MAX_PALETTE_MATRICES_OES) 2974 #if defined(GL_MAX_PROJECTION_STACK_DEPTH) 2975 case GL_MAX_PROJECTION_STACK_DEPTH: 2976 #endif // defined(GL_MAX_PROJECTION_STACK_DEPTH) 2977 #if defined(GL_MAX_TEXTURE_SIZE) 2978 case GL_MAX_TEXTURE_SIZE: 2979 #endif // defined(GL_MAX_TEXTURE_SIZE) 2980 #if defined(GL_MAX_TEXTURE_STACK_DEPTH) 2981 case GL_MAX_TEXTURE_STACK_DEPTH: 2982 #endif // defined(GL_MAX_TEXTURE_STACK_DEPTH) 2983 #if defined(GL_MAX_TEXTURE_UNITS) 2984 case GL_MAX_TEXTURE_UNITS: 2985 #endif // defined(GL_MAX_TEXTURE_UNITS) 2986 #if defined(GL_MAX_VERTEX_UNITS_OES) 2987 case GL_MAX_VERTEX_UNITS_OES: 2988 #endif // defined(GL_MAX_VERTEX_UNITS_OES) 2989 #if defined(GL_MODELVIEW_STACK_DEPTH) 2990 case GL_MODELVIEW_STACK_DEPTH: 2991 #endif // defined(GL_MODELVIEW_STACK_DEPTH) 2992 #if defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2993 case GL_NORMAL_ARRAY_BUFFER_BINDING: 2994 #endif // defined(GL_NORMAL_ARRAY_BUFFER_BINDING) 2995 #if defined(GL_NORMAL_ARRAY_STRIDE) 2996 case GL_NORMAL_ARRAY_STRIDE: 2997 #endif // defined(GL_NORMAL_ARRAY_STRIDE) 2998 #if defined(GL_NORMAL_ARRAY_TYPE) 2999 case GL_NORMAL_ARRAY_TYPE: 3000 #endif // defined(GL_NORMAL_ARRAY_TYPE) 3001 #if defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 3002 case GL_NUM_COMPRESSED_TEXTURE_FORMATS: 3003 #endif // defined(GL_NUM_COMPRESSED_TEXTURE_FORMATS) 3004 #if defined(GL_PACK_ALIGNMENT) 3005 case GL_PACK_ALIGNMENT: 3006 #endif // defined(GL_PACK_ALIGNMENT) 3007 #if defined(GL_PERSPECTIVE_CORRECTION_HINT) 3008 case GL_PERSPECTIVE_CORRECTION_HINT: 3009 #endif // defined(GL_PERSPECTIVE_CORRECTION_HINT) 3010 #if defined(GL_POINT_SIZE) 3011 case GL_POINT_SIZE: 3012 #endif // defined(GL_POINT_SIZE) 3013 #if defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 3014 case GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES: 3015 #endif // defined(GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES) 3016 #if defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 3017 case GL_POINT_SIZE_ARRAY_STRIDE_OES: 3018 #endif // defined(GL_POINT_SIZE_ARRAY_STRIDE_OES) 3019 #if defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 3020 case GL_POINT_SIZE_ARRAY_TYPE_OES: 3021 #endif // defined(GL_POINT_SIZE_ARRAY_TYPE_OES) 3022 #if defined(GL_POINT_SMOOTH_HINT) 3023 case GL_POINT_SMOOTH_HINT: 3024 #endif // defined(GL_POINT_SMOOTH_HINT) 3025 #if defined(GL_POLYGON_OFFSET_FACTOR) 3026 case GL_POLYGON_OFFSET_FACTOR: 3027 #endif // defined(GL_POLYGON_OFFSET_FACTOR) 3028 #if defined(GL_POLYGON_OFFSET_UNITS) 3029 case GL_POLYGON_OFFSET_UNITS: 3030 #endif // defined(GL_POLYGON_OFFSET_UNITS) 3031 #if defined(GL_PROJECTION_STACK_DEPTH) 3032 case GL_PROJECTION_STACK_DEPTH: 3033 #endif // defined(GL_PROJECTION_STACK_DEPTH) 3034 #if defined(GL_RED_BITS) 3035 case GL_RED_BITS: 3036 #endif // defined(GL_RED_BITS) 3037 #if defined(GL_SHADE_MODEL) 3038 case GL_SHADE_MODEL: 3039 #endif // defined(GL_SHADE_MODEL) 3040 #if defined(GL_STENCIL_BITS) 3041 case GL_STENCIL_BITS: 3042 #endif // defined(GL_STENCIL_BITS) 3043 #if defined(GL_STENCIL_CLEAR_VALUE) 3044 case GL_STENCIL_CLEAR_VALUE: 3045 #endif // defined(GL_STENCIL_CLEAR_VALUE) 3046 #if defined(GL_STENCIL_FAIL) 3047 case GL_STENCIL_FAIL: 3048 #endif // defined(GL_STENCIL_FAIL) 3049 #if defined(GL_STENCIL_FUNC) 3050 case GL_STENCIL_FUNC: 3051 #endif // defined(GL_STENCIL_FUNC) 3052 #if defined(GL_STENCIL_PASS_DEPTH_FAIL) 3053 case GL_STENCIL_PASS_DEPTH_FAIL: 3054 #endif // defined(GL_STENCIL_PASS_DEPTH_FAIL) 3055 #if defined(GL_STENCIL_PASS_DEPTH_PASS) 3056 case GL_STENCIL_PASS_DEPTH_PASS: 3057 #endif // defined(GL_STENCIL_PASS_DEPTH_PASS) 3058 #if defined(GL_STENCIL_REF) 3059 case GL_STENCIL_REF: 3060 #endif // defined(GL_STENCIL_REF) 3061 #if defined(GL_STENCIL_VALUE_MASK) 3062 case GL_STENCIL_VALUE_MASK: 3063 #endif // defined(GL_STENCIL_VALUE_MASK) 3064 #if defined(GL_STENCIL_WRITEMASK) 3065 case GL_STENCIL_WRITEMASK: 3066 #endif // defined(GL_STENCIL_WRITEMASK) 3067 #if defined(GL_SUBPIXEL_BITS) 3068 case GL_SUBPIXEL_BITS: 3069 #endif // defined(GL_SUBPIXEL_BITS) 3070 #if defined(GL_TEXTURE_BINDING_2D) 3071 case GL_TEXTURE_BINDING_2D: 3072 #endif // defined(GL_TEXTURE_BINDING_2D) 3073 #if defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 3074 case GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING: 3075 #endif // defined(GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING) 3076 #if defined(GL_TEXTURE_COORD_ARRAY_SIZE) 3077 case GL_TEXTURE_COORD_ARRAY_SIZE: 3078 #endif // defined(GL_TEXTURE_COORD_ARRAY_SIZE) 3079 #if defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 3080 case GL_TEXTURE_COORD_ARRAY_STRIDE: 3081 #endif // defined(GL_TEXTURE_COORD_ARRAY_STRIDE) 3082 #if defined(GL_TEXTURE_COORD_ARRAY_TYPE) 3083 case GL_TEXTURE_COORD_ARRAY_TYPE: 3084 #endif // defined(GL_TEXTURE_COORD_ARRAY_TYPE) 3085 #if defined(GL_TEXTURE_STACK_DEPTH) 3086 case GL_TEXTURE_STACK_DEPTH: 3087 #endif // defined(GL_TEXTURE_STACK_DEPTH) 3088 #if defined(GL_UNPACK_ALIGNMENT) 3089 case GL_UNPACK_ALIGNMENT: 3090 #endif // defined(GL_UNPACK_ALIGNMENT) 3091 #if defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 3092 case GL_VERTEX_ARRAY_BUFFER_BINDING: 3093 #endif // defined(GL_VERTEX_ARRAY_BUFFER_BINDING) 3094 #if defined(GL_VERTEX_ARRAY_SIZE) 3095 case GL_VERTEX_ARRAY_SIZE: 3096 #endif // defined(GL_VERTEX_ARRAY_SIZE) 3097 #if defined(GL_VERTEX_ARRAY_STRIDE) 3098 case GL_VERTEX_ARRAY_STRIDE: 3099 #endif // defined(GL_VERTEX_ARRAY_STRIDE) 3100 #if defined(GL_VERTEX_ARRAY_TYPE) 3101 case GL_VERTEX_ARRAY_TYPE: 3102 #endif // defined(GL_VERTEX_ARRAY_TYPE) 3103 #if defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 3104 case GL_WEIGHT_ARRAY_BUFFER_BINDING_OES: 3105 #endif // defined(GL_WEIGHT_ARRAY_BUFFER_BINDING_OES) 3106 #if defined(GL_WEIGHT_ARRAY_SIZE_OES) 3107 case GL_WEIGHT_ARRAY_SIZE_OES: 3108 #endif // defined(GL_WEIGHT_ARRAY_SIZE_OES) 3109 #if defined(GL_WEIGHT_ARRAY_STRIDE_OES) 3110 case GL_WEIGHT_ARRAY_STRIDE_OES: 3111 #endif // defined(GL_WEIGHT_ARRAY_STRIDE_OES) 3112 #if defined(GL_WEIGHT_ARRAY_TYPE_OES) 3113 case GL_WEIGHT_ARRAY_TYPE_OES: 3114 #endif // defined(GL_WEIGHT_ARRAY_TYPE_OES) 3115 _needed = 1; 3116 break; 3117 #if defined(GL_ALIASED_POINT_SIZE_RANGE) 3118 case GL_ALIASED_POINT_SIZE_RANGE: 3119 #endif // defined(GL_ALIASED_POINT_SIZE_RANGE) 3120 #if defined(GL_ALIASED_LINE_WIDTH_RANGE) 3121 case GL_ALIASED_LINE_WIDTH_RANGE: 3122 #endif // defined(GL_ALIASED_LINE_WIDTH_RANGE) 3123 #if defined(GL_DEPTH_RANGE) 3124 case GL_DEPTH_RANGE: 3125 #endif // defined(GL_DEPTH_RANGE) 3126 #if defined(GL_MAX_VIEWPORT_DIMS) 3127 case GL_MAX_VIEWPORT_DIMS: 3128 #endif // defined(GL_MAX_VIEWPORT_DIMS) 3129 #if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 3130 case GL_SMOOTH_LINE_WIDTH_RANGE: 3131 #endif // defined(GL_SMOOTH_LINE_WIDTH_RANGE) 3132 #if defined(GL_SMOOTH_POINT_SIZE_RANGE) 3133 case GL_SMOOTH_POINT_SIZE_RANGE: 3134 #endif // defined(GL_SMOOTH_POINT_SIZE_RANGE) 3135 _needed = 2; 3136 break; 3137 #if defined(GL_COLOR_CLEAR_VALUE) 3138 case GL_COLOR_CLEAR_VALUE: 3139 #endif // defined(GL_COLOR_CLEAR_VALUE) 3140 #if defined(GL_COLOR_WRITEMASK) 3141 case GL_COLOR_WRITEMASK: 3142 #endif // defined(GL_COLOR_WRITEMASK) 3143 #if defined(GL_FOG_COLOR) 3144 case GL_FOG_COLOR: 3145 #endif // defined(GL_FOG_COLOR) 3146 #if defined(GL_LIGHT_MODEL_AMBIENT) 3147 case GL_LIGHT_MODEL_AMBIENT: 3148 #endif // defined(GL_LIGHT_MODEL_AMBIENT) 3149 #if defined(GL_SCISSOR_BOX) 3150 case GL_SCISSOR_BOX: 3151 #endif // defined(GL_SCISSOR_BOX) 3152 #if defined(GL_VIEWPORT) 3153 case GL_VIEWPORT: 3154 #endif // defined(GL_VIEWPORT) 3155 _needed = 4; 3156 break; 3157 #if defined(GL_MODELVIEW_MATRIX) 3158 case GL_MODELVIEW_MATRIX: 3159 #endif // defined(GL_MODELVIEW_MATRIX) 3160 #if defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 3161 case GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES: 3162 #endif // defined(GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES) 3163 #if defined(GL_PROJECTION_MATRIX) 3164 case GL_PROJECTION_MATRIX: 3165 #endif // defined(GL_PROJECTION_MATRIX) 3166 #if defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 3167 case GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES: 3168 #endif // defined(GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES) 3169 #if defined(GL_TEXTURE_MATRIX) 3170 case GL_TEXTURE_MATRIX: 3171 #endif // defined(GL_TEXTURE_MATRIX) 3172 #if defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 3173 case GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES: 3174 #endif // defined(GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES) 3175 _needed = 16; 3176 break; 3177 #if defined(GL_COMPRESSED_TEXTURE_FORMATS) 3178 case GL_COMPRESSED_TEXTURE_FORMATS: 3179 #endif // defined(GL_COMPRESSED_TEXTURE_FORMATS) 3180 _needed = getNumCompressedTextureFormats(); 3181 break; 3182 default: 3183 _needed = 0; 3184 break; 3185 } 3186 if (_remaining < _needed) { 3187 _exception = 1; 3188 _exceptionType = "java/lang/IllegalArgumentException"; 3189 _exceptionMessage = "remaining() < needed"; 3190 goto exit; 3191 } 3192 if (params == NULL) { 3193 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3194 params = (GLint *) (_paramsBase + _bufferOffset); 3195 } 3196 glGetIntegerv( 3197 (GLenum)pname, 3198 (GLint *)params 3199 ); 3200 3201 exit: 3202 if (_array) { 3203 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3204 } 3205 if (_exception) { 3206 jniThrowException(_env, _exceptionType, _exceptionMessage); 3207 } 3208 } 3209 3210 /* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */ 3211 static void 3212 android_glGetProgramiv__II_3II 3213 (JNIEnv *_env, jobject _this, jint program, jint pname, jintArray params_ref, jint offset) { 3214 jint _exception = 0; 3215 const char * _exceptionType; 3216 const char * _exceptionMessage; 3217 GLint *params_base = (GLint *) 0; 3218 jint _remaining; 3219 GLint *params = (GLint *) 0; 3220 3221 if (!params_ref) { 3222 _exception = 1; 3223 _exceptionType = "java/lang/IllegalArgumentException"; 3224 _exceptionMessage = "params == null"; 3225 goto exit; 3226 } 3227 if (offset < 0) { 3228 _exception = 1; 3229 _exceptionType = "java/lang/IllegalArgumentException"; 3230 _exceptionMessage = "offset < 0"; 3231 goto exit; 3232 } 3233 _remaining = _env->GetArrayLength(params_ref) - offset; 3234 params_base = (GLint *) 3235 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3236 params = params_base + offset; 3237 3238 glGetProgramiv( 3239 (GLuint)program, 3240 (GLenum)pname, 3241 (GLint *)params 3242 ); 3243 3244 exit: 3245 if (params_base) { 3246 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3247 _exception ? JNI_ABORT: 0); 3248 } 3249 if (_exception) { 3250 jniThrowException(_env, _exceptionType, _exceptionMessage); 3251 } 3252 } 3253 3254 /* void glGetProgramiv ( GLuint program, GLenum pname, GLint *params ) */ 3255 static void 3256 android_glGetProgramiv__IILjava_nio_IntBuffer_2 3257 (JNIEnv *_env, jobject _this, jint program, jint pname, jobject params_buf) { 3258 jarray _array = (jarray) 0; 3259 jint _bufferOffset = (jint) 0; 3260 jint _remaining; 3261 GLint *params = (GLint *) 0; 3262 3263 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3264 if (params == NULL) { 3265 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3266 params = (GLint *) (_paramsBase + _bufferOffset); 3267 } 3268 glGetProgramiv( 3269 (GLuint)program, 3270 (GLenum)pname, 3271 (GLint *)params 3272 ); 3273 if (_array) { 3274 releasePointer(_env, _array, params, JNI_TRUE); 3275 } 3276 } 3277 3278 #include <stdlib.h> 3279 3280 /* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ 3281 static jstring android_glGetProgramInfoLog(JNIEnv *_env, jobject, jint shader) { 3282 GLint infoLen = 0; 3283 glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen); 3284 if (!infoLen) { 3285 return _env->NewStringUTF(""); 3286 } 3287 char* buf = (char*) malloc(infoLen); 3288 if (buf == NULL) { 3289 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 3290 return NULL; 3291 } 3292 glGetProgramInfoLog(shader, infoLen, NULL, buf); 3293 jstring result = _env->NewStringUTF(buf); 3294 free(buf); 3295 return result; 3296 } 3297 /* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3298 static void 3299 android_glGetRenderbufferParameteriv__II_3II 3300 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 3301 jint _exception = 0; 3302 const char * _exceptionType; 3303 const char * _exceptionMessage; 3304 GLint *params_base = (GLint *) 0; 3305 jint _remaining; 3306 GLint *params = (GLint *) 0; 3307 3308 if (!params_ref) { 3309 _exception = 1; 3310 _exceptionType = "java/lang/IllegalArgumentException"; 3311 _exceptionMessage = "params == null"; 3312 goto exit; 3313 } 3314 if (offset < 0) { 3315 _exception = 1; 3316 _exceptionType = "java/lang/IllegalArgumentException"; 3317 _exceptionMessage = "offset < 0"; 3318 goto exit; 3319 } 3320 _remaining = _env->GetArrayLength(params_ref) - offset; 3321 params_base = (GLint *) 3322 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3323 params = params_base + offset; 3324 3325 glGetRenderbufferParameteriv( 3326 (GLenum)target, 3327 (GLenum)pname, 3328 (GLint *)params 3329 ); 3330 3331 exit: 3332 if (params_base) { 3333 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3334 _exception ? JNI_ABORT: 0); 3335 } 3336 if (_exception) { 3337 jniThrowException(_env, _exceptionType, _exceptionMessage); 3338 } 3339 } 3340 3341 /* void glGetRenderbufferParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3342 static void 3343 android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 3344 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3345 jarray _array = (jarray) 0; 3346 jint _bufferOffset = (jint) 0; 3347 jint _remaining; 3348 GLint *params = (GLint *) 0; 3349 3350 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3351 if (params == NULL) { 3352 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3353 params = (GLint *) (_paramsBase + _bufferOffset); 3354 } 3355 glGetRenderbufferParameteriv( 3356 (GLenum)target, 3357 (GLenum)pname, 3358 (GLint *)params 3359 ); 3360 if (_array) { 3361 releasePointer(_env, _array, params, JNI_TRUE); 3362 } 3363 } 3364 3365 /* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */ 3366 static void 3367 android_glGetShaderiv__II_3II 3368 (JNIEnv *_env, jobject _this, jint shader, jint pname, jintArray params_ref, jint offset) { 3369 jint _exception = 0; 3370 const char * _exceptionType; 3371 const char * _exceptionMessage; 3372 GLint *params_base = (GLint *) 0; 3373 jint _remaining; 3374 GLint *params = (GLint *) 0; 3375 3376 if (!params_ref) { 3377 _exception = 1; 3378 _exceptionType = "java/lang/IllegalArgumentException"; 3379 _exceptionMessage = "params == null"; 3380 goto exit; 3381 } 3382 if (offset < 0) { 3383 _exception = 1; 3384 _exceptionType = "java/lang/IllegalArgumentException"; 3385 _exceptionMessage = "offset < 0"; 3386 goto exit; 3387 } 3388 _remaining = _env->GetArrayLength(params_ref) - offset; 3389 params_base = (GLint *) 3390 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3391 params = params_base + offset; 3392 3393 glGetShaderiv( 3394 (GLuint)shader, 3395 (GLenum)pname, 3396 (GLint *)params 3397 ); 3398 3399 exit: 3400 if (params_base) { 3401 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3402 _exception ? JNI_ABORT: 0); 3403 } 3404 if (_exception) { 3405 jniThrowException(_env, _exceptionType, _exceptionMessage); 3406 } 3407 } 3408 3409 /* void glGetShaderiv ( GLuint shader, GLenum pname, GLint *params ) */ 3410 static void 3411 android_glGetShaderiv__IILjava_nio_IntBuffer_2 3412 (JNIEnv *_env, jobject _this, jint shader, jint pname, jobject params_buf) { 3413 jarray _array = (jarray) 0; 3414 jint _bufferOffset = (jint) 0; 3415 jint _remaining; 3416 GLint *params = (GLint *) 0; 3417 3418 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3419 if (params == NULL) { 3420 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3421 params = (GLint *) (_paramsBase + _bufferOffset); 3422 } 3423 glGetShaderiv( 3424 (GLuint)shader, 3425 (GLenum)pname, 3426 (GLint *)params 3427 ); 3428 if (_array) { 3429 releasePointer(_env, _array, params, JNI_TRUE); 3430 } 3431 } 3432 3433 #include <stdlib.h> 3434 3435 /* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */ 3436 static jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) { 3437 GLint infoLen = 0; 3438 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen); 3439 if (!infoLen) { 3440 return _env->NewStringUTF(""); 3441 } 3442 char* buf = (char*) malloc(infoLen); 3443 if (buf == NULL) { 3444 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 3445 return NULL; 3446 } 3447 glGetShaderInfoLog(shader, infoLen, NULL, buf); 3448 jstring result = _env->NewStringUTF(buf); 3449 free(buf); 3450 return result; 3451 } 3452 /* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */ 3453 static void 3454 android_glGetShaderPrecisionFormat__II_3II_3II 3455 (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jintArray range_ref, jint rangeOffset, jintArray precision_ref, jint precisionOffset) { 3456 jint _exception = 0; 3457 const char * _exceptionType; 3458 const char * _exceptionMessage; 3459 GLint *range_base = (GLint *) 0; 3460 jint _rangeRemaining; 3461 GLint *range = (GLint *) 0; 3462 GLint *precision_base = (GLint *) 0; 3463 jint _precisionRemaining; 3464 GLint *precision = (GLint *) 0; 3465 3466 if (!range_ref) { 3467 _exception = 1; 3468 _exceptionType = "java/lang/IllegalArgumentException"; 3469 _exceptionMessage = "range == null"; 3470 goto exit; 3471 } 3472 if (rangeOffset < 0) { 3473 _exception = 1; 3474 _exceptionType = "java/lang/IllegalArgumentException"; 3475 _exceptionMessage = "rangeOffset < 0"; 3476 goto exit; 3477 } 3478 _rangeRemaining = _env->GetArrayLength(range_ref) - rangeOffset; 3479 range_base = (GLint *) 3480 _env->GetPrimitiveArrayCritical(range_ref, (jboolean *)0); 3481 range = range_base + rangeOffset; 3482 3483 if (!precision_ref) { 3484 _exception = 1; 3485 _exceptionType = "java/lang/IllegalArgumentException"; 3486 _exceptionMessage = "precision == null"; 3487 goto exit; 3488 } 3489 if (precisionOffset < 0) { 3490 _exception = 1; 3491 _exceptionType = "java/lang/IllegalArgumentException"; 3492 _exceptionMessage = "precisionOffset < 0"; 3493 goto exit; 3494 } 3495 _precisionRemaining = _env->GetArrayLength(precision_ref) - precisionOffset; 3496 precision_base = (GLint *) 3497 _env->GetPrimitiveArrayCritical(precision_ref, (jboolean *)0); 3498 precision = precision_base + precisionOffset; 3499 3500 glGetShaderPrecisionFormat( 3501 (GLenum)shadertype, 3502 (GLenum)precisiontype, 3503 (GLint *)range, 3504 (GLint *)precision 3505 ); 3506 3507 exit: 3508 if (precision_base) { 3509 _env->ReleasePrimitiveArrayCritical(precision_ref, precision_base, 3510 _exception ? JNI_ABORT: 0); 3511 } 3512 if (range_base) { 3513 _env->ReleasePrimitiveArrayCritical(range_ref, range_base, 3514 _exception ? JNI_ABORT: 0); 3515 } 3516 if (_exception) { 3517 jniThrowException(_env, _exceptionType, _exceptionMessage); 3518 } 3519 } 3520 3521 /* void glGetShaderPrecisionFormat ( GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision ) */ 3522 static void 3523 android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 3524 (JNIEnv *_env, jobject _this, jint shadertype, jint precisiontype, jobject range_buf, jobject precision_buf) { 3525 jarray _rangeArray = (jarray) 0; 3526 jint _rangeBufferOffset = (jint) 0; 3527 jarray _precisionArray = (jarray) 0; 3528 jint _precisionBufferOffset = (jint) 0; 3529 jint _rangeRemaining; 3530 GLint *range = (GLint *) 0; 3531 jint _precisionRemaining; 3532 GLint *precision = (GLint *) 0; 3533 3534 range = (GLint *)getPointer(_env, range_buf, &_rangeArray, &_rangeRemaining, &_rangeBufferOffset); 3535 precision = (GLint *)getPointer(_env, precision_buf, &_precisionArray, &_precisionRemaining, &_precisionBufferOffset); 3536 if (range == NULL) { 3537 char * _rangeBase = (char *)_env->GetPrimitiveArrayCritical(_rangeArray, (jboolean *) 0); 3538 range = (GLint *) (_rangeBase + _rangeBufferOffset); 3539 } 3540 if (precision == NULL) { 3541 char * _precisionBase = (char *)_env->GetPrimitiveArrayCritical(_precisionArray, (jboolean *) 0); 3542 precision = (GLint *) (_precisionBase + _precisionBufferOffset); 3543 } 3544 glGetShaderPrecisionFormat( 3545 (GLenum)shadertype, 3546 (GLenum)precisiontype, 3547 (GLint *)range, 3548 (GLint *)precision 3549 ); 3550 if (_precisionArray) { 3551 releasePointer(_env, _precisionArray, precision, JNI_TRUE); 3552 } 3553 if (_rangeArray) { 3554 releasePointer(_env, _rangeArray, range, JNI_TRUE); 3555 } 3556 } 3557 3558 /* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3559 static void 3560 android_glGetShaderSource__II_3II_3BI 3561 (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jintArray length_ref, jint lengthOffset, jbyteArray source_ref, jint sourceOffset) { 3562 jint _exception = 0; 3563 const char * _exceptionType; 3564 const char * _exceptionMessage; 3565 GLsizei *length_base = (GLsizei *) 0; 3566 jint _lengthRemaining; 3567 GLsizei *length = (GLsizei *) 0; 3568 char *source_base = (char *) 0; 3569 jint _sourceRemaining; 3570 char *source = (char *) 0; 3571 3572 if (!length_ref) { 3573 _exception = 1; 3574 _exceptionType = "java/lang/IllegalArgumentException"; 3575 _exceptionMessage = "length == null"; 3576 goto exit; 3577 } 3578 if (lengthOffset < 0) { 3579 _exception = 1; 3580 _exceptionType = "java/lang/IllegalArgumentException"; 3581 _exceptionMessage = "lengthOffset < 0"; 3582 goto exit; 3583 } 3584 _lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset; 3585 length_base = (GLsizei *) 3586 _env->GetPrimitiveArrayCritical(length_ref, (jboolean *)0); 3587 length = length_base + lengthOffset; 3588 3589 if (!source_ref) { 3590 _exception = 1; 3591 _exceptionType = "java/lang/IllegalArgumentException"; 3592 _exceptionMessage = "source == null"; 3593 goto exit; 3594 } 3595 if (sourceOffset < 0) { 3596 _exception = 1; 3597 _exceptionType = "java/lang/IllegalArgumentException"; 3598 _exceptionMessage = "sourceOffset < 0"; 3599 goto exit; 3600 } 3601 _sourceRemaining = _env->GetArrayLength(source_ref) - sourceOffset; 3602 source_base = (char *) 3603 _env->GetPrimitiveArrayCritical(source_ref, (jboolean *)0); 3604 source = source_base + sourceOffset; 3605 3606 glGetShaderSource( 3607 (GLuint)shader, 3608 (GLsizei)bufsize, 3609 (GLsizei *)length, 3610 (char *)source 3611 ); 3612 3613 exit: 3614 if (source_base) { 3615 _env->ReleasePrimitiveArrayCritical(source_ref, source_base, 3616 _exception ? JNI_ABORT: 0); 3617 } 3618 if (length_base) { 3619 _env->ReleasePrimitiveArrayCritical(length_ref, length_base, 3620 _exception ? JNI_ABORT: 0); 3621 } 3622 if (_exception) { 3623 jniThrowException(_env, _exceptionType, _exceptionMessage); 3624 } 3625 } 3626 3627 /* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3628 static void 3629 android_glGetShaderSource__IILjava_nio_IntBuffer_2B 3630 (JNIEnv *_env, jobject _this, jint shader, jint bufsize, jobject length_buf, jbyte source) { 3631 jarray _array = (jarray) 0; 3632 jint _bufferOffset = (jint) 0; 3633 jint _remaining; 3634 GLsizei *length = (GLsizei *) 0; 3635 3636 length = (GLsizei *)getPointer(_env, length_buf, &_array, &_remaining, &_bufferOffset); 3637 if (length == NULL) { 3638 char * _lengthBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3639 length = (GLsizei *) (_lengthBase + _bufferOffset); 3640 } 3641 glGetShaderSource( 3642 (GLuint)shader, 3643 (GLsizei)bufsize, 3644 (GLsizei *)length, 3645 (char *)source 3646 ); 3647 if (_array) { 3648 releasePointer(_env, _array, length, JNI_TRUE); 3649 } 3650 } 3651 3652 /* void glGetShaderSource ( GLuint shader, GLsizei bufsize, GLsizei *length, char *source ) */ 3653 static jstring android_glGetShaderSource(JNIEnv *_env, jobject, jint shader) { 3654 GLint shaderLen = 0; 3655 glGetShaderiv((GLuint)shader, GL_SHADER_SOURCE_LENGTH, &shaderLen); 3656 if (!shaderLen) { 3657 return _env->NewStringUTF(""); 3658 } 3659 char* buf = (char*) malloc(shaderLen); 3660 if (buf == NULL) { 3661 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory"); 3662 return NULL; 3663 } 3664 glGetShaderSource(shader, shaderLen, NULL, buf); 3665 jstring result = _env->NewStringUTF(buf); 3666 free(buf); 3667 return result; 3668 } 3669 /* const GLubyte * glGetString ( GLenum name ) */ 3670 static jstring android_glGetString(JNIEnv* _env, jobject, jint name) { 3671 const char* chars = (const char*) glGetString((GLenum) name); 3672 return _env->NewStringUTF(chars); 3673 } 3674 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 3675 static void 3676 android_glGetTexParameterfv__II_3FI 3677 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 3678 jint _exception = 0; 3679 const char * _exceptionType; 3680 const char * _exceptionMessage; 3681 GLfloat *params_base = (GLfloat *) 0; 3682 jint _remaining; 3683 GLfloat *params = (GLfloat *) 0; 3684 3685 if (!params_ref) { 3686 _exception = 1; 3687 _exceptionType = "java/lang/IllegalArgumentException"; 3688 _exceptionMessage = "params == null"; 3689 goto exit; 3690 } 3691 if (offset < 0) { 3692 _exception = 1; 3693 _exceptionType = "java/lang/IllegalArgumentException"; 3694 _exceptionMessage = "offset < 0"; 3695 goto exit; 3696 } 3697 _remaining = _env->GetArrayLength(params_ref) - offset; 3698 if (_remaining < 1) { 3699 _exception = 1; 3700 _exceptionType = "java/lang/IllegalArgumentException"; 3701 _exceptionMessage = "length - offset < 1 < needed"; 3702 goto exit; 3703 } 3704 params_base = (GLfloat *) 3705 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3706 params = params_base + offset; 3707 3708 glGetTexParameterfv( 3709 (GLenum)target, 3710 (GLenum)pname, 3711 (GLfloat *)params 3712 ); 3713 3714 exit: 3715 if (params_base) { 3716 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3717 _exception ? JNI_ABORT: 0); 3718 } 3719 if (_exception) { 3720 jniThrowException(_env, _exceptionType, _exceptionMessage); 3721 } 3722 } 3723 3724 /* void glGetTexParameterfv ( GLenum target, GLenum pname, GLfloat *params ) */ 3725 static void 3726 android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 3727 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3728 jint _exception = 0; 3729 const char * _exceptionType; 3730 const char * _exceptionMessage; 3731 jarray _array = (jarray) 0; 3732 jint _bufferOffset = (jint) 0; 3733 jint _remaining; 3734 GLfloat *params = (GLfloat *) 0; 3735 3736 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3737 if (_remaining < 1) { 3738 _exception = 1; 3739 _exceptionType = "java/lang/IllegalArgumentException"; 3740 _exceptionMessage = "remaining() < 1 < needed"; 3741 goto exit; 3742 } 3743 if (params == NULL) { 3744 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3745 params = (GLfloat *) (_paramsBase + _bufferOffset); 3746 } 3747 glGetTexParameterfv( 3748 (GLenum)target, 3749 (GLenum)pname, 3750 (GLfloat *)params 3751 ); 3752 3753 exit: 3754 if (_array) { 3755 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3756 } 3757 if (_exception) { 3758 jniThrowException(_env, _exceptionType, _exceptionMessage); 3759 } 3760 } 3761 3762 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3763 static void 3764 android_glGetTexParameteriv__II_3II 3765 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 3766 jint _exception = 0; 3767 const char * _exceptionType; 3768 const char * _exceptionMessage; 3769 GLint *params_base = (GLint *) 0; 3770 jint _remaining; 3771 GLint *params = (GLint *) 0; 3772 3773 if (!params_ref) { 3774 _exception = 1; 3775 _exceptionType = "java/lang/IllegalArgumentException"; 3776 _exceptionMessage = "params == null"; 3777 goto exit; 3778 } 3779 if (offset < 0) { 3780 _exception = 1; 3781 _exceptionType = "java/lang/IllegalArgumentException"; 3782 _exceptionMessage = "offset < 0"; 3783 goto exit; 3784 } 3785 _remaining = _env->GetArrayLength(params_ref) - offset; 3786 if (_remaining < 1) { 3787 _exception = 1; 3788 _exceptionType = "java/lang/IllegalArgumentException"; 3789 _exceptionMessage = "length - offset < 1 < needed"; 3790 goto exit; 3791 } 3792 params_base = (GLint *) 3793 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3794 params = params_base + offset; 3795 3796 glGetTexParameteriv( 3797 (GLenum)target, 3798 (GLenum)pname, 3799 (GLint *)params 3800 ); 3801 3802 exit: 3803 if (params_base) { 3804 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3805 _exception ? JNI_ABORT: 0); 3806 } 3807 if (_exception) { 3808 jniThrowException(_env, _exceptionType, _exceptionMessage); 3809 } 3810 } 3811 3812 /* void glGetTexParameteriv ( GLenum target, GLenum pname, GLint *params ) */ 3813 static void 3814 android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 3815 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 3816 jint _exception = 0; 3817 const char * _exceptionType; 3818 const char * _exceptionMessage; 3819 jarray _array = (jarray) 0; 3820 jint _bufferOffset = (jint) 0; 3821 jint _remaining; 3822 GLint *params = (GLint *) 0; 3823 3824 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3825 if (_remaining < 1) { 3826 _exception = 1; 3827 _exceptionType = "java/lang/IllegalArgumentException"; 3828 _exceptionMessage = "remaining() < 1 < needed"; 3829 goto exit; 3830 } 3831 if (params == NULL) { 3832 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3833 params = (GLint *) (_paramsBase + _bufferOffset); 3834 } 3835 glGetTexParameteriv( 3836 (GLenum)target, 3837 (GLenum)pname, 3838 (GLint *)params 3839 ); 3840 3841 exit: 3842 if (_array) { 3843 releasePointer(_env, _array, params, _exception ? JNI_FALSE : JNI_TRUE); 3844 } 3845 if (_exception) { 3846 jniThrowException(_env, _exceptionType, _exceptionMessage); 3847 } 3848 } 3849 3850 /* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */ 3851 static void 3852 android_glGetUniformfv__II_3FI 3853 (JNIEnv *_env, jobject _this, jint program, jint location, jfloatArray params_ref, jint offset) { 3854 jint _exception = 0; 3855 const char * _exceptionType; 3856 const char * _exceptionMessage; 3857 GLfloat *params_base = (GLfloat *) 0; 3858 jint _remaining; 3859 GLfloat *params = (GLfloat *) 0; 3860 3861 if (!params_ref) { 3862 _exception = 1; 3863 _exceptionType = "java/lang/IllegalArgumentException"; 3864 _exceptionMessage = "params == null"; 3865 goto exit; 3866 } 3867 if (offset < 0) { 3868 _exception = 1; 3869 _exceptionType = "java/lang/IllegalArgumentException"; 3870 _exceptionMessage = "offset < 0"; 3871 goto exit; 3872 } 3873 _remaining = _env->GetArrayLength(params_ref) - offset; 3874 params_base = (GLfloat *) 3875 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3876 params = params_base + offset; 3877 3878 glGetUniformfv( 3879 (GLuint)program, 3880 (GLint)location, 3881 (GLfloat *)params 3882 ); 3883 3884 exit: 3885 if (params_base) { 3886 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3887 _exception ? JNI_ABORT: 0); 3888 } 3889 if (_exception) { 3890 jniThrowException(_env, _exceptionType, _exceptionMessage); 3891 } 3892 } 3893 3894 /* void glGetUniformfv ( GLuint program, GLint location, GLfloat *params ) */ 3895 static void 3896 android_glGetUniformfv__IILjava_nio_FloatBuffer_2 3897 (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { 3898 jarray _array = (jarray) 0; 3899 jint _bufferOffset = (jint) 0; 3900 jint _remaining; 3901 GLfloat *params = (GLfloat *) 0; 3902 3903 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3904 if (params == NULL) { 3905 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3906 params = (GLfloat *) (_paramsBase + _bufferOffset); 3907 } 3908 glGetUniformfv( 3909 (GLuint)program, 3910 (GLint)location, 3911 (GLfloat *)params 3912 ); 3913 if (_array) { 3914 releasePointer(_env, _array, params, JNI_TRUE); 3915 } 3916 } 3917 3918 /* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */ 3919 static void 3920 android_glGetUniformiv__II_3II 3921 (JNIEnv *_env, jobject _this, jint program, jint location, jintArray params_ref, jint offset) { 3922 jint _exception = 0; 3923 const char * _exceptionType; 3924 const char * _exceptionMessage; 3925 GLint *params_base = (GLint *) 0; 3926 jint _remaining; 3927 GLint *params = (GLint *) 0; 3928 3929 if (!params_ref) { 3930 _exception = 1; 3931 _exceptionType = "java/lang/IllegalArgumentException"; 3932 _exceptionMessage = "params == null"; 3933 goto exit; 3934 } 3935 if (offset < 0) { 3936 _exception = 1; 3937 _exceptionType = "java/lang/IllegalArgumentException"; 3938 _exceptionMessage = "offset < 0"; 3939 goto exit; 3940 } 3941 _remaining = _env->GetArrayLength(params_ref) - offset; 3942 params_base = (GLint *) 3943 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 3944 params = params_base + offset; 3945 3946 glGetUniformiv( 3947 (GLuint)program, 3948 (GLint)location, 3949 (GLint *)params 3950 ); 3951 3952 exit: 3953 if (params_base) { 3954 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 3955 _exception ? JNI_ABORT: 0); 3956 } 3957 if (_exception) { 3958 jniThrowException(_env, _exceptionType, _exceptionMessage); 3959 } 3960 } 3961 3962 /* void glGetUniformiv ( GLuint program, GLint location, GLint *params ) */ 3963 static void 3964 android_glGetUniformiv__IILjava_nio_IntBuffer_2 3965 (JNIEnv *_env, jobject _this, jint program, jint location, jobject params_buf) { 3966 jarray _array = (jarray) 0; 3967 jint _bufferOffset = (jint) 0; 3968 jint _remaining; 3969 GLint *params = (GLint *) 0; 3970 3971 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 3972 if (params == NULL) { 3973 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 3974 params = (GLint *) (_paramsBase + _bufferOffset); 3975 } 3976 glGetUniformiv( 3977 (GLuint)program, 3978 (GLint)location, 3979 (GLint *)params 3980 ); 3981 if (_array) { 3982 releasePointer(_env, _array, params, JNI_TRUE); 3983 } 3984 } 3985 3986 /* int glGetUniformLocation ( GLuint program, const char *name ) */ 3987 static jint 3988 android_glGetUniformLocation__ILjava_lang_String_2 3989 (JNIEnv *_env, jobject _this, jint program, jstring name) { 3990 jint _exception = 0; 3991 const char * _exceptionType; 3992 const char * _exceptionMessage; 3993 int _returnValue = 0; 3994 const char* _nativename = 0; 3995 3996 if (!name) { 3997 _exceptionType = "java/lang/IllegalArgumentException"; 3998 _exceptionMessage = "name == null"; 3999 goto exit; 4000 } 4001 _nativename = _env->GetStringUTFChars(name, 0); 4002 4003 _returnValue = glGetUniformLocation( 4004 (GLuint)program, 4005 (char *)_nativename 4006 ); 4007 4008 exit: 4009 if (_nativename) { 4010 _env->ReleaseStringUTFChars(name, _nativename); 4011 } 4012 4013 if (_exception) { 4014 jniThrowException(_env, _exceptionType, _exceptionMessage); 4015 } 4016 return _returnValue; 4017 } 4018 4019 /* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */ 4020 static void 4021 android_glGetVertexAttribfv__II_3FI 4022 (JNIEnv *_env, jobject _this, jint index, jint pname, jfloatArray params_ref, jint offset) { 4023 jint _exception = 0; 4024 const char * _exceptionType; 4025 const char * _exceptionMessage; 4026 GLfloat *params_base = (GLfloat *) 0; 4027 jint _remaining; 4028 GLfloat *params = (GLfloat *) 0; 4029 4030 if (!params_ref) { 4031 _exception = 1; 4032 _exceptionType = "java/lang/IllegalArgumentException"; 4033 _exceptionMessage = "params == null"; 4034 goto exit; 4035 } 4036 if (offset < 0) { 4037 _exception = 1; 4038 _exceptionType = "java/lang/IllegalArgumentException"; 4039 _exceptionMessage = "offset < 0"; 4040 goto exit; 4041 } 4042 _remaining = _env->GetArrayLength(params_ref) - offset; 4043 params_base = (GLfloat *) 4044 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4045 params = params_base + offset; 4046 4047 glGetVertexAttribfv( 4048 (GLuint)index, 4049 (GLenum)pname, 4050 (GLfloat *)params 4051 ); 4052 4053 exit: 4054 if (params_base) { 4055 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4056 _exception ? JNI_ABORT: 0); 4057 } 4058 if (_exception) { 4059 jniThrowException(_env, _exceptionType, _exceptionMessage); 4060 } 4061 } 4062 4063 /* void glGetVertexAttribfv ( GLuint index, GLenum pname, GLfloat *params ) */ 4064 static void 4065 android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 4066 (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { 4067 jarray _array = (jarray) 0; 4068 jint _bufferOffset = (jint) 0; 4069 jint _remaining; 4070 GLfloat *params = (GLfloat *) 0; 4071 4072 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4073 if (params == NULL) { 4074 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4075 params = (GLfloat *) (_paramsBase + _bufferOffset); 4076 } 4077 glGetVertexAttribfv( 4078 (GLuint)index, 4079 (GLenum)pname, 4080 (GLfloat *)params 4081 ); 4082 if (_array) { 4083 releasePointer(_env, _array, params, JNI_TRUE); 4084 } 4085 } 4086 4087 /* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */ 4088 static void 4089 android_glGetVertexAttribiv__II_3II 4090 (JNIEnv *_env, jobject _this, jint index, jint pname, jintArray params_ref, jint offset) { 4091 jint _exception = 0; 4092 const char * _exceptionType; 4093 const char * _exceptionMessage; 4094 GLint *params_base = (GLint *) 0; 4095 jint _remaining; 4096 GLint *params = (GLint *) 0; 4097 4098 if (!params_ref) { 4099 _exception = 1; 4100 _exceptionType = "java/lang/IllegalArgumentException"; 4101 _exceptionMessage = "params == null"; 4102 goto exit; 4103 } 4104 if (offset < 0) { 4105 _exception = 1; 4106 _exceptionType = "java/lang/IllegalArgumentException"; 4107 _exceptionMessage = "offset < 0"; 4108 goto exit; 4109 } 4110 _remaining = _env->GetArrayLength(params_ref) - offset; 4111 params_base = (GLint *) 4112 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4113 params = params_base + offset; 4114 4115 glGetVertexAttribiv( 4116 (GLuint)index, 4117 (GLenum)pname, 4118 (GLint *)params 4119 ); 4120 4121 exit: 4122 if (params_base) { 4123 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4124 _exception ? JNI_ABORT: 0); 4125 } 4126 if (_exception) { 4127 jniThrowException(_env, _exceptionType, _exceptionMessage); 4128 } 4129 } 4130 4131 /* void glGetVertexAttribiv ( GLuint index, GLenum pname, GLint *params ) */ 4132 static void 4133 android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 4134 (JNIEnv *_env, jobject _this, jint index, jint pname, jobject params_buf) { 4135 jarray _array = (jarray) 0; 4136 jint _bufferOffset = (jint) 0; 4137 jint _remaining; 4138 GLint *params = (GLint *) 0; 4139 4140 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4141 if (params == NULL) { 4142 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4143 params = (GLint *) (_paramsBase + _bufferOffset); 4144 } 4145 glGetVertexAttribiv( 4146 (GLuint)index, 4147 (GLenum)pname, 4148 (GLint *)params 4149 ); 4150 if (_array) { 4151 releasePointer(_env, _array, params, JNI_TRUE); 4152 } 4153 } 4154 4155 /* void glHint ( GLenum target, GLenum mode ) */ 4156 static void 4157 android_glHint__II 4158 (JNIEnv *_env, jobject _this, jint target, jint mode) { 4159 glHint( 4160 (GLenum)target, 4161 (GLenum)mode 4162 ); 4163 } 4164 4165 /* GLboolean glIsBuffer ( GLuint buffer ) */ 4166 static jboolean 4167 android_glIsBuffer__I 4168 (JNIEnv *_env, jobject _this, jint buffer) { 4169 GLboolean _returnValue; 4170 _returnValue = glIsBuffer( 4171 (GLuint)buffer 4172 ); 4173 return _returnValue; 4174 } 4175 4176 /* GLboolean glIsEnabled ( GLenum cap ) */ 4177 static jboolean 4178 android_glIsEnabled__I 4179 (JNIEnv *_env, jobject _this, jint cap) { 4180 GLboolean _returnValue; 4181 _returnValue = glIsEnabled( 4182 (GLenum)cap 4183 ); 4184 return _returnValue; 4185 } 4186 4187 /* GLboolean glIsFramebuffer ( GLuint framebuffer ) */ 4188 static jboolean 4189 android_glIsFramebuffer__I 4190 (JNIEnv *_env, jobject _this, jint framebuffer) { 4191 GLboolean _returnValue; 4192 _returnValue = glIsFramebuffer( 4193 (GLuint)framebuffer 4194 ); 4195 return _returnValue; 4196 } 4197 4198 /* GLboolean glIsProgram ( GLuint program ) */ 4199 static jboolean 4200 android_glIsProgram__I 4201 (JNIEnv *_env, jobject _this, jint program) { 4202 GLboolean _returnValue; 4203 _returnValue = glIsProgram( 4204 (GLuint)program 4205 ); 4206 return _returnValue; 4207 } 4208 4209 /* GLboolean glIsRenderbuffer ( GLuint renderbuffer ) */ 4210 static jboolean 4211 android_glIsRenderbuffer__I 4212 (JNIEnv *_env, jobject _this, jint renderbuffer) { 4213 GLboolean _returnValue; 4214 _returnValue = glIsRenderbuffer( 4215 (GLuint)renderbuffer 4216 ); 4217 return _returnValue; 4218 } 4219 4220 /* GLboolean glIsShader ( GLuint shader ) */ 4221 static jboolean 4222 android_glIsShader__I 4223 (JNIEnv *_env, jobject _this, jint shader) { 4224 GLboolean _returnValue; 4225 _returnValue = glIsShader( 4226 (GLuint)shader 4227 ); 4228 return _returnValue; 4229 } 4230 4231 /* GLboolean glIsTexture ( GLuint texture ) */ 4232 static jboolean 4233 android_glIsTexture__I 4234 (JNIEnv *_env, jobject _this, jint texture) { 4235 GLboolean _returnValue; 4236 _returnValue = glIsTexture( 4237 (GLuint)texture 4238 ); 4239 return _returnValue; 4240 } 4241 4242 /* void glLineWidth ( GLfloat width ) */ 4243 static void 4244 android_glLineWidth__F 4245 (JNIEnv *_env, jobject _this, jfloat width) { 4246 glLineWidth( 4247 (GLfloat)width 4248 ); 4249 } 4250 4251 /* void glLinkProgram ( GLuint program ) */ 4252 static void 4253 android_glLinkProgram__I 4254 (JNIEnv *_env, jobject _this, jint program) { 4255 glLinkProgram( 4256 (GLuint)program 4257 ); 4258 } 4259 4260 /* void glPixelStorei ( GLenum pname, GLint param ) */ 4261 static void 4262 android_glPixelStorei__II 4263 (JNIEnv *_env, jobject _this, jint pname, jint param) { 4264 glPixelStorei( 4265 (GLenum)pname, 4266 (GLint)param 4267 ); 4268 } 4269 4270 /* void glPolygonOffset ( GLfloat factor, GLfloat units ) */ 4271 static void 4272 android_glPolygonOffset__FF 4273 (JNIEnv *_env, jobject _this, jfloat factor, jfloat units) { 4274 glPolygonOffset( 4275 (GLfloat)factor, 4276 (GLfloat)units 4277 ); 4278 } 4279 4280 /* void glReadPixels ( GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels ) */ 4281 static void 4282 android_glReadPixels__IIIIIILjava_nio_Buffer_2 4283 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height, jint format, jint type, jobject pixels_buf) { 4284 jarray _array = (jarray) 0; 4285 jint _bufferOffset = (jint) 0; 4286 jint _remaining; 4287 GLvoid *pixels = (GLvoid *) 0; 4288 4289 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 4290 if (pixels == NULL) { 4291 char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4292 pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 4293 } 4294 glReadPixels( 4295 (GLint)x, 4296 (GLint)y, 4297 (GLsizei)width, 4298 (GLsizei)height, 4299 (GLenum)format, 4300 (GLenum)type, 4301 (GLvoid *)pixels 4302 ); 4303 if (_array) { 4304 releasePointer(_env, _array, pixels, JNI_TRUE); 4305 } 4306 } 4307 4308 /* void glReleaseShaderCompiler ( void ) */ 4309 static void 4310 android_glReleaseShaderCompiler__ 4311 (JNIEnv *_env, jobject _this) { 4312 glReleaseShaderCompiler(); 4313 } 4314 4315 /* void glRenderbufferStorage ( GLenum target, GLenum internalformat, GLsizei width, GLsizei height ) */ 4316 static void 4317 android_glRenderbufferStorage__IIII 4318 (JNIEnv *_env, jobject _this, jint target, jint internalformat, jint width, jint height) { 4319 glRenderbufferStorage( 4320 (GLenum)target, 4321 (GLenum)internalformat, 4322 (GLsizei)width, 4323 (GLsizei)height 4324 ); 4325 } 4326 4327 /* void glSampleCoverage ( GLclampf value, GLboolean invert ) */ 4328 static void 4329 android_glSampleCoverage__FZ 4330 (JNIEnv *_env, jobject _this, jfloat value, jboolean invert) { 4331 glSampleCoverage( 4332 (GLclampf)value, 4333 (GLboolean)invert 4334 ); 4335 } 4336 4337 /* void glScissor ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 4338 static void 4339 android_glScissor__IIII 4340 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 4341 glScissor( 4342 (GLint)x, 4343 (GLint)y, 4344 (GLsizei)width, 4345 (GLsizei)height 4346 ); 4347 } 4348 4349 /* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */ 4350 static void 4351 android_glShaderBinary__I_3IIILjava_nio_Buffer_2I 4352 (JNIEnv *_env, jobject _this, jint n, jintArray shaders_ref, jint offset, jint binaryformat, jobject binary_buf, jint length) { 4353 jint _exception = 0; 4354 const char * _exceptionType; 4355 const char * _exceptionMessage; 4356 jarray _array = (jarray) 0; 4357 jint _bufferOffset = (jint) 0; 4358 GLuint *shaders_base = (GLuint *) 0; 4359 jint _shadersRemaining; 4360 GLuint *shaders = (GLuint *) 0; 4361 jint _binaryRemaining; 4362 GLvoid *binary = (GLvoid *) 0; 4363 4364 if (!shaders_ref) { 4365 _exception = 1; 4366 _exceptionType = "java/lang/IllegalArgumentException"; 4367 _exceptionMessage = "shaders == null"; 4368 goto exit; 4369 } 4370 if (offset < 0) { 4371 _exception = 1; 4372 _exceptionType = "java/lang/IllegalArgumentException"; 4373 _exceptionMessage = "offset < 0"; 4374 goto exit; 4375 } 4376 _shadersRemaining = _env->GetArrayLength(shaders_ref) - offset; 4377 shaders_base = (GLuint *) 4378 _env->GetPrimitiveArrayCritical(shaders_ref, (jboolean *)0); 4379 shaders = shaders_base + offset; 4380 4381 binary = (GLvoid *)getPointer(_env, binary_buf, &_array, &_binaryRemaining, &_bufferOffset); 4382 if (binary == NULL) { 4383 char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4384 binary = (GLvoid *) (_binaryBase + _bufferOffset); 4385 } 4386 glShaderBinary( 4387 (GLsizei)n, 4388 (GLuint *)shaders, 4389 (GLenum)binaryformat, 4390 (GLvoid *)binary, 4391 (GLsizei)length 4392 ); 4393 4394 exit: 4395 if (_array) { 4396 releasePointer(_env, _array, binary, JNI_FALSE); 4397 } 4398 if (shaders_base) { 4399 _env->ReleasePrimitiveArrayCritical(shaders_ref, shaders_base, 4400 JNI_ABORT); 4401 } 4402 if (_exception) { 4403 jniThrowException(_env, _exceptionType, _exceptionMessage); 4404 } 4405 } 4406 4407 /* void glShaderBinary ( GLsizei n, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length ) */ 4408 static void 4409 android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I 4410 (JNIEnv *_env, jobject _this, jint n, jobject shaders_buf, jint binaryformat, jobject binary_buf, jint length) { 4411 jarray _shadersArray = (jarray) 0; 4412 jint _shadersBufferOffset = (jint) 0; 4413 jarray _binaryArray = (jarray) 0; 4414 jint _binaryBufferOffset = (jint) 0; 4415 jint _shadersRemaining; 4416 GLuint *shaders = (GLuint *) 0; 4417 jint _binaryRemaining; 4418 GLvoid *binary = (GLvoid *) 0; 4419 4420 shaders = (GLuint *)getPointer(_env, shaders_buf, &_shadersArray, &_shadersRemaining, &_shadersBufferOffset); 4421 binary = (GLvoid *)getPointer(_env, binary_buf, &_binaryArray, &_binaryRemaining, &_binaryBufferOffset); 4422 if (shaders == NULL) { 4423 char * _shadersBase = (char *)_env->GetPrimitiveArrayCritical(_shadersArray, (jboolean *) 0); 4424 shaders = (GLuint *) (_shadersBase + _shadersBufferOffset); 4425 } 4426 if (binary == NULL) { 4427 char * _binaryBase = (char *)_env->GetPrimitiveArrayCritical(_binaryArray, (jboolean *) 0); 4428 binary = (GLvoid *) (_binaryBase + _binaryBufferOffset); 4429 } 4430 glShaderBinary( 4431 (GLsizei)n, 4432 (GLuint *)shaders, 4433 (GLenum)binaryformat, 4434 (GLvoid *)binary, 4435 (GLsizei)length 4436 ); 4437 if (_binaryArray) { 4438 releasePointer(_env, _binaryArray, binary, JNI_FALSE); 4439 } 4440 if (_shadersArray) { 4441 releasePointer(_env, _shadersArray, shaders, JNI_FALSE); 4442 } 4443 } 4444 4445 4446 /* void glShaderSource ( GLuint shader, GLsizei count, const GLchar ** string, const GLint * length ) */ 4447 static 4448 void 4449 android_glShaderSource 4450 (JNIEnv *_env, jobject _this, jint shader, jstring string) { 4451 4452 if (!string) { 4453 jniThrowException(_env, "java/lang/IllegalArgumentException", "string == null"); 4454 return; 4455 } 4456 4457 const char* nativeString = _env->GetStringUTFChars(string, 0); 4458 const char* strings[] = {nativeString}; 4459 glShaderSource(shader, 1, strings, 0); 4460 _env->ReleaseStringUTFChars(string, nativeString); 4461 } 4462 /* void glStencilFunc ( GLenum func, GLint ref, GLuint mask ) */ 4463 static void 4464 android_glStencilFunc__III 4465 (JNIEnv *_env, jobject _this, jint func, jint ref, jint mask) { 4466 glStencilFunc( 4467 (GLenum)func, 4468 (GLint)ref, 4469 (GLuint)mask 4470 ); 4471 } 4472 4473 /* void glStencilFuncSeparate ( GLenum face, GLenum func, GLint ref, GLuint mask ) */ 4474 static void 4475 android_glStencilFuncSeparate__IIII 4476 (JNIEnv *_env, jobject _this, jint face, jint func, jint ref, jint mask) { 4477 glStencilFuncSeparate( 4478 (GLenum)face, 4479 (GLenum)func, 4480 (GLint)ref, 4481 (GLuint)mask 4482 ); 4483 } 4484 4485 /* void glStencilMask ( GLuint mask ) */ 4486 static void 4487 android_glStencilMask__I 4488 (JNIEnv *_env, jobject _this, jint mask) { 4489 glStencilMask( 4490 (GLuint)mask 4491 ); 4492 } 4493 4494 /* void glStencilMaskSeparate ( GLenum face, GLuint mask ) */ 4495 static void 4496 android_glStencilMaskSeparate__II 4497 (JNIEnv *_env, jobject _this, jint face, jint mask) { 4498 glStencilMaskSeparate( 4499 (GLenum)face, 4500 (GLuint)mask 4501 ); 4502 } 4503 4504 /* void glStencilOp ( GLenum fail, GLenum zfail, GLenum zpass ) */ 4505 static void 4506 android_glStencilOp__III 4507 (JNIEnv *_env, jobject _this, jint fail, jint zfail, jint zpass) { 4508 glStencilOp( 4509 (GLenum)fail, 4510 (GLenum)zfail, 4511 (GLenum)zpass 4512 ); 4513 } 4514 4515 /* void glStencilOpSeparate ( GLenum face, GLenum fail, GLenum zfail, GLenum zpass ) */ 4516 static void 4517 android_glStencilOpSeparate__IIII 4518 (JNIEnv *_env, jobject _this, jint face, jint fail, jint zfail, jint zpass) { 4519 glStencilOpSeparate( 4520 (GLenum)face, 4521 (GLenum)fail, 4522 (GLenum)zfail, 4523 (GLenum)zpass 4524 ); 4525 } 4526 4527 /* void glTexImage2D ( GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels ) */ 4528 static void 4529 android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 4530 (JNIEnv *_env, jobject _this, jint target, jint level, jint internalformat, jint width, jint height, jint border, jint format, jint type, jobject pixels_buf) { 4531 jarray _array = (jarray) 0; 4532 jint _bufferOffset = (jint) 0; 4533 jint _remaining; 4534 GLvoid *pixels = (GLvoid *) 0; 4535 4536 if (pixels_buf) { 4537 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 4538 } 4539 if (pixels_buf && pixels == NULL) { 4540 char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4541 pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 4542 } 4543 glTexImage2D( 4544 (GLenum)target, 4545 (GLint)level, 4546 (GLint)internalformat, 4547 (GLsizei)width, 4548 (GLsizei)height, 4549 (GLint)border, 4550 (GLenum)format, 4551 (GLenum)type, 4552 (GLvoid *)pixels 4553 ); 4554 if (_array) { 4555 releasePointer(_env, _array, pixels, JNI_FALSE); 4556 } 4557 } 4558 4559 /* void glTexParameterf ( GLenum target, GLenum pname, GLfloat param ) */ 4560 static void 4561 android_glTexParameterf__IIF 4562 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloat param) { 4563 glTexParameterf( 4564 (GLenum)target, 4565 (GLenum)pname, 4566 (GLfloat)param 4567 ); 4568 } 4569 4570 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 4571 static void 4572 android_glTexParameterfv__II_3FI 4573 (JNIEnv *_env, jobject _this, jint target, jint pname, jfloatArray params_ref, jint offset) { 4574 jint _exception = 0; 4575 const char * _exceptionType; 4576 const char * _exceptionMessage; 4577 GLfloat *params_base = (GLfloat *) 0; 4578 jint _remaining; 4579 GLfloat *params = (GLfloat *) 0; 4580 4581 if (!params_ref) { 4582 _exception = 1; 4583 _exceptionType = "java/lang/IllegalArgumentException"; 4584 _exceptionMessage = "params == null"; 4585 goto exit; 4586 } 4587 if (offset < 0) { 4588 _exception = 1; 4589 _exceptionType = "java/lang/IllegalArgumentException"; 4590 _exceptionMessage = "offset < 0"; 4591 goto exit; 4592 } 4593 _remaining = _env->GetArrayLength(params_ref) - offset; 4594 if (_remaining < 1) { 4595 _exception = 1; 4596 _exceptionType = "java/lang/IllegalArgumentException"; 4597 _exceptionMessage = "length - offset < 1 < needed"; 4598 goto exit; 4599 } 4600 params_base = (GLfloat *) 4601 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4602 params = params_base + offset; 4603 4604 glTexParameterfv( 4605 (GLenum)target, 4606 (GLenum)pname, 4607 (GLfloat *)params 4608 ); 4609 4610 exit: 4611 if (params_base) { 4612 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4613 JNI_ABORT); 4614 } 4615 if (_exception) { 4616 jniThrowException(_env, _exceptionType, _exceptionMessage); 4617 } 4618 } 4619 4620 /* void glTexParameterfv ( GLenum target, GLenum pname, const GLfloat *params ) */ 4621 static void 4622 android_glTexParameterfv__IILjava_nio_FloatBuffer_2 4623 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 4624 jint _exception = 0; 4625 const char * _exceptionType; 4626 const char * _exceptionMessage; 4627 jarray _array = (jarray) 0; 4628 jint _bufferOffset = (jint) 0; 4629 jint _remaining; 4630 GLfloat *params = (GLfloat *) 0; 4631 4632 params = (GLfloat *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4633 if (_remaining < 1) { 4634 _exception = 1; 4635 _exceptionType = "java/lang/IllegalArgumentException"; 4636 _exceptionMessage = "remaining() < 1 < needed"; 4637 goto exit; 4638 } 4639 if (params == NULL) { 4640 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4641 params = (GLfloat *) (_paramsBase + _bufferOffset); 4642 } 4643 glTexParameterfv( 4644 (GLenum)target, 4645 (GLenum)pname, 4646 (GLfloat *)params 4647 ); 4648 4649 exit: 4650 if (_array) { 4651 releasePointer(_env, _array, params, JNI_FALSE); 4652 } 4653 if (_exception) { 4654 jniThrowException(_env, _exceptionType, _exceptionMessage); 4655 } 4656 } 4657 4658 /* void glTexParameteri ( GLenum target, GLenum pname, GLint param ) */ 4659 static void 4660 android_glTexParameteri__III 4661 (JNIEnv *_env, jobject _this, jint target, jint pname, jint param) { 4662 glTexParameteri( 4663 (GLenum)target, 4664 (GLenum)pname, 4665 (GLint)param 4666 ); 4667 } 4668 4669 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 4670 static void 4671 android_glTexParameteriv__II_3II 4672 (JNIEnv *_env, jobject _this, jint target, jint pname, jintArray params_ref, jint offset) { 4673 jint _exception = 0; 4674 const char * _exceptionType; 4675 const char * _exceptionMessage; 4676 GLint *params_base = (GLint *) 0; 4677 jint _remaining; 4678 GLint *params = (GLint *) 0; 4679 4680 if (!params_ref) { 4681 _exception = 1; 4682 _exceptionType = "java/lang/IllegalArgumentException"; 4683 _exceptionMessage = "params == null"; 4684 goto exit; 4685 } 4686 if (offset < 0) { 4687 _exception = 1; 4688 _exceptionType = "java/lang/IllegalArgumentException"; 4689 _exceptionMessage = "offset < 0"; 4690 goto exit; 4691 } 4692 _remaining = _env->GetArrayLength(params_ref) - offset; 4693 if (_remaining < 1) { 4694 _exception = 1; 4695 _exceptionType = "java/lang/IllegalArgumentException"; 4696 _exceptionMessage = "length - offset < 1 < needed"; 4697 goto exit; 4698 } 4699 params_base = (GLint *) 4700 _env->GetPrimitiveArrayCritical(params_ref, (jboolean *)0); 4701 params = params_base + offset; 4702 4703 glTexParameteriv( 4704 (GLenum)target, 4705 (GLenum)pname, 4706 (GLint *)params 4707 ); 4708 4709 exit: 4710 if (params_base) { 4711 _env->ReleasePrimitiveArrayCritical(params_ref, params_base, 4712 JNI_ABORT); 4713 } 4714 if (_exception) { 4715 jniThrowException(_env, _exceptionType, _exceptionMessage); 4716 } 4717 } 4718 4719 /* void glTexParameteriv ( GLenum target, GLenum pname, const GLint *params ) */ 4720 static void 4721 android_glTexParameteriv__IILjava_nio_IntBuffer_2 4722 (JNIEnv *_env, jobject _this, jint target, jint pname, jobject params_buf) { 4723 jint _exception = 0; 4724 const char * _exceptionType; 4725 const char * _exceptionMessage; 4726 jarray _array = (jarray) 0; 4727 jint _bufferOffset = (jint) 0; 4728 jint _remaining; 4729 GLint *params = (GLint *) 0; 4730 4731 params = (GLint *)getPointer(_env, params_buf, &_array, &_remaining, &_bufferOffset); 4732 if (_remaining < 1) { 4733 _exception = 1; 4734 _exceptionType = "java/lang/IllegalArgumentException"; 4735 _exceptionMessage = "remaining() < 1 < needed"; 4736 goto exit; 4737 } 4738 if (params == NULL) { 4739 char * _paramsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4740 params = (GLint *) (_paramsBase + _bufferOffset); 4741 } 4742 glTexParameteriv( 4743 (GLenum)target, 4744 (GLenum)pname, 4745 (GLint *)params 4746 ); 4747 4748 exit: 4749 if (_array) { 4750 releasePointer(_env, _array, params, JNI_FALSE); 4751 } 4752 if (_exception) { 4753 jniThrowException(_env, _exceptionType, _exceptionMessage); 4754 } 4755 } 4756 4757 /* void glTexSubImage2D ( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels ) */ 4758 static void 4759 android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 4760 (JNIEnv *_env, jobject _this, jint target, jint level, jint xoffset, jint yoffset, jint width, jint height, jint format, jint type, jobject pixels_buf) { 4761 jarray _array = (jarray) 0; 4762 jint _bufferOffset = (jint) 0; 4763 jint _remaining; 4764 GLvoid *pixels = (GLvoid *) 0; 4765 4766 if (pixels_buf) { 4767 pixels = (GLvoid *)getPointer(_env, pixels_buf, &_array, &_remaining, &_bufferOffset); 4768 } 4769 if (pixels_buf && pixels == NULL) { 4770 char * _pixelsBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4771 pixels = (GLvoid *) (_pixelsBase + _bufferOffset); 4772 } 4773 glTexSubImage2D( 4774 (GLenum)target, 4775 (GLint)level, 4776 (GLint)xoffset, 4777 (GLint)yoffset, 4778 (GLsizei)width, 4779 (GLsizei)height, 4780 (GLenum)format, 4781 (GLenum)type, 4782 (GLvoid *)pixels 4783 ); 4784 if (_array) { 4785 releasePointer(_env, _array, pixels, JNI_FALSE); 4786 } 4787 } 4788 4789 /* void glUniform1f ( GLint location, GLfloat x ) */ 4790 static void 4791 android_glUniform1f__IF 4792 (JNIEnv *_env, jobject _this, jint location, jfloat x) { 4793 glUniform1f( 4794 (GLint)location, 4795 (GLfloat)x 4796 ); 4797 } 4798 4799 /* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4800 static void 4801 android_glUniform1fv__II_3FI 4802 (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 4803 jint _exception = 0; 4804 const char * _exceptionType; 4805 const char * _exceptionMessage; 4806 GLfloat *v_base = (GLfloat *) 0; 4807 jint _remaining; 4808 GLfloat *v = (GLfloat *) 0; 4809 4810 if (!v_ref) { 4811 _exception = 1; 4812 _exceptionType = "java/lang/IllegalArgumentException"; 4813 _exceptionMessage = "v == null"; 4814 goto exit; 4815 } 4816 if (offset < 0) { 4817 _exception = 1; 4818 _exceptionType = "java/lang/IllegalArgumentException"; 4819 _exceptionMessage = "offset < 0"; 4820 goto exit; 4821 } 4822 _remaining = _env->GetArrayLength(v_ref) - offset; 4823 v_base = (GLfloat *) 4824 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4825 v = v_base + offset; 4826 4827 glUniform1fv( 4828 (GLint)location, 4829 (GLsizei)count, 4830 (GLfloat *)v 4831 ); 4832 4833 exit: 4834 if (v_base) { 4835 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4836 JNI_ABORT); 4837 } 4838 if (_exception) { 4839 jniThrowException(_env, _exceptionType, _exceptionMessage); 4840 } 4841 } 4842 4843 /* void glUniform1fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4844 static void 4845 android_glUniform1fv__IILjava_nio_FloatBuffer_2 4846 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 4847 jarray _array = (jarray) 0; 4848 jint _bufferOffset = (jint) 0; 4849 jint _remaining; 4850 GLfloat *v = (GLfloat *) 0; 4851 4852 v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 4853 if (v == NULL) { 4854 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4855 v = (GLfloat *) (_vBase + _bufferOffset); 4856 } 4857 glUniform1fv( 4858 (GLint)location, 4859 (GLsizei)count, 4860 (GLfloat *)v 4861 ); 4862 if (_array) { 4863 releasePointer(_env, _array, v, JNI_FALSE); 4864 } 4865 } 4866 4867 /* void glUniform1i ( GLint location, GLint x ) */ 4868 static void 4869 android_glUniform1i__II 4870 (JNIEnv *_env, jobject _this, jint location, jint x) { 4871 glUniform1i( 4872 (GLint)location, 4873 (GLint)x 4874 ); 4875 } 4876 4877 /* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */ 4878 static void 4879 android_glUniform1iv__II_3II 4880 (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 4881 jint _exception = 0; 4882 const char * _exceptionType; 4883 const char * _exceptionMessage; 4884 GLint *v_base = (GLint *) 0; 4885 jint _remaining; 4886 GLint *v = (GLint *) 0; 4887 4888 if (!v_ref) { 4889 _exception = 1; 4890 _exceptionType = "java/lang/IllegalArgumentException"; 4891 _exceptionMessage = "v == null"; 4892 goto exit; 4893 } 4894 if (offset < 0) { 4895 _exception = 1; 4896 _exceptionType = "java/lang/IllegalArgumentException"; 4897 _exceptionMessage = "offset < 0"; 4898 goto exit; 4899 } 4900 _remaining = _env->GetArrayLength(v_ref) - offset; 4901 v_base = (GLint *) 4902 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4903 v = v_base + offset; 4904 4905 glUniform1iv( 4906 (GLint)location, 4907 (GLsizei)count, 4908 (GLint *)v 4909 ); 4910 4911 exit: 4912 if (v_base) { 4913 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4914 JNI_ABORT); 4915 } 4916 if (_exception) { 4917 jniThrowException(_env, _exceptionType, _exceptionMessage); 4918 } 4919 } 4920 4921 /* void glUniform1iv ( GLint location, GLsizei count, const GLint *v ) */ 4922 static void 4923 android_glUniform1iv__IILjava_nio_IntBuffer_2 4924 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 4925 jarray _array = (jarray) 0; 4926 jint _bufferOffset = (jint) 0; 4927 jint _remaining; 4928 GLint *v = (GLint *) 0; 4929 4930 v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 4931 if (v == NULL) { 4932 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 4933 v = (GLint *) (_vBase + _bufferOffset); 4934 } 4935 glUniform1iv( 4936 (GLint)location, 4937 (GLsizei)count, 4938 (GLint *)v 4939 ); 4940 if (_array) { 4941 releasePointer(_env, _array, v, JNI_FALSE); 4942 } 4943 } 4944 4945 /* void glUniform2f ( GLint location, GLfloat x, GLfloat y ) */ 4946 static void 4947 android_glUniform2f__IFF 4948 (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y) { 4949 glUniform2f( 4950 (GLint)location, 4951 (GLfloat)x, 4952 (GLfloat)y 4953 ); 4954 } 4955 4956 /* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */ 4957 static void 4958 android_glUniform2fv__II_3FI 4959 (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 4960 jint _exception = 0; 4961 const char * _exceptionType; 4962 const char * _exceptionMessage; 4963 GLfloat *v_base = (GLfloat *) 0; 4964 jint _remaining; 4965 GLfloat *v = (GLfloat *) 0; 4966 4967 if (!v_ref) { 4968 _exception = 1; 4969 _exceptionType = "java/lang/IllegalArgumentException"; 4970 _exceptionMessage = "v == null"; 4971 goto exit; 4972 } 4973 if (offset < 0) { 4974 _exception = 1; 4975 _exceptionType = "java/lang/IllegalArgumentException"; 4976 _exceptionMessage = "offset < 0"; 4977 goto exit; 4978 } 4979 _remaining = _env->GetArrayLength(v_ref) - offset; 4980 v_base = (GLfloat *) 4981 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 4982 v = v_base + offset; 4983 4984 glUniform2fv( 4985 (GLint)location, 4986 (GLsizei)count, 4987 (GLfloat *)v 4988 ); 4989 4990 exit: 4991 if (v_base) { 4992 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 4993 JNI_ABORT); 4994 } 4995 if (_exception) { 4996 jniThrowException(_env, _exceptionType, _exceptionMessage); 4997 } 4998 } 4999 5000 /* void glUniform2fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5001 static void 5002 android_glUniform2fv__IILjava_nio_FloatBuffer_2 5003 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5004 jarray _array = (jarray) 0; 5005 jint _bufferOffset = (jint) 0; 5006 jint _remaining; 5007 GLfloat *v = (GLfloat *) 0; 5008 5009 v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5010 if (v == NULL) { 5011 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5012 v = (GLfloat *) (_vBase + _bufferOffset); 5013 } 5014 glUniform2fv( 5015 (GLint)location, 5016 (GLsizei)count, 5017 (GLfloat *)v 5018 ); 5019 if (_array) { 5020 releasePointer(_env, _array, v, JNI_FALSE); 5021 } 5022 } 5023 5024 /* void glUniform2i ( GLint location, GLint x, GLint y ) */ 5025 static void 5026 android_glUniform2i__III 5027 (JNIEnv *_env, jobject _this, jint location, jint x, jint y) { 5028 glUniform2i( 5029 (GLint)location, 5030 (GLint)x, 5031 (GLint)y 5032 ); 5033 } 5034 5035 /* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */ 5036 static void 5037 android_glUniform2iv__II_3II 5038 (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 5039 jint _exception = 0; 5040 const char * _exceptionType; 5041 const char * _exceptionMessage; 5042 GLint *v_base = (GLint *) 0; 5043 jint _remaining; 5044 GLint *v = (GLint *) 0; 5045 5046 if (!v_ref) { 5047 _exception = 1; 5048 _exceptionType = "java/lang/IllegalArgumentException"; 5049 _exceptionMessage = "v == null"; 5050 goto exit; 5051 } 5052 if (offset < 0) { 5053 _exception = 1; 5054 _exceptionType = "java/lang/IllegalArgumentException"; 5055 _exceptionMessage = "offset < 0"; 5056 goto exit; 5057 } 5058 _remaining = _env->GetArrayLength(v_ref) - offset; 5059 v_base = (GLint *) 5060 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5061 v = v_base + offset; 5062 5063 glUniform2iv( 5064 (GLint)location, 5065 (GLsizei)count, 5066 (GLint *)v 5067 ); 5068 5069 exit: 5070 if (v_base) { 5071 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5072 JNI_ABORT); 5073 } 5074 if (_exception) { 5075 jniThrowException(_env, _exceptionType, _exceptionMessage); 5076 } 5077 } 5078 5079 /* void glUniform2iv ( GLint location, GLsizei count, const GLint *v ) */ 5080 static void 5081 android_glUniform2iv__IILjava_nio_IntBuffer_2 5082 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5083 jarray _array = (jarray) 0; 5084 jint _bufferOffset = (jint) 0; 5085 jint _remaining; 5086 GLint *v = (GLint *) 0; 5087 5088 v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5089 if (v == NULL) { 5090 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5091 v = (GLint *) (_vBase + _bufferOffset); 5092 } 5093 glUniform2iv( 5094 (GLint)location, 5095 (GLsizei)count, 5096 (GLint *)v 5097 ); 5098 if (_array) { 5099 releasePointer(_env, _array, v, JNI_FALSE); 5100 } 5101 } 5102 5103 /* void glUniform3f ( GLint location, GLfloat x, GLfloat y, GLfloat z ) */ 5104 static void 5105 android_glUniform3f__IFFF 5106 (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z) { 5107 glUniform3f( 5108 (GLint)location, 5109 (GLfloat)x, 5110 (GLfloat)y, 5111 (GLfloat)z 5112 ); 5113 } 5114 5115 /* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5116 static void 5117 android_glUniform3fv__II_3FI 5118 (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 5119 jint _exception = 0; 5120 const char * _exceptionType; 5121 const char * _exceptionMessage; 5122 GLfloat *v_base = (GLfloat *) 0; 5123 jint _remaining; 5124 GLfloat *v = (GLfloat *) 0; 5125 5126 if (!v_ref) { 5127 _exception = 1; 5128 _exceptionType = "java/lang/IllegalArgumentException"; 5129 _exceptionMessage = "v == null"; 5130 goto exit; 5131 } 5132 if (offset < 0) { 5133 _exception = 1; 5134 _exceptionType = "java/lang/IllegalArgumentException"; 5135 _exceptionMessage = "offset < 0"; 5136 goto exit; 5137 } 5138 _remaining = _env->GetArrayLength(v_ref) - offset; 5139 v_base = (GLfloat *) 5140 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5141 v = v_base + offset; 5142 5143 glUniform3fv( 5144 (GLint)location, 5145 (GLsizei)count, 5146 (GLfloat *)v 5147 ); 5148 5149 exit: 5150 if (v_base) { 5151 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5152 JNI_ABORT); 5153 } 5154 if (_exception) { 5155 jniThrowException(_env, _exceptionType, _exceptionMessage); 5156 } 5157 } 5158 5159 /* void glUniform3fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5160 static void 5161 android_glUniform3fv__IILjava_nio_FloatBuffer_2 5162 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5163 jarray _array = (jarray) 0; 5164 jint _bufferOffset = (jint) 0; 5165 jint _remaining; 5166 GLfloat *v = (GLfloat *) 0; 5167 5168 v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5169 if (v == NULL) { 5170 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5171 v = (GLfloat *) (_vBase + _bufferOffset); 5172 } 5173 glUniform3fv( 5174 (GLint)location, 5175 (GLsizei)count, 5176 (GLfloat *)v 5177 ); 5178 if (_array) { 5179 releasePointer(_env, _array, v, JNI_FALSE); 5180 } 5181 } 5182 5183 /* void glUniform3i ( GLint location, GLint x, GLint y, GLint z ) */ 5184 static void 5185 android_glUniform3i__IIII 5186 (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z) { 5187 glUniform3i( 5188 (GLint)location, 5189 (GLint)x, 5190 (GLint)y, 5191 (GLint)z 5192 ); 5193 } 5194 5195 /* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */ 5196 static void 5197 android_glUniform3iv__II_3II 5198 (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 5199 jint _exception = 0; 5200 const char * _exceptionType; 5201 const char * _exceptionMessage; 5202 GLint *v_base = (GLint *) 0; 5203 jint _remaining; 5204 GLint *v = (GLint *) 0; 5205 5206 if (!v_ref) { 5207 _exception = 1; 5208 _exceptionType = "java/lang/IllegalArgumentException"; 5209 _exceptionMessage = "v == null"; 5210 goto exit; 5211 } 5212 if (offset < 0) { 5213 _exception = 1; 5214 _exceptionType = "java/lang/IllegalArgumentException"; 5215 _exceptionMessage = "offset < 0"; 5216 goto exit; 5217 } 5218 _remaining = _env->GetArrayLength(v_ref) - offset; 5219 v_base = (GLint *) 5220 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5221 v = v_base + offset; 5222 5223 glUniform3iv( 5224 (GLint)location, 5225 (GLsizei)count, 5226 (GLint *)v 5227 ); 5228 5229 exit: 5230 if (v_base) { 5231 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5232 JNI_ABORT); 5233 } 5234 if (_exception) { 5235 jniThrowException(_env, _exceptionType, _exceptionMessage); 5236 } 5237 } 5238 5239 /* void glUniform3iv ( GLint location, GLsizei count, const GLint *v ) */ 5240 static void 5241 android_glUniform3iv__IILjava_nio_IntBuffer_2 5242 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5243 jarray _array = (jarray) 0; 5244 jint _bufferOffset = (jint) 0; 5245 jint _remaining; 5246 GLint *v = (GLint *) 0; 5247 5248 v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5249 if (v == NULL) { 5250 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5251 v = (GLint *) (_vBase + _bufferOffset); 5252 } 5253 glUniform3iv( 5254 (GLint)location, 5255 (GLsizei)count, 5256 (GLint *)v 5257 ); 5258 if (_array) { 5259 releasePointer(_env, _array, v, JNI_FALSE); 5260 } 5261 } 5262 5263 /* void glUniform4f ( GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */ 5264 static void 5265 android_glUniform4f__IFFFF 5266 (JNIEnv *_env, jobject _this, jint location, jfloat x, jfloat y, jfloat z, jfloat w) { 5267 glUniform4f( 5268 (GLint)location, 5269 (GLfloat)x, 5270 (GLfloat)y, 5271 (GLfloat)z, 5272 (GLfloat)w 5273 ); 5274 } 5275 5276 /* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5277 static void 5278 android_glUniform4fv__II_3FI 5279 (JNIEnv *_env, jobject _this, jint location, jint count, jfloatArray v_ref, jint offset) { 5280 jint _exception = 0; 5281 const char * _exceptionType; 5282 const char * _exceptionMessage; 5283 GLfloat *v_base = (GLfloat *) 0; 5284 jint _remaining; 5285 GLfloat *v = (GLfloat *) 0; 5286 5287 if (!v_ref) { 5288 _exception = 1; 5289 _exceptionType = "java/lang/IllegalArgumentException"; 5290 _exceptionMessage = "v == null"; 5291 goto exit; 5292 } 5293 if (offset < 0) { 5294 _exception = 1; 5295 _exceptionType = "java/lang/IllegalArgumentException"; 5296 _exceptionMessage = "offset < 0"; 5297 goto exit; 5298 } 5299 _remaining = _env->GetArrayLength(v_ref) - offset; 5300 v_base = (GLfloat *) 5301 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5302 v = v_base + offset; 5303 5304 glUniform4fv( 5305 (GLint)location, 5306 (GLsizei)count, 5307 (GLfloat *)v 5308 ); 5309 5310 exit: 5311 if (v_base) { 5312 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5313 JNI_ABORT); 5314 } 5315 if (_exception) { 5316 jniThrowException(_env, _exceptionType, _exceptionMessage); 5317 } 5318 } 5319 5320 /* void glUniform4fv ( GLint location, GLsizei count, const GLfloat *v ) */ 5321 static void 5322 android_glUniform4fv__IILjava_nio_FloatBuffer_2 5323 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5324 jarray _array = (jarray) 0; 5325 jint _bufferOffset = (jint) 0; 5326 jint _remaining; 5327 GLfloat *v = (GLfloat *) 0; 5328 5329 v = (GLfloat *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5330 if (v == NULL) { 5331 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5332 v = (GLfloat *) (_vBase + _bufferOffset); 5333 } 5334 glUniform4fv( 5335 (GLint)location, 5336 (GLsizei)count, 5337 (GLfloat *)v 5338 ); 5339 if (_array) { 5340 releasePointer(_env, _array, v, JNI_FALSE); 5341 } 5342 } 5343 5344 /* void glUniform4i ( GLint location, GLint x, GLint y, GLint z, GLint w ) */ 5345 static void 5346 android_glUniform4i__IIIII 5347 (JNIEnv *_env, jobject _this, jint location, jint x, jint y, jint z, jint w) { 5348 glUniform4i( 5349 (GLint)location, 5350 (GLint)x, 5351 (GLint)y, 5352 (GLint)z, 5353 (GLint)w 5354 ); 5355 } 5356 5357 /* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */ 5358 static void 5359 android_glUniform4iv__II_3II 5360 (JNIEnv *_env, jobject _this, jint location, jint count, jintArray v_ref, jint offset) { 5361 jint _exception = 0; 5362 const char * _exceptionType; 5363 const char * _exceptionMessage; 5364 GLint *v_base = (GLint *) 0; 5365 jint _remaining; 5366 GLint *v = (GLint *) 0; 5367 5368 if (!v_ref) { 5369 _exception = 1; 5370 _exceptionType = "java/lang/IllegalArgumentException"; 5371 _exceptionMessage = "v == null"; 5372 goto exit; 5373 } 5374 if (offset < 0) { 5375 _exception = 1; 5376 _exceptionType = "java/lang/IllegalArgumentException"; 5377 _exceptionMessage = "offset < 0"; 5378 goto exit; 5379 } 5380 _remaining = _env->GetArrayLength(v_ref) - offset; 5381 v_base = (GLint *) 5382 _env->GetPrimitiveArrayCritical(v_ref, (jboolean *)0); 5383 v = v_base + offset; 5384 5385 glUniform4iv( 5386 (GLint)location, 5387 (GLsizei)count, 5388 (GLint *)v 5389 ); 5390 5391 exit: 5392 if (v_base) { 5393 _env->ReleasePrimitiveArrayCritical(v_ref, v_base, 5394 JNI_ABORT); 5395 } 5396 if (_exception) { 5397 jniThrowException(_env, _exceptionType, _exceptionMessage); 5398 } 5399 } 5400 5401 /* void glUniform4iv ( GLint location, GLsizei count, const GLint *v ) */ 5402 static void 5403 android_glUniform4iv__IILjava_nio_IntBuffer_2 5404 (JNIEnv *_env, jobject _this, jint location, jint count, jobject v_buf) { 5405 jarray _array = (jarray) 0; 5406 jint _bufferOffset = (jint) 0; 5407 jint _remaining; 5408 GLint *v = (GLint *) 0; 5409 5410 v = (GLint *)getPointer(_env, v_buf, &_array, &_remaining, &_bufferOffset); 5411 if (v == NULL) { 5412 char * _vBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5413 v = (GLint *) (_vBase + _bufferOffset); 5414 } 5415 glUniform4iv( 5416 (GLint)location, 5417 (GLsizei)count, 5418 (GLint *)v 5419 ); 5420 if (_array) { 5421 releasePointer(_env, _array, v, JNI_FALSE); 5422 } 5423 } 5424 5425 /* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5426 static void 5427 android_glUniformMatrix2fv__IIZ_3FI 5428 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 5429 jint _exception = 0; 5430 const char * _exceptionType; 5431 const char * _exceptionMessage; 5432 GLfloat *value_base = (GLfloat *) 0; 5433 jint _remaining; 5434 GLfloat *value = (GLfloat *) 0; 5435 5436 if (!value_ref) { 5437 _exception = 1; 5438 _exceptionType = "java/lang/IllegalArgumentException"; 5439 _exceptionMessage = "value == null"; 5440 goto exit; 5441 } 5442 if (offset < 0) { 5443 _exception = 1; 5444 _exceptionType = "java/lang/IllegalArgumentException"; 5445 _exceptionMessage = "offset < 0"; 5446 goto exit; 5447 } 5448 _remaining = _env->GetArrayLength(value_ref) - offset; 5449 value_base = (GLfloat *) 5450 _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5451 value = value_base + offset; 5452 5453 glUniformMatrix2fv( 5454 (GLint)location, 5455 (GLsizei)count, 5456 (GLboolean)transpose, 5457 (GLfloat *)value 5458 ); 5459 5460 exit: 5461 if (value_base) { 5462 _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5463 JNI_ABORT); 5464 } 5465 if (_exception) { 5466 jniThrowException(_env, _exceptionType, _exceptionMessage); 5467 } 5468 } 5469 5470 /* void glUniformMatrix2fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5471 static void 5472 android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 5473 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5474 jarray _array = (jarray) 0; 5475 jint _bufferOffset = (jint) 0; 5476 jint _remaining; 5477 GLfloat *value = (GLfloat *) 0; 5478 5479 value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 5480 if (value == NULL) { 5481 char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5482 value = (GLfloat *) (_valueBase + _bufferOffset); 5483 } 5484 glUniformMatrix2fv( 5485 (GLint)location, 5486 (GLsizei)count, 5487 (GLboolean)transpose, 5488 (GLfloat *)value 5489 ); 5490 if (_array) { 5491 releasePointer(_env, _array, value, JNI_FALSE); 5492 } 5493 } 5494 5495 /* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5496 static void 5497 android_glUniformMatrix3fv__IIZ_3FI 5498 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 5499 jint _exception = 0; 5500 const char * _exceptionType; 5501 const char * _exceptionMessage; 5502 GLfloat *value_base = (GLfloat *) 0; 5503 jint _remaining; 5504 GLfloat *value = (GLfloat *) 0; 5505 5506 if (!value_ref) { 5507 _exception = 1; 5508 _exceptionType = "java/lang/IllegalArgumentException"; 5509 _exceptionMessage = "value == null"; 5510 goto exit; 5511 } 5512 if (offset < 0) { 5513 _exception = 1; 5514 _exceptionType = "java/lang/IllegalArgumentException"; 5515 _exceptionMessage = "offset < 0"; 5516 goto exit; 5517 } 5518 _remaining = _env->GetArrayLength(value_ref) - offset; 5519 value_base = (GLfloat *) 5520 _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5521 value = value_base + offset; 5522 5523 glUniformMatrix3fv( 5524 (GLint)location, 5525 (GLsizei)count, 5526 (GLboolean)transpose, 5527 (GLfloat *)value 5528 ); 5529 5530 exit: 5531 if (value_base) { 5532 _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5533 JNI_ABORT); 5534 } 5535 if (_exception) { 5536 jniThrowException(_env, _exceptionType, _exceptionMessage); 5537 } 5538 } 5539 5540 /* void glUniformMatrix3fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5541 static void 5542 android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 5543 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5544 jarray _array = (jarray) 0; 5545 jint _bufferOffset = (jint) 0; 5546 jint _remaining; 5547 GLfloat *value = (GLfloat *) 0; 5548 5549 value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 5550 if (value == NULL) { 5551 char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5552 value = (GLfloat *) (_valueBase + _bufferOffset); 5553 } 5554 glUniformMatrix3fv( 5555 (GLint)location, 5556 (GLsizei)count, 5557 (GLboolean)transpose, 5558 (GLfloat *)value 5559 ); 5560 if (_array) { 5561 releasePointer(_env, _array, value, JNI_FALSE); 5562 } 5563 } 5564 5565 /* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5566 static void 5567 android_glUniformMatrix4fv__IIZ_3FI 5568 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jfloatArray value_ref, jint offset) { 5569 jint _exception = 0; 5570 const char * _exceptionType; 5571 const char * _exceptionMessage; 5572 GLfloat *value_base = (GLfloat *) 0; 5573 jint _remaining; 5574 GLfloat *value = (GLfloat *) 0; 5575 5576 if (!value_ref) { 5577 _exception = 1; 5578 _exceptionType = "java/lang/IllegalArgumentException"; 5579 _exceptionMessage = "value == null"; 5580 goto exit; 5581 } 5582 if (offset < 0) { 5583 _exception = 1; 5584 _exceptionType = "java/lang/IllegalArgumentException"; 5585 _exceptionMessage = "offset < 0"; 5586 goto exit; 5587 } 5588 _remaining = _env->GetArrayLength(value_ref) - offset; 5589 value_base = (GLfloat *) 5590 _env->GetPrimitiveArrayCritical(value_ref, (jboolean *)0); 5591 value = value_base + offset; 5592 5593 glUniformMatrix4fv( 5594 (GLint)location, 5595 (GLsizei)count, 5596 (GLboolean)transpose, 5597 (GLfloat *)value 5598 ); 5599 5600 exit: 5601 if (value_base) { 5602 _env->ReleasePrimitiveArrayCritical(value_ref, value_base, 5603 JNI_ABORT); 5604 } 5605 if (_exception) { 5606 jniThrowException(_env, _exceptionType, _exceptionMessage); 5607 } 5608 } 5609 5610 /* void glUniformMatrix4fv ( GLint location, GLsizei count, GLboolean transpose, const GLfloat *value ) */ 5611 static void 5612 android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 5613 (JNIEnv *_env, jobject _this, jint location, jint count, jboolean transpose, jobject value_buf) { 5614 jarray _array = (jarray) 0; 5615 jint _bufferOffset = (jint) 0; 5616 jint _remaining; 5617 GLfloat *value = (GLfloat *) 0; 5618 5619 value = (GLfloat *)getPointer(_env, value_buf, &_array, &_remaining, &_bufferOffset); 5620 if (value == NULL) { 5621 char * _valueBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5622 value = (GLfloat *) (_valueBase + _bufferOffset); 5623 } 5624 glUniformMatrix4fv( 5625 (GLint)location, 5626 (GLsizei)count, 5627 (GLboolean)transpose, 5628 (GLfloat *)value 5629 ); 5630 if (_array) { 5631 releasePointer(_env, _array, value, JNI_FALSE); 5632 } 5633 } 5634 5635 /* void glUseProgram ( GLuint program ) */ 5636 static void 5637 android_glUseProgram__I 5638 (JNIEnv *_env, jobject _this, jint program) { 5639 glUseProgram( 5640 (GLuint)program 5641 ); 5642 } 5643 5644 /* void glValidateProgram ( GLuint program ) */ 5645 static void 5646 android_glValidateProgram__I 5647 (JNIEnv *_env, jobject _this, jint program) { 5648 glValidateProgram( 5649 (GLuint)program 5650 ); 5651 } 5652 5653 /* void glVertexAttrib1f ( GLuint indx, GLfloat x ) */ 5654 static void 5655 android_glVertexAttrib1f__IF 5656 (JNIEnv *_env, jobject _this, jint indx, jfloat x) { 5657 glVertexAttrib1f( 5658 (GLuint)indx, 5659 (GLfloat)x 5660 ); 5661 } 5662 5663 /* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */ 5664 static void 5665 android_glVertexAttrib1fv__I_3FI 5666 (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 5667 jint _exception = 0; 5668 const char * _exceptionType; 5669 const char * _exceptionMessage; 5670 GLfloat *values_base = (GLfloat *) 0; 5671 jint _remaining; 5672 GLfloat *values = (GLfloat *) 0; 5673 5674 if (!values_ref) { 5675 _exception = 1; 5676 _exceptionType = "java/lang/IllegalArgumentException"; 5677 _exceptionMessage = "values == null"; 5678 goto exit; 5679 } 5680 if (offset < 0) { 5681 _exception = 1; 5682 _exceptionType = "java/lang/IllegalArgumentException"; 5683 _exceptionMessage = "offset < 0"; 5684 goto exit; 5685 } 5686 _remaining = _env->GetArrayLength(values_ref) - offset; 5687 values_base = (GLfloat *) 5688 _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5689 values = values_base + offset; 5690 5691 glVertexAttrib1fv( 5692 (GLuint)indx, 5693 (GLfloat *)values 5694 ); 5695 5696 exit: 5697 if (values_base) { 5698 _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5699 JNI_ABORT); 5700 } 5701 if (_exception) { 5702 jniThrowException(_env, _exceptionType, _exceptionMessage); 5703 } 5704 } 5705 5706 /* void glVertexAttrib1fv ( GLuint indx, const GLfloat *values ) */ 5707 static void 5708 android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 5709 (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5710 jarray _array = (jarray) 0; 5711 jint _bufferOffset = (jint) 0; 5712 jint _remaining; 5713 GLfloat *values = (GLfloat *) 0; 5714 5715 values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 5716 if (values == NULL) { 5717 char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5718 values = (GLfloat *) (_valuesBase + _bufferOffset); 5719 } 5720 glVertexAttrib1fv( 5721 (GLuint)indx, 5722 (GLfloat *)values 5723 ); 5724 if (_array) { 5725 releasePointer(_env, _array, values, JNI_FALSE); 5726 } 5727 } 5728 5729 /* void glVertexAttrib2f ( GLuint indx, GLfloat x, GLfloat y ) */ 5730 static void 5731 android_glVertexAttrib2f__IFF 5732 (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y) { 5733 glVertexAttrib2f( 5734 (GLuint)indx, 5735 (GLfloat)x, 5736 (GLfloat)y 5737 ); 5738 } 5739 5740 /* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */ 5741 static void 5742 android_glVertexAttrib2fv__I_3FI 5743 (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 5744 jint _exception = 0; 5745 const char * _exceptionType; 5746 const char * _exceptionMessage; 5747 GLfloat *values_base = (GLfloat *) 0; 5748 jint _remaining; 5749 GLfloat *values = (GLfloat *) 0; 5750 5751 if (!values_ref) { 5752 _exception = 1; 5753 _exceptionType = "java/lang/IllegalArgumentException"; 5754 _exceptionMessage = "values == null"; 5755 goto exit; 5756 } 5757 if (offset < 0) { 5758 _exception = 1; 5759 _exceptionType = "java/lang/IllegalArgumentException"; 5760 _exceptionMessage = "offset < 0"; 5761 goto exit; 5762 } 5763 _remaining = _env->GetArrayLength(values_ref) - offset; 5764 values_base = (GLfloat *) 5765 _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5766 values = values_base + offset; 5767 5768 glVertexAttrib2fv( 5769 (GLuint)indx, 5770 (GLfloat *)values 5771 ); 5772 5773 exit: 5774 if (values_base) { 5775 _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5776 JNI_ABORT); 5777 } 5778 if (_exception) { 5779 jniThrowException(_env, _exceptionType, _exceptionMessage); 5780 } 5781 } 5782 5783 /* void glVertexAttrib2fv ( GLuint indx, const GLfloat *values ) */ 5784 static void 5785 android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 5786 (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5787 jarray _array = (jarray) 0; 5788 jint _bufferOffset = (jint) 0; 5789 jint _remaining; 5790 GLfloat *values = (GLfloat *) 0; 5791 5792 values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 5793 if (values == NULL) { 5794 char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5795 values = (GLfloat *) (_valuesBase + _bufferOffset); 5796 } 5797 glVertexAttrib2fv( 5798 (GLuint)indx, 5799 (GLfloat *)values 5800 ); 5801 if (_array) { 5802 releasePointer(_env, _array, values, JNI_FALSE); 5803 } 5804 } 5805 5806 /* void glVertexAttrib3f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z ) */ 5807 static void 5808 android_glVertexAttrib3f__IFFF 5809 (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z) { 5810 glVertexAttrib3f( 5811 (GLuint)indx, 5812 (GLfloat)x, 5813 (GLfloat)y, 5814 (GLfloat)z 5815 ); 5816 } 5817 5818 /* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */ 5819 static void 5820 android_glVertexAttrib3fv__I_3FI 5821 (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 5822 jint _exception = 0; 5823 const char * _exceptionType; 5824 const char * _exceptionMessage; 5825 GLfloat *values_base = (GLfloat *) 0; 5826 jint _remaining; 5827 GLfloat *values = (GLfloat *) 0; 5828 5829 if (!values_ref) { 5830 _exception = 1; 5831 _exceptionType = "java/lang/IllegalArgumentException"; 5832 _exceptionMessage = "values == null"; 5833 goto exit; 5834 } 5835 if (offset < 0) { 5836 _exception = 1; 5837 _exceptionType = "java/lang/IllegalArgumentException"; 5838 _exceptionMessage = "offset < 0"; 5839 goto exit; 5840 } 5841 _remaining = _env->GetArrayLength(values_ref) - offset; 5842 values_base = (GLfloat *) 5843 _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5844 values = values_base + offset; 5845 5846 glVertexAttrib3fv( 5847 (GLuint)indx, 5848 (GLfloat *)values 5849 ); 5850 5851 exit: 5852 if (values_base) { 5853 _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5854 JNI_ABORT); 5855 } 5856 if (_exception) { 5857 jniThrowException(_env, _exceptionType, _exceptionMessage); 5858 } 5859 } 5860 5861 /* void glVertexAttrib3fv ( GLuint indx, const GLfloat *values ) */ 5862 static void 5863 android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 5864 (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5865 jarray _array = (jarray) 0; 5866 jint _bufferOffset = (jint) 0; 5867 jint _remaining; 5868 GLfloat *values = (GLfloat *) 0; 5869 5870 values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 5871 if (values == NULL) { 5872 char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5873 values = (GLfloat *) (_valuesBase + _bufferOffset); 5874 } 5875 glVertexAttrib3fv( 5876 (GLuint)indx, 5877 (GLfloat *)values 5878 ); 5879 if (_array) { 5880 releasePointer(_env, _array, values, JNI_FALSE); 5881 } 5882 } 5883 5884 /* void glVertexAttrib4f ( GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w ) */ 5885 static void 5886 android_glVertexAttrib4f__IFFFF 5887 (JNIEnv *_env, jobject _this, jint indx, jfloat x, jfloat y, jfloat z, jfloat w) { 5888 glVertexAttrib4f( 5889 (GLuint)indx, 5890 (GLfloat)x, 5891 (GLfloat)y, 5892 (GLfloat)z, 5893 (GLfloat)w 5894 ); 5895 } 5896 5897 /* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */ 5898 static void 5899 android_glVertexAttrib4fv__I_3FI 5900 (JNIEnv *_env, jobject _this, jint indx, jfloatArray values_ref, jint offset) { 5901 jint _exception = 0; 5902 const char * _exceptionType; 5903 const char * _exceptionMessage; 5904 GLfloat *values_base = (GLfloat *) 0; 5905 jint _remaining; 5906 GLfloat *values = (GLfloat *) 0; 5907 5908 if (!values_ref) { 5909 _exception = 1; 5910 _exceptionType = "java/lang/IllegalArgumentException"; 5911 _exceptionMessage = "values == null"; 5912 goto exit; 5913 } 5914 if (offset < 0) { 5915 _exception = 1; 5916 _exceptionType = "java/lang/IllegalArgumentException"; 5917 _exceptionMessage = "offset < 0"; 5918 goto exit; 5919 } 5920 _remaining = _env->GetArrayLength(values_ref) - offset; 5921 values_base = (GLfloat *) 5922 _env->GetPrimitiveArrayCritical(values_ref, (jboolean *)0); 5923 values = values_base + offset; 5924 5925 glVertexAttrib4fv( 5926 (GLuint)indx, 5927 (GLfloat *)values 5928 ); 5929 5930 exit: 5931 if (values_base) { 5932 _env->ReleasePrimitiveArrayCritical(values_ref, values_base, 5933 JNI_ABORT); 5934 } 5935 if (_exception) { 5936 jniThrowException(_env, _exceptionType, _exceptionMessage); 5937 } 5938 } 5939 5940 /* void glVertexAttrib4fv ( GLuint indx, const GLfloat *values ) */ 5941 static void 5942 android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 5943 (JNIEnv *_env, jobject _this, jint indx, jobject values_buf) { 5944 jarray _array = (jarray) 0; 5945 jint _bufferOffset = (jint) 0; 5946 jint _remaining; 5947 GLfloat *values = (GLfloat *) 0; 5948 5949 values = (GLfloat *)getPointer(_env, values_buf, &_array, &_remaining, &_bufferOffset); 5950 if (values == NULL) { 5951 char * _valuesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0); 5952 values = (GLfloat *) (_valuesBase + _bufferOffset); 5953 } 5954 glVertexAttrib4fv( 5955 (GLuint)indx, 5956 (GLfloat *)values 5957 ); 5958 if (_array) { 5959 releasePointer(_env, _array, values, JNI_FALSE); 5960 } 5961 } 5962 5963 /* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLint offset ) */ 5964 static void 5965 android_glVertexAttribPointer__IIIZII 5966 (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jint offset) { 5967 glVertexAttribPointer( 5968 (GLuint)indx, 5969 (GLint)size, 5970 (GLenum)type, 5971 (GLboolean)normalized, 5972 (GLsizei)stride, 5973 (const GLvoid *)offset 5974 ); 5975 } 5976 5977 /* void glVertexAttribPointer ( GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *ptr ) */ 5978 static void 5979 android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I 5980 (JNIEnv *_env, jobject _this, jint indx, jint size, jint type, jboolean normalized, jint stride, jobject ptr_buf, jint remaining) { 5981 jarray _array = (jarray) 0; 5982 jint _bufferOffset = (jint) 0; 5983 jint _remaining; 5984 GLvoid *ptr = (GLvoid *) 0; 5985 5986 if (ptr_buf) { 5987 ptr = (GLvoid *) getDirectBufferPointer(_env, ptr_buf); 5988 if ( ! ptr ) { 5989 return; 5990 } 5991 } 5992 glVertexAttribPointerBounds( 5993 (GLuint)indx, 5994 (GLint)size, 5995 (GLenum)type, 5996 (GLboolean)normalized, 5997 (GLsizei)stride, 5998 (GLvoid *)ptr, 5999 (GLsizei)remaining 6000 ); 6001 } 6002 6003 /* void glViewport ( GLint x, GLint y, GLsizei width, GLsizei height ) */ 6004 static void 6005 android_glViewport__IIII 6006 (JNIEnv *_env, jobject _this, jint x, jint y, jint width, jint height) { 6007 glViewport( 6008 (GLint)x, 6009 (GLint)y, 6010 (GLsizei)width, 6011 (GLsizei)height 6012 ); 6013 } 6014 6015 static const char *classPathName = "android/opengl/GLES20"; 6016 6017 static JNINativeMethod methods[] = { 6018 {"_nativeClassInit", "()V", (void*)nativeClassInit }, 6019 {"glActiveTexture", "(I)V", (void *) android_glActiveTexture__I }, 6020 {"glAttachShader", "(II)V", (void *) android_glAttachShader__II }, 6021 {"glBindAttribLocation", "(IILjava/lang/String;)V", (void *) android_glBindAttribLocation__IILjava_lang_String_2 }, 6022 {"glBindBuffer", "(II)V", (void *) android_glBindBuffer__II }, 6023 {"glBindFramebuffer", "(II)V", (void *) android_glBindFramebuffer__II }, 6024 {"glBindRenderbuffer", "(II)V", (void *) android_glBindRenderbuffer__II }, 6025 {"glBindTexture", "(II)V", (void *) android_glBindTexture__II }, 6026 {"glBlendColor", "(FFFF)V", (void *) android_glBlendColor__FFFF }, 6027 {"glBlendEquation", "(I)V", (void *) android_glBlendEquation__I }, 6028 {"glBlendEquationSeparate", "(II)V", (void *) android_glBlendEquationSeparate__II }, 6029 {"glBlendFunc", "(II)V", (void *) android_glBlendFunc__II }, 6030 {"glBlendFuncSeparate", "(IIII)V", (void *) android_glBlendFuncSeparate__IIII }, 6031 {"glBufferData", "(IILjava/nio/Buffer;I)V", (void *) android_glBufferData__IILjava_nio_Buffer_2I }, 6032 {"glBufferSubData", "(IIILjava/nio/Buffer;)V", (void *) android_glBufferSubData__IIILjava_nio_Buffer_2 }, 6033 {"glCheckFramebufferStatus", "(I)I", (void *) android_glCheckFramebufferStatus__I }, 6034 {"glClear", "(I)V", (void *) android_glClear__I }, 6035 {"glClearColor", "(FFFF)V", (void *) android_glClearColor__FFFF }, 6036 {"glClearDepthf", "(F)V", (void *) android_glClearDepthf__F }, 6037 {"glClearStencil", "(I)V", (void *) android_glClearStencil__I }, 6038 {"glColorMask", "(ZZZZ)V", (void *) android_glColorMask__ZZZZ }, 6039 {"glCompileShader", "(I)V", (void *) android_glCompileShader__I }, 6040 {"glCompressedTexImage2D", "(IIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexImage2D__IIIIIIILjava_nio_Buffer_2 }, 6041 {"glCompressedTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glCompressedTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6042 {"glCopyTexImage2D", "(IIIIIIII)V", (void *) android_glCopyTexImage2D__IIIIIIII }, 6043 {"glCopyTexSubImage2D", "(IIIIIIII)V", (void *) android_glCopyTexSubImage2D__IIIIIIII }, 6044 {"glCreateProgram", "()I", (void *) android_glCreateProgram__ }, 6045 {"glCreateShader", "(I)I", (void *) android_glCreateShader__I }, 6046 {"glCullFace", "(I)V", (void *) android_glCullFace__I }, 6047 {"glDeleteBuffers", "(I[II)V", (void *) android_glDeleteBuffers__I_3II }, 6048 {"glDeleteBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteBuffers__ILjava_nio_IntBuffer_2 }, 6049 {"glDeleteFramebuffers", "(I[II)V", (void *) android_glDeleteFramebuffers__I_3II }, 6050 {"glDeleteFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteFramebuffers__ILjava_nio_IntBuffer_2 }, 6051 {"glDeleteProgram", "(I)V", (void *) android_glDeleteProgram__I }, 6052 {"glDeleteRenderbuffers", "(I[II)V", (void *) android_glDeleteRenderbuffers__I_3II }, 6053 {"glDeleteRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteRenderbuffers__ILjava_nio_IntBuffer_2 }, 6054 {"glDeleteShader", "(I)V", (void *) android_glDeleteShader__I }, 6055 {"glDeleteTextures", "(I[II)V", (void *) android_glDeleteTextures__I_3II }, 6056 {"glDeleteTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glDeleteTextures__ILjava_nio_IntBuffer_2 }, 6057 {"glDepthFunc", "(I)V", (void *) android_glDepthFunc__I }, 6058 {"glDepthMask", "(Z)V", (void *) android_glDepthMask__Z }, 6059 {"glDepthRangef", "(FF)V", (void *) android_glDepthRangef__FF }, 6060 {"glDetachShader", "(II)V", (void *) android_glDetachShader__II }, 6061 {"glDisable", "(I)V", (void *) android_glDisable__I }, 6062 {"glDisableVertexAttribArray", "(I)V", (void *) android_glDisableVertexAttribArray__I }, 6063 {"glDrawArrays", "(III)V", (void *) android_glDrawArrays__III }, 6064 {"glDrawElements", "(IIII)V", (void *) android_glDrawElements__IIII }, 6065 {"glDrawElements", "(IIILjava/nio/Buffer;)V", (void *) android_glDrawElements__IIILjava_nio_Buffer_2 }, 6066 {"glEnable", "(I)V", (void *) android_glEnable__I }, 6067 {"glEnableVertexAttribArray", "(I)V", (void *) android_glEnableVertexAttribArray__I }, 6068 {"glFinish", "()V", (void *) android_glFinish__ }, 6069 {"glFlush", "()V", (void *) android_glFlush__ }, 6070 {"glFramebufferRenderbuffer", "(IIII)V", (void *) android_glFramebufferRenderbuffer__IIII }, 6071 {"glFramebufferTexture2D", "(IIIII)V", (void *) android_glFramebufferTexture2D__IIIII }, 6072 {"glFrontFace", "(I)V", (void *) android_glFrontFace__I }, 6073 {"glGenBuffers", "(I[II)V", (void *) android_glGenBuffers__I_3II }, 6074 {"glGenBuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenBuffers__ILjava_nio_IntBuffer_2 }, 6075 {"glGenerateMipmap", "(I)V", (void *) android_glGenerateMipmap__I }, 6076 {"glGenFramebuffers", "(I[II)V", (void *) android_glGenFramebuffers__I_3II }, 6077 {"glGenFramebuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenFramebuffers__ILjava_nio_IntBuffer_2 }, 6078 {"glGenRenderbuffers", "(I[II)V", (void *) android_glGenRenderbuffers__I_3II }, 6079 {"glGenRenderbuffers", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenRenderbuffers__ILjava_nio_IntBuffer_2 }, 6080 {"glGenTextures", "(I[II)V", (void *) android_glGenTextures__I_3II }, 6081 {"glGenTextures", "(ILjava/nio/IntBuffer;)V", (void *) android_glGenTextures__ILjava_nio_IntBuffer_2 }, 6082 {"glGetActiveAttrib", "(III[II[II[II[BI)V", (void *) android_glGetActiveAttrib__III_3II_3II_3II_3BI }, 6083 {"glGetActiveAttrib", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveAttrib__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B }, 6084 {"glGetActiveAttrib", "(II[II[II)Ljava/lang/String;", (void *) android_glGetActiveAttrib1 }, 6085 {"glGetActiveAttrib", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;", (void *) android_glGetActiveAttrib2 }, 6086 {"glGetActiveUniform", "(III[II[II[II[BI)V", (void *) android_glGetActiveUniform__III_3II_3II_3II_3BI }, 6087 {"glGetActiveUniform", "(II[II[II)Ljava/lang/String;", (void *) android_glGetActiveUniform1 }, 6088 {"glGetActiveUniform", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetActiveUniform__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B }, 6089 {"glGetActiveUniform", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;", (void *) android_glGetActiveUniform2 }, 6090 {"glGetAttachedShaders", "(II[II[II)V", (void *) android_glGetAttachedShaders__II_3II_3II }, 6091 {"glGetAttachedShaders", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetAttachedShaders__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 }, 6092 {"glGetAttribLocation", "(ILjava/lang/String;)I", (void *) android_glGetAttribLocation__ILjava_lang_String_2 }, 6093 {"glGetBooleanv", "(I[ZI)V", (void *) android_glGetBooleanv__I_3ZI }, 6094 {"glGetBooleanv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetBooleanv__ILjava_nio_IntBuffer_2 }, 6095 {"glGetBufferParameteriv", "(II[II)V", (void *) android_glGetBufferParameteriv__II_3II }, 6096 {"glGetBufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetBufferParameteriv__IILjava_nio_IntBuffer_2 }, 6097 {"glGetError", "()I", (void *) android_glGetError__ }, 6098 {"glGetFloatv", "(I[FI)V", (void *) android_glGetFloatv__I_3FI }, 6099 {"glGetFloatv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glGetFloatv__ILjava_nio_FloatBuffer_2 }, 6100 {"glGetFramebufferAttachmentParameteriv", "(III[II)V", (void *) android_glGetFramebufferAttachmentParameteriv__III_3II }, 6101 {"glGetFramebufferAttachmentParameteriv", "(IIILjava/nio/IntBuffer;)V", (void *) android_glGetFramebufferAttachmentParameteriv__IIILjava_nio_IntBuffer_2 }, 6102 {"glGetIntegerv", "(I[II)V", (void *) android_glGetIntegerv__I_3II }, 6103 {"glGetIntegerv", "(ILjava/nio/IntBuffer;)V", (void *) android_glGetIntegerv__ILjava_nio_IntBuffer_2 }, 6104 {"glGetProgramiv", "(II[II)V", (void *) android_glGetProgramiv__II_3II }, 6105 {"glGetProgramiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetProgramiv__IILjava_nio_IntBuffer_2 }, 6106 {"glGetProgramInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetProgramInfoLog }, 6107 {"glGetRenderbufferParameteriv", "(II[II)V", (void *) android_glGetRenderbufferParameteriv__II_3II }, 6108 {"glGetRenderbufferParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetRenderbufferParameteriv__IILjava_nio_IntBuffer_2 }, 6109 {"glGetShaderiv", "(II[II)V", (void *) android_glGetShaderiv__II_3II }, 6110 {"glGetShaderiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetShaderiv__IILjava_nio_IntBuffer_2 }, 6111 {"glGetShaderInfoLog", "(I)Ljava/lang/String;", (void *) android_glGetShaderInfoLog }, 6112 {"glGetShaderPrecisionFormat", "(II[II[II)V", (void *) android_glGetShaderPrecisionFormat__II_3II_3II }, 6113 {"glGetShaderPrecisionFormat", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)V", (void *) android_glGetShaderPrecisionFormat__IILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2 }, 6114 {"glGetShaderSource", "(II[II[BI)V", (void *) android_glGetShaderSource__II_3II_3BI }, 6115 {"glGetShaderSource", "(IILjava/nio/IntBuffer;B)V", (void *) android_glGetShaderSource__IILjava_nio_IntBuffer_2B }, 6116 {"glGetShaderSource", "(I)Ljava/lang/String;", (void *) android_glGetShaderSource }, 6117 {"glGetString", "(I)Ljava/lang/String;", (void *) android_glGetString }, 6118 {"glGetTexParameterfv", "(II[FI)V", (void *) android_glGetTexParameterfv__II_3FI }, 6119 {"glGetTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetTexParameterfv__IILjava_nio_FloatBuffer_2 }, 6120 {"glGetTexParameteriv", "(II[II)V", (void *) android_glGetTexParameteriv__II_3II }, 6121 {"glGetTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetTexParameteriv__IILjava_nio_IntBuffer_2 }, 6122 {"glGetUniformfv", "(II[FI)V", (void *) android_glGetUniformfv__II_3FI }, 6123 {"glGetUniformfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetUniformfv__IILjava_nio_FloatBuffer_2 }, 6124 {"glGetUniformiv", "(II[II)V", (void *) android_glGetUniformiv__II_3II }, 6125 {"glGetUniformiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetUniformiv__IILjava_nio_IntBuffer_2 }, 6126 {"glGetUniformLocation", "(ILjava/lang/String;)I", (void *) android_glGetUniformLocation__ILjava_lang_String_2 }, 6127 {"glGetVertexAttribfv", "(II[FI)V", (void *) android_glGetVertexAttribfv__II_3FI }, 6128 {"glGetVertexAttribfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glGetVertexAttribfv__IILjava_nio_FloatBuffer_2 }, 6129 {"glGetVertexAttribiv", "(II[II)V", (void *) android_glGetVertexAttribiv__II_3II }, 6130 {"glGetVertexAttribiv", "(IILjava/nio/IntBuffer;)V", (void *) android_glGetVertexAttribiv__IILjava_nio_IntBuffer_2 }, 6131 {"glHint", "(II)V", (void *) android_glHint__II }, 6132 {"glIsBuffer", "(I)Z", (void *) android_glIsBuffer__I }, 6133 {"glIsEnabled", "(I)Z", (void *) android_glIsEnabled__I }, 6134 {"glIsFramebuffer", "(I)Z", (void *) android_glIsFramebuffer__I }, 6135 {"glIsProgram", "(I)Z", (void *) android_glIsProgram__I }, 6136 {"glIsRenderbuffer", "(I)Z", (void *) android_glIsRenderbuffer__I }, 6137 {"glIsShader", "(I)Z", (void *) android_glIsShader__I }, 6138 {"glIsTexture", "(I)Z", (void *) android_glIsTexture__I }, 6139 {"glLineWidth", "(F)V", (void *) android_glLineWidth__F }, 6140 {"glLinkProgram", "(I)V", (void *) android_glLinkProgram__I }, 6141 {"glPixelStorei", "(II)V", (void *) android_glPixelStorei__II }, 6142 {"glPolygonOffset", "(FF)V", (void *) android_glPolygonOffset__FF }, 6143 {"glReadPixels", "(IIIIIILjava/nio/Buffer;)V", (void *) android_glReadPixels__IIIIIILjava_nio_Buffer_2 }, 6144 {"glReleaseShaderCompiler", "()V", (void *) android_glReleaseShaderCompiler__ }, 6145 {"glRenderbufferStorage", "(IIII)V", (void *) android_glRenderbufferStorage__IIII }, 6146 {"glSampleCoverage", "(FZ)V", (void *) android_glSampleCoverage__FZ }, 6147 {"glScissor", "(IIII)V", (void *) android_glScissor__IIII }, 6148 {"glShaderBinary", "(I[IIILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__I_3IIILjava_nio_Buffer_2I }, 6149 {"glShaderBinary", "(ILjava/nio/IntBuffer;ILjava/nio/Buffer;I)V", (void *) android_glShaderBinary__ILjava_nio_IntBuffer_2ILjava_nio_Buffer_2I }, 6150 {"glShaderSource", "(ILjava/lang/String;)V", (void *) android_glShaderSource }, 6151 {"glStencilFunc", "(III)V", (void *) android_glStencilFunc__III }, 6152 {"glStencilFuncSeparate", "(IIII)V", (void *) android_glStencilFuncSeparate__IIII }, 6153 {"glStencilMask", "(I)V", (void *) android_glStencilMask__I }, 6154 {"glStencilMaskSeparate", "(II)V", (void *) android_glStencilMaskSeparate__II }, 6155 {"glStencilOp", "(III)V", (void *) android_glStencilOp__III }, 6156 {"glStencilOpSeparate", "(IIII)V", (void *) android_glStencilOpSeparate__IIII }, 6157 {"glTexImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6158 {"glTexParameterf", "(IIF)V", (void *) android_glTexParameterf__IIF }, 6159 {"glTexParameterfv", "(II[FI)V", (void *) android_glTexParameterfv__II_3FI }, 6160 {"glTexParameterfv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glTexParameterfv__IILjava_nio_FloatBuffer_2 }, 6161 {"glTexParameteri", "(III)V", (void *) android_glTexParameteri__III }, 6162 {"glTexParameteriv", "(II[II)V", (void *) android_glTexParameteriv__II_3II }, 6163 {"glTexParameteriv", "(IILjava/nio/IntBuffer;)V", (void *) android_glTexParameteriv__IILjava_nio_IntBuffer_2 }, 6164 {"glTexSubImage2D", "(IIIIIIIILjava/nio/Buffer;)V", (void *) android_glTexSubImage2D__IIIIIIIILjava_nio_Buffer_2 }, 6165 {"glUniform1f", "(IF)V", (void *) android_glUniform1f__IF }, 6166 {"glUniform1fv", "(II[FI)V", (void *) android_glUniform1fv__II_3FI }, 6167 {"glUniform1fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform1fv__IILjava_nio_FloatBuffer_2 }, 6168 {"glUniform1i", "(II)V", (void *) android_glUniform1i__II }, 6169 {"glUniform1iv", "(II[II)V", (void *) android_glUniform1iv__II_3II }, 6170 {"glUniform1iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform1iv__IILjava_nio_IntBuffer_2 }, 6171 {"glUniform2f", "(IFF)V", (void *) android_glUniform2f__IFF }, 6172 {"glUniform2fv", "(II[FI)V", (void *) android_glUniform2fv__II_3FI }, 6173 {"glUniform2fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform2fv__IILjava_nio_FloatBuffer_2 }, 6174 {"glUniform2i", "(III)V", (void *) android_glUniform2i__III }, 6175 {"glUniform2iv", "(II[II)V", (void *) android_glUniform2iv__II_3II }, 6176 {"glUniform2iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform2iv__IILjava_nio_IntBuffer_2 }, 6177 {"glUniform3f", "(IFFF)V", (void *) android_glUniform3f__IFFF }, 6178 {"glUniform3fv", "(II[FI)V", (void *) android_glUniform3fv__II_3FI }, 6179 {"glUniform3fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform3fv__IILjava_nio_FloatBuffer_2 }, 6180 {"glUniform3i", "(IIII)V", (void *) android_glUniform3i__IIII }, 6181 {"glUniform3iv", "(II[II)V", (void *) android_glUniform3iv__II_3II }, 6182 {"glUniform3iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform3iv__IILjava_nio_IntBuffer_2 }, 6183 {"glUniform4f", "(IFFFF)V", (void *) android_glUniform4f__IFFFF }, 6184 {"glUniform4fv", "(II[FI)V", (void *) android_glUniform4fv__II_3FI }, 6185 {"glUniform4fv", "(IILjava/nio/FloatBuffer;)V", (void *) android_glUniform4fv__IILjava_nio_FloatBuffer_2 }, 6186 {"glUniform4i", "(IIIII)V", (void *) android_glUniform4i__IIIII }, 6187 {"glUniform4iv", "(II[II)V", (void *) android_glUniform4iv__II_3II }, 6188 {"glUniform4iv", "(IILjava/nio/IntBuffer;)V", (void *) android_glUniform4iv__IILjava_nio_IntBuffer_2 }, 6189 {"glUniformMatrix2fv", "(IIZ[FI)V", (void *) android_glUniformMatrix2fv__IIZ_3FI }, 6190 {"glUniformMatrix2fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix2fv__IIZLjava_nio_FloatBuffer_2 }, 6191 {"glUniformMatrix3fv", "(IIZ[FI)V", (void *) android_glUniformMatrix3fv__IIZ_3FI }, 6192 {"glUniformMatrix3fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix3fv__IIZLjava_nio_FloatBuffer_2 }, 6193 {"glUniformMatrix4fv", "(IIZ[FI)V", (void *) android_glUniformMatrix4fv__IIZ_3FI }, 6194 {"glUniformMatrix4fv", "(IIZLjava/nio/FloatBuffer;)V", (void *) android_glUniformMatrix4fv__IIZLjava_nio_FloatBuffer_2 }, 6195 {"glUseProgram", "(I)V", (void *) android_glUseProgram__I }, 6196 {"glValidateProgram", "(I)V", (void *) android_glValidateProgram__I }, 6197 {"glVertexAttrib1f", "(IF)V", (void *) android_glVertexAttrib1f__IF }, 6198 {"glVertexAttrib1fv", "(I[FI)V", (void *) android_glVertexAttrib1fv__I_3FI }, 6199 {"glVertexAttrib1fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib1fv__ILjava_nio_FloatBuffer_2 }, 6200 {"glVertexAttrib2f", "(IFF)V", (void *) android_glVertexAttrib2f__IFF }, 6201 {"glVertexAttrib2fv", "(I[FI)V", (void *) android_glVertexAttrib2fv__I_3FI }, 6202 {"glVertexAttrib2fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib2fv__ILjava_nio_FloatBuffer_2 }, 6203 {"glVertexAttrib3f", "(IFFF)V", (void *) android_glVertexAttrib3f__IFFF }, 6204 {"glVertexAttrib3fv", "(I[FI)V", (void *) android_glVertexAttrib3fv__I_3FI }, 6205 {"glVertexAttrib3fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib3fv__ILjava_nio_FloatBuffer_2 }, 6206 {"glVertexAttrib4f", "(IFFFF)V", (void *) android_glVertexAttrib4f__IFFFF }, 6207 {"glVertexAttrib4fv", "(I[FI)V", (void *) android_glVertexAttrib4fv__I_3FI }, 6208 {"glVertexAttrib4fv", "(ILjava/nio/FloatBuffer;)V", (void *) android_glVertexAttrib4fv__ILjava_nio_FloatBuffer_2 }, 6209 {"glVertexAttribPointer", "(IIIZII)V", (void *) android_glVertexAttribPointer__IIIZII }, 6210 {"glVertexAttribPointerBounds", "(IIIZILjava/nio/Buffer;I)V", (void *) android_glVertexAttribPointerBounds__IIIZILjava_nio_Buffer_2I }, 6211 {"glViewport", "(IIII)V", (void *) android_glViewport__IIII }, 6212 }; 6213 6214 int register_android_opengl_jni_GLES20(JNIEnv *_env) 6215 { 6216 int err; 6217 err = android::AndroidRuntime::registerNativeMethods(_env, classPathName, methods, NELEM(methods)); 6218 return err; 6219 } 6220