Special-case glGetActiveUniformBlockName
Bug: 8566953 Change-Id: Ic9b3be9fa0136495633ee3b1c38583cfa315942a
This commit is contained in:
parent
fa4c1170ac
commit
4f6693080c
@ -225,7 +225,7 @@ void glGetUniformIndices ( GLuint program, GLsizei uniformCount, const GLchar *c
|
||||
void glGetActiveUniformsiv ( GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params )
|
||||
GLuint glGetUniformBlockIndex ( GLuint program, const GLchar *uniformBlockName )
|
||||
void glGetActiveUniformBlockiv ( GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params )
|
||||
// void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
|
||||
void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
|
||||
void glUniformBlockBinding ( GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding )
|
||||
void glDrawArraysInstanced ( GLenum mode, GLint first, GLsizei count, GLsizei instanceCount )
|
||||
void glDrawElementsInstanced ( GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instanceCount )
|
||||
|
127
opengl/tools/glgen/stubs/gles11/glGetActiveUniformBlockName.cpp
Normal file
127
opengl/tools/glgen/stubs/gles11/glGetActiveUniformBlockName.cpp
Normal file
@ -0,0 +1,127 @@
|
||||
/* void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName ) */
|
||||
static void
|
||||
android_glGetActiveUniformBlockName_III_3II_3BI
|
||||
(JNIEnv* _env, jobject _this, jint program, jint uniformBlockIndex, int bufSize, jintArray length_ref, jint lengthOffset, jbyteArray name_ref, jint nameOffset) {
|
||||
jint _exception = 0;
|
||||
const char* _exceptionType;
|
||||
const char* _exceptionMessage;
|
||||
GLsizei* _length_base = (GLsizei*)0;
|
||||
jint _lengthRemaining;
|
||||
GLsizei* _length = (GLsizei*)0;
|
||||
GLchar* _name_base = (GLchar*)0;
|
||||
jint _nameRemaining;
|
||||
GLchar* _name = (GLchar*)0;
|
||||
|
||||
if (!length_ref) {
|
||||
_exception = 1;
|
||||
_exceptionType = "java/lang/IllegalArgumentException";
|
||||
_exceptionMessage = "length == null";
|
||||
goto exit;
|
||||
}
|
||||
if (lengthOffset < 0) {
|
||||
_exception = 1;
|
||||
_exceptionType = "java/lang/IllegalArgumentException";
|
||||
_exceptionMessage = "lengthOffset < 0";
|
||||
goto exit;
|
||||
}
|
||||
_lengthRemaining = _env->GetArrayLength(length_ref) - lengthOffset;
|
||||
_length_base = (GLsizei*)_env->GetPrimitiveArrayCritical(
|
||||
length_ref, (jboolean*)0);
|
||||
_length = _length_base + lengthOffset;
|
||||
|
||||
if (!name_ref) {
|
||||
_exception = 1;
|
||||
_exceptionType = "java/lang/IllegalArgumentException";
|
||||
_exceptionMessage = "uniformBlockName == null";
|
||||
goto exit;
|
||||
}
|
||||
if (nameOffset < 0) {
|
||||
_exception = 1;
|
||||
_exceptionType = "java/lang/IllegalArgumentException";
|
||||
_exceptionMessage = "uniformBlockNameOffset < 0";
|
||||
goto exit;
|
||||
}
|
||||
_nameRemaining = _env->GetArrayLength(name_ref) - nameOffset;
|
||||
_name_base = (GLchar*)_env->GetPrimitiveArrayCritical(
|
||||
name_ref, (jboolean*)0);
|
||||
_name = _name_base + nameOffset;
|
||||
|
||||
glGetActiveUniformBlockName(
|
||||
(GLuint)program,
|
||||
(GLuint)uniformBlockIndex,
|
||||
(GLsizei)bufSize,
|
||||
(GLsizei*)_length,
|
||||
(GLchar*)_name
|
||||
);
|
||||
|
||||
exit:
|
||||
if (_name_base) {
|
||||
_env->ReleasePrimitiveArrayCritical(name_ref, _name_base,
|
||||
_exception ? JNI_ABORT: 0);
|
||||
}
|
||||
if (_length_base) {
|
||||
_env->ReleasePrimitiveArrayCritical(length_ref, _length_base,
|
||||
_exception ? JNI_ABORT: 0);
|
||||
}
|
||||
if (_exception) {
|
||||
jniThrowException(_env, _exceptionType, _exceptionMessage);
|
||||
}
|
||||
}
|
||||
|
||||
/* void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName ) */
|
||||
static void
|
||||
android_glGetActiveUniformBlockName_IILjava_nio_Buffer_2Ljava_nio_Buffer_2
|
||||
(JNIEnv* _env, jobject _this, jint program, jint uniformBlockIndex, jobject length_buf, jobject uniformBlockName_buf) {
|
||||
jint _exception = 0;
|
||||
const char* _exceptionType;
|
||||
const char* _exceptionMessage;
|
||||
jarray _lengthArray = (jarray)0;
|
||||
jint _lengthBufferOffset = (jint)0;
|
||||
GLsizei* _length = (GLsizei*)0;
|
||||
jint _lengthRemaining;
|
||||
jarray _nameArray = (jarray)0;
|
||||
jint _nameBufferOffset = (jint)0;
|
||||
GLchar* _name = (GLchar*)0;
|
||||
jint _nameRemaining;
|
||||
|
||||
_length = (GLsizei*)getPointer(_env, length_buf, &_lengthArray, &_lengthRemaining, &_lengthBufferOffset);
|
||||
if (_length == NULL) {
|
||||
GLsizei* _lengthBase = (GLsizei*)_env->GetPrimitiveArrayCritical(_lengthArray, (jboolean*)0);
|
||||
_length = (GLsizei*)(_lengthBase + _lengthBufferOffset);
|
||||
}
|
||||
|
||||
_name = (GLchar*)getPointer(_env, uniformBlockName_buf, &_nameArray, &_nameRemaining, &_nameBufferOffset);
|
||||
if (_name == NULL) {
|
||||
GLchar* _nameBase = (GLchar*)_env->GetPrimitiveArrayCritical(_nameArray, (jboolean*)0);
|
||||
_name = (GLchar*)(_nameBase + _nameBufferOffset);
|
||||
}
|
||||
|
||||
glGetActiveUniformBlockName(
|
||||
(GLuint)program,
|
||||
(GLuint)uniformBlockIndex,
|
||||
(GLsizei)_nameRemaining,
|
||||
_length, _name
|
||||
);
|
||||
if (_nameArray) {
|
||||
releasePointer(_env, _nameArray, _name, JNI_TRUE);
|
||||
}
|
||||
if (_lengthArray) {
|
||||
releasePointer(_env, _lengthArray, _length, JNI_TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
/* void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName ) */
|
||||
static jstring
|
||||
android_glGetActiveUniformBlockName_II
|
||||
(JNIEnv *_env, jobject _this, jint program, jint uniformBlockIndex) {
|
||||
GLint len = 0;
|
||||
glGetActiveUniformBlockiv((GLuint)program, (GLuint)uniformBlockIndex,
|
||||
GL_UNIFORM_BLOCK_NAME_LENGTH, &len);
|
||||
GLchar* name = (GLchar*)malloc(len);
|
||||
glGetActiveUniformBlockName((GLuint)program, (GLuint)uniformBlockIndex,
|
||||
len, NULL, name);
|
||||
jstring result = _env->NewStringUTF(name);
|
||||
free(name);
|
||||
return result;
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
// C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
|
||||
|
||||
public static native void glGetActiveUniformBlockName(
|
||||
int program,
|
||||
int uniformBlockIndex,
|
||||
int bufSize,
|
||||
int[] length,
|
||||
int lengthOffset,
|
||||
byte[] uniformBlockName,
|
||||
int uniformBlockNameOffset
|
||||
);
|
||||
|
||||
// C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
|
||||
|
||||
public static native void glGetActiveUniformBlockName(
|
||||
int program,
|
||||
int uniformBlockIndex,
|
||||
java.nio.Buffer length,
|
||||
java.nio.Buffer uniformBlockName
|
||||
);
|
||||
|
||||
// C function void glGetActiveUniformBlockName ( GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName )
|
||||
|
||||
public static native String glGetActiveUniformBlockName(
|
||||
int program,
|
||||
int uniformBlockIndex
|
||||
);
|
||||
|
@ -0,0 +1,3 @@
|
||||
{"glGetActiveUniformBlockName", "(III[II[BI)V", (void *) android_glGetActiveUniformBlockName_III_3II_3BI },
|
||||
{"glGetActiveUniformBlockName", "(IILjava/nio/Buffer;Ljava/nio/Buffer;)V", (void *) android_glGetActiveUniformBlockName_IILjava_nio_Buffer_2Ljava_nio_Buffer_2 },
|
||||
{"glGetActiveUniformBlockName", "(II)Ljava/lang/String;", (void *) android_glGetActiveUniformBlockName_II },
|
Loading…
Reference in New Issue
Block a user