1/* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
2static void
3android_glDrawElementsInstancedBaseVertex__IIILjava_nio_Buffer_2II
4  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf, jint instanceCount, jint basevertex) {
5    jint _exception = 0;
6    const char * _exceptionType = NULL;
7    const char * _exceptionMessage = NULL;
8    jarray _array = (jarray) 0;
9    jint _bufferOffset = (jint) 0;
10    jint _remaining;
11    void *indices = (void *) 0;
12
13    indices = (void *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
14    if (_remaining < count-basevertex) {
15        _exception = 1;
16        _exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
17        _exceptionMessage = "remaining() < count-basevertex < needed";
18        goto exit;
19    }
20    if (indices == NULL) {
21        char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
22        indices = (void *) (_indicesBase + _bufferOffset);
23    }
24    glDrawElementsInstancedBaseVertex(
25        (GLenum)mode,
26        (GLsizei)count,
27        (GLenum)type,
28        (void *)indices,
29        (GLsizei)instanceCount,
30        (GLint) basevertex
31    );
32
33exit:
34    if (_array) {
35        releasePointer(_env, _array, indices, JNI_FALSE);
36    }
37}
38
39/* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
40static void
41android_glDrawElementsInstancedBaseVertex__IIIIII
42  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint indicesOffset, jint instanceCount, jint basevertex) {
43    glDrawElementsInstancedBaseVertex(
44        (GLenum)mode,
45        (GLsizei)count,
46        (GLenum)type,
47        (void *)static_cast<uintptr_t>(indicesOffset),
48        (GLsizei)instanceCount,
49        (GLint)basevertex
50    );
51}
52