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