summaryrefslogtreecommitdiffstats
path: root/opengl/tools/glgen/stubs/gles11/glDrawElementsIndirect.cpp
blob: 1833ee9b9ec12b22f914f414a6a42209299250e6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
/* void glDrawElementsIndirect ( GLenum mode, GLenum type, const void *indirect ) */
static void android_glDrawElementsIndirect(JNIEnv *_env, jobject, jint mode, jint type, jlong indirect) {
    // In OpenGL ES, 'indirect' is a byte offset into a buffer, not a raw pointer.
    // GL checks for too-large values. Here we only need to check for successful signed 64-bit
    // to unsigned 32-bit conversion.
    if (sizeof(void*) != sizeof(jlong) && indirect > UINTPTR_MAX) {
        jniThrowException(_env, "java/lang/IllegalArgumentException", "indirect offset too large");
        return;
    }
    glDrawElementsIndirect(mode, type, (const void*)indirect);
}