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