glDrawElementsInstanced.cpp revision 071fc660597efdfa5ebc58b427252393e628a497
1071fc660597efdfa5ebc58b427252393e628a497Jesse Hall/* void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount ) */
2071fc660597efdfa5ebc58b427252393e628a497Jesse Hallstatic void
3071fc660597efdfa5ebc58b427252393e628a497Jesse Hallandroid_glDrawElementsInstanced__IIILjava_nio_Buffer_2I
4071fc660597efdfa5ebc58b427252393e628a497Jesse Hall  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf, jint instanceCount) {
5071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    jarray _array = (jarray) 0;
6071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    jint _bufferOffset = (jint) 0;
7071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    jint _remaining;
8071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    GLvoid *indices = (GLvoid *) 0;
9071fc660597efdfa5ebc58b427252393e628a497Jesse Hall
10071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    indices = (GLvoid *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
11071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    if (indices == NULL) {
12071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
13071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        indices = (GLvoid *) (_indicesBase + _bufferOffset);
14071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    }
15071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    glDrawElementsInstanced(
16071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLenum)mode,
17071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLsizei)count,
18071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLenum)type,
19071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLvoid *)indices,
20071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLsizei)instanceCount
21071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    );
22071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    if (_array) {
23071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        releasePointer(_env, _array, indices, JNI_FALSE);
24071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    }
25071fc660597efdfa5ebc58b427252393e628a497Jesse Hall}
26071fc660597efdfa5ebc58b427252393e628a497Jesse Hall
27071fc660597efdfa5ebc58b427252393e628a497Jesse Hall/* void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount ) */
28071fc660597efdfa5ebc58b427252393e628a497Jesse Hallstatic void
29071fc660597efdfa5ebc58b427252393e628a497Jesse Hallandroid_glDrawElementsInstanced__IIIII
30071fc660597efdfa5ebc58b427252393e628a497Jesse Hall  (JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint indicesOffset, jint instanceCount) {
31071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    glDrawElementsInstanced(
32071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLenum)mode,
33071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLsizei)count,
34071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLenum)type,
35071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLvoid *)indicesOffset,
36071fc660597efdfa5ebc58b427252393e628a497Jesse Hall        (GLsizei)instanceCount
37071fc660597efdfa5ebc58b427252393e628a497Jesse Hall    );
38071fc660597efdfa5ebc58b427252393e628a497Jesse Hall}
39071fc660597efdfa5ebc58b427252393e628a497Jesse Hall
40