52 lines
1.9 KiB
C++
52 lines
1.9 KiB
C++
/* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
|
|
static void
|
|
android_glDrawElementsInstancedBaseVertex__IIILjava_nio_Buffer_2II
|
|
(JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jobject indices_buf, jint instanceCount, jint basevertex) {
|
|
jint _exception = 0;
|
|
const char * _exceptionType = NULL;
|
|
const char * _exceptionMessage = NULL;
|
|
jarray _array = (jarray) 0;
|
|
jint _bufferOffset = (jint) 0;
|
|
jint _remaining;
|
|
void *indices = (void *) 0;
|
|
|
|
indices = (void *)getPointer(_env, indices_buf, &_array, &_remaining, &_bufferOffset);
|
|
if (_remaining < count-basevertex) {
|
|
_exception = 1;
|
|
_exceptionType = "java/lang/ArrayIndexOutOfBoundsException";
|
|
_exceptionMessage = "remaining() < count-basevertex < needed";
|
|
goto exit;
|
|
}
|
|
if (indices == NULL) {
|
|
char * _indicesBase = (char *)_env->GetPrimitiveArrayCritical(_array, (jboolean *) 0);
|
|
indices = (void *) (_indicesBase + _bufferOffset);
|
|
}
|
|
glDrawElementsInstancedBaseVertex(
|
|
(GLenum)mode,
|
|
(GLsizei)count,
|
|
(GLenum)type,
|
|
(void *)indices,
|
|
(GLsizei)instanceCount,
|
|
(GLint) basevertex
|
|
);
|
|
|
|
exit:
|
|
if (_array) {
|
|
releasePointer(_env, _array, indices, JNI_FALSE);
|
|
}
|
|
}
|
|
|
|
/* void glDrawElementsInstancedBaseVertex ( GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei instanceCount, GLint basevertex ) */
|
|
static void
|
|
android_glDrawElementsInstancedBaseVertex__IIIIII
|
|
(JNIEnv *_env, jobject _this, jint mode, jint count, jint type, jint indicesOffset, jint instanceCount, jint basevertex) {
|
|
glDrawElementsInstancedBaseVertex(
|
|
(GLenum)mode,
|
|
(GLsizei)count,
|
|
(GLenum)type,
|
|
(void *)static_cast<uintptr_t>(indicesOffset),
|
|
(GLsizei)instanceCount,
|
|
(GLint)basevertex
|
|
);
|
|
}
|