Merge "Fix glGetTransformFeedbackVarying JNI" into nyc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
86a27f343c
@@ -26859,7 +26859,8 @@ package android.opengl {
|
||||
method public static void glGetSynciv(long, int, int, int[], int, int[], int);
|
||||
method public static void glGetSynciv(long, int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, int[], int, int[], int, int[], int, byte[], int);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static deprecated void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, int[], int, int[], int);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static int glGetUniformBlockIndex(int, java.lang.String);
|
||||
|
||||
@@ -29161,7 +29161,8 @@ package android.opengl {
|
||||
method public static void glGetSynciv(long, int, int, int[], int, int[], int);
|
||||
method public static void glGetSynciv(long, int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, int[], int, int[], int, int[], int, byte[], int);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static deprecated void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, int[], int, int[], int);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static int glGetUniformBlockIndex(int, java.lang.String);
|
||||
|
||||
@@ -26868,7 +26868,8 @@ package android.opengl {
|
||||
method public static void glGetSynciv(long, int, int, int[], int, int[], int);
|
||||
method public static void glGetSynciv(long, int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, int[], int, int[], int, int[], int, byte[], int);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static deprecated void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, byte);
|
||||
method public static void glGetTransformFeedbackVarying(int, int, int, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.IntBuffer, java.nio.ByteBuffer);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, int[], int, int[], int);
|
||||
method public static java.lang.String glGetTransformFeedbackVarying(int, int, java.nio.IntBuffer, java.nio.IntBuffer);
|
||||
method public static int glGetUniformBlockIndex(int, java.lang.String);
|
||||
|
||||
@@ -2012,22 +2012,35 @@ exit:
|
||||
static void
|
||||
android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B
|
||||
(JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jbyte name) {
|
||||
jniThrowException(_env, "java/lang/UnsupportedOperationException", "deprecated");
|
||||
}
|
||||
|
||||
/* void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name ) */
|
||||
static void
|
||||
android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2
|
||||
(JNIEnv *_env, jobject _this, jint program, jint index, jint bufsize, jobject length_buf, jobject size_buf, jobject type_buf, jobject name_buf) {
|
||||
jintArray _lengthArray = (jintArray) 0;
|
||||
jint _lengthBufferOffset = (jint) 0;
|
||||
jintArray _sizeArray = (jintArray) 0;
|
||||
jint _sizeBufferOffset = (jint) 0;
|
||||
jintArray _typeArray = (jintArray) 0;
|
||||
jint _typeBufferOffset = (jint) 0;
|
||||
jbyteArray _nameArray = (jbyteArray)0;
|
||||
jint _nameBufferOffset = (jint)0;
|
||||
jint _lengthRemaining;
|
||||
GLsizei *length = (GLsizei *) 0;
|
||||
jint _sizeRemaining;
|
||||
GLint *size = (GLint *) 0;
|
||||
jint _typeRemaining;
|
||||
GLenum *type = (GLenum *) 0;
|
||||
jint _nameRemaining;
|
||||
GLchar* name = (GLchar*)0;
|
||||
|
||||
|
||||
length = (GLsizei *)getPointer(_env, length_buf, (jarray*)&_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
|
||||
size = (GLint *)getPointer(_env, size_buf, (jarray*)&_sizeArray, &_sizeRemaining, &_sizeBufferOffset);
|
||||
type = (GLenum *)getPointer(_env, type_buf, (jarray*)&_typeArray, &_typeRemaining, &_typeBufferOffset);
|
||||
name = (GLchar*)getPointer(_env, name_buf, (jarray*)&_nameArray, &_nameRemaining, &_nameBufferOffset);
|
||||
if (length == NULL) {
|
||||
char * _lengthBase = (char *)_env->GetIntArrayElements(_lengthArray, (jboolean *) 0);
|
||||
length = (GLsizei *) (_lengthBase + _lengthBufferOffset);
|
||||
@@ -2040,6 +2053,10 @@ android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuff
|
||||
char * _typeBase = (char *)_env->GetIntArrayElements(_typeArray, (jboolean *) 0);
|
||||
type = (GLenum *) (_typeBase + _typeBufferOffset);
|
||||
}
|
||||
if (name == NULL) {
|
||||
char* _nameBase = (char *)_env->GetByteArrayElements(_nameArray, (jboolean*)0);
|
||||
name = (GLchar *) (_nameBase + _nameBufferOffset);
|
||||
}
|
||||
glGetTransformFeedbackVarying(
|
||||
(GLuint)program,
|
||||
(GLuint)index,
|
||||
@@ -2047,11 +2064,7 @@ android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuff
|
||||
(GLsizei *)length,
|
||||
(GLint *)size,
|
||||
(GLenum *)type,
|
||||
// The cast below is incorrect. The driver will end up writing to the
|
||||
// address specified by name, which will always crash the process since
|
||||
// it is guaranteed to be in low memory. The additional static_cast
|
||||
// suppresses the warning for now. http://b/19478262
|
||||
(char *)static_cast<uintptr_t>(name)
|
||||
(GLchar*)name
|
||||
);
|
||||
if (_typeArray) {
|
||||
releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _typeArray, (jint*)type, JNI_TRUE);
|
||||
@@ -2062,6 +2075,9 @@ android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuff
|
||||
if (_lengthArray) {
|
||||
releaseArrayPointer<jintArray, jint*, IntArrayReleaser>(_env, _lengthArray, (jint*)length, JNI_TRUE);
|
||||
}
|
||||
if (_nameArray) {
|
||||
releaseArrayPointer<jbyteArray, jbyte*, ByteArrayReleaser>(_env, _nameArray, (jbyte*)name, JNI_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/* void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name ) */
|
||||
@@ -5233,6 +5249,7 @@ static const JNINativeMethod methods[] = {
|
||||
{"glTransformFeedbackVaryings", "(I[Ljava/lang/String;I)V", (void *) android_glTransformFeedbackVaryings },
|
||||
{"glGetTransformFeedbackVarying", "(III[II[II[II[BI)V", (void *) android_glGetTransformFeedbackVarying__III_3II_3II_3II_3BI },
|
||||
{"glGetTransformFeedbackVarying", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;B)V", (void *) android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2B },
|
||||
{"glGetTransformFeedbackVarying", "(IIILjava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/IntBuffer;Ljava/nio/ByteBuffer;)V", (void *) android_glGetTransformFeedbackVarying__IIILjava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_IntBuffer_2Ljava_nio_ByteBuffer_2 },
|
||||
{"glGetTransformFeedbackVarying", "(II[II[II)Ljava/lang/String;", (void *) android_glGetTransformFeedbackVarying1 },
|
||||
{"glGetTransformFeedbackVarying", "(IILjava/nio/IntBuffer;Ljava/nio/IntBuffer;)Ljava/lang/String;", (void *) android_glGetTransformFeedbackVarying2 },
|
||||
{"glVertexAttribIPointerBounds", "(IIIILjava/nio/Buffer;I)V", (void *) android_glVertexAttribIPointerBounds__IIIILjava_nio_Buffer_2I },
|
||||
|
||||
@@ -889,7 +889,10 @@ public class GLES30 extends GLES20 {
|
||||
);
|
||||
|
||||
// C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* Use the version that takes a ByteBuffer as the last argument, or the versions that return a String.
|
||||
* */
|
||||
public static native void glGetTransformFeedbackVarying(
|
||||
int program,
|
||||
int index,
|
||||
@@ -902,6 +905,18 @@ public class GLES30 extends GLES20 {
|
||||
|
||||
// C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
|
||||
|
||||
public static native void glGetTransformFeedbackVarying(
|
||||
int program,
|
||||
int index,
|
||||
int bufsize,
|
||||
java.nio.IntBuffer length,
|
||||
java.nio.IntBuffer size,
|
||||
java.nio.IntBuffer type,
|
||||
java.nio.ByteBuffer name
|
||||
);
|
||||
|
||||
// C function void glGetTransformFeedbackVarying ( GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name )
|
||||
|
||||
public static native String glGetTransformFeedbackVarying(
|
||||
int program,
|
||||
int index,
|
||||
|
||||
Reference in New Issue
Block a user