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