14 lines
669 B
C++
14 lines
669 B
C++
|
/* void glDispatchComputeIndirect ( GLintptr indirect ) */
|
||
|
static void android_glDispatchComputeIndirect(JNIEnv *_env, jobject, jlong indirect) {
|
||
|
// 'indirect' is a byte offset, not a pointer. GL checks for negative and too-large values.
|
||
|
// Here we only need to check for successful 64-bit to 32-bit conversion.
|
||
|
// - jlong is a int64_t (jni.h)
|
||
|
// - GLintptr is a long (khrplatform.h)
|
||
|
if (sizeof(GLintptr) != sizeof(jlong) && (indirect < LONG_MIN || indirect > LONG_MAX)) {
|
||
|
jniThrowException(_env, "java/lang/IllegalArgumentException", "indirect offset too large");
|
||
|
return;
|
||
|
}
|
||
|
glDispatchComputeIndirect((GLintptr)indirect);
|
||
|
}
|
||
|
|