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