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