Merge change 1836 into donut
* changes: Fix bug 1856713 gl Pointer functions should use Buffer position
This commit is contained in:
@@ -133,6 +133,19 @@ releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
|
|||||||
commit ? 0 : JNI_ABORT);
|
commit ? 0 : JNI_ABORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
|
||||||
|
char* buf = (char*) _env->GetDirectBufferAddress(buffer);
|
||||||
|
if (buf) {
|
||||||
|
jint position = _env->GetIntField(buffer, positionID);
|
||||||
|
jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
|
||||||
|
buf += position << elementSizeShift;
|
||||||
|
} else {
|
||||||
|
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
||||||
|
}
|
||||||
|
return (void*) buf;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
getNumCompressedTextureFormats() {
|
getNumCompressedTextureFormats() {
|
||||||
int numCompressedTextureFormats = 0;
|
int numCompressedTextureFormats = 0;
|
||||||
@@ -305,9 +318,8 @@ android_glColorPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2779,9 +2791,8 @@ android_glNormalPointerBounds__IILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3034,9 +3045,8 @@ android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3392,9 +3402,8 @@ android_glVertexPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,6 +133,19 @@ releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
|
|||||||
commit ? 0 : JNI_ABORT);
|
commit ? 0 : JNI_ABORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
|
||||||
|
char* buf = (char*) _env->GetDirectBufferAddress(buffer);
|
||||||
|
if (buf) {
|
||||||
|
jint position = _env->GetIntField(buffer, positionID);
|
||||||
|
jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
|
||||||
|
buf += position << elementSizeShift;
|
||||||
|
} else {
|
||||||
|
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
||||||
|
}
|
||||||
|
return (void*) buf;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
getNumCompressedTextureFormats() {
|
getNumCompressedTextureFormats() {
|
||||||
int numCompressedTextureFormats = 0;
|
int numCompressedTextureFormats = 0;
|
||||||
@@ -305,9 +318,8 @@ android_glColorPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2779,9 +2791,8 @@ android_glNormalPointerBounds__IILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3034,9 +3045,8 @@ android_glTexCoordPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3392,9 +3402,8 @@ android_glVertexPointerBounds__IIILjava_nio_Buffer_2I
|
|||||||
GLvoid *pointer = (GLvoid *) 0;
|
GLvoid *pointer = (GLvoid *) 0;
|
||||||
|
|
||||||
if (pointer_buf) {
|
if (pointer_buf) {
|
||||||
pointer = (GLvoid *) _env->GetDirectBufferAddress(pointer_buf);
|
pointer = (GLvoid *) getDirectBufferPointer(_env, pointer_buf);
|
||||||
if ( ! pointer ) {
|
if ( ! pointer ) {
|
||||||
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -890,16 +890,10 @@ public class JniCodeEmitter {
|
|||||||
cname +
|
cname +
|
||||||
" = (" +
|
" = (" +
|
||||||
cfunc.getArgType(cIndex).getDeclaration() +
|
cfunc.getArgType(cIndex).getDeclaration() +
|
||||||
") _env->GetDirectBufferAddress(" +
|
") getDirectBufferPointer(_env, " +
|
||||||
(mUseCPlusPlus ? "" : "_env, ") +
|
|
||||||
cname + "_buf);");
|
cname + "_buf);");
|
||||||
String iii = " ";
|
String iii = " ";
|
||||||
out.println(iii + indent + "if ( ! " + cname + " ) {");
|
out.println(iii + indent + "if ( ! " + cname + " ) {");
|
||||||
out.println(iii + iii + indent +
|
|
||||||
(mUseCPlusPlus ? "_env" : "(*_env)") +
|
|
||||||
"->ThrowNew(" +
|
|
||||||
(mUseCPlusPlus ? "" : "_env, ") +
|
|
||||||
"IAEClass, \"Must use a native order direct Buffer\");");
|
|
||||||
out.println(iii + iii + indent + "return;");
|
out.println(iii + iii + indent + "return;");
|
||||||
out.println(iii + indent + "}");
|
out.println(iii + indent + "}");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -132,6 +132,19 @@ releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
|
|||||||
commit ? 0 : JNI_ABORT);
|
commit ? 0 : JNI_ABORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
|
||||||
|
char* buf = (char*) _env->GetDirectBufferAddress(buffer);
|
||||||
|
if (buf) {
|
||||||
|
jint position = _env->GetIntField(buffer, positionID);
|
||||||
|
jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
|
||||||
|
buf += position << elementSizeShift;
|
||||||
|
} else {
|
||||||
|
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
||||||
|
}
|
||||||
|
return (void*) buf;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
getNumCompressedTextureFormats() {
|
getNumCompressedTextureFormats() {
|
||||||
int numCompressedTextureFormats = 0;
|
int numCompressedTextureFormats = 0;
|
||||||
|
|||||||
@@ -132,6 +132,19 @@ releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
|
|||||||
commit ? 0 : JNI_ABORT);
|
commit ? 0 : JNI_ABORT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void *
|
||||||
|
getDirectBufferPointer(JNIEnv *_env, jobject buffer) {
|
||||||
|
char* buf = (char*) _env->GetDirectBufferAddress(buffer);
|
||||||
|
if (buf) {
|
||||||
|
jint position = _env->GetIntField(buffer, positionID);
|
||||||
|
jint elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
|
||||||
|
buf += position << elementSizeShift;
|
||||||
|
} else {
|
||||||
|
_env->ThrowNew(IAEClass, "Must use a native order direct Buffer");
|
||||||
|
}
|
||||||
|
return (void*) buf;
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
getNumCompressedTextureFormats() {
|
getNumCompressedTextureFormats() {
|
||||||
int numCompressedTextureFormats = 0;
|
int numCompressedTextureFormats = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user