27 lines
744 B
C++
27 lines
744 B
C++
|
#include <string.h>
|
||
|
|
||
|
/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
|
||
|
static
|
||
|
jstring
|
||
|
android_glGetProgramInfoLog (JNIEnv *_env, jobject _this, jint shader) {
|
||
|
GLint infoLen = 0;
|
||
|
jstring _result = 0;
|
||
|
char* buf = 0;
|
||
|
glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
|
||
|
if (infoLen) {
|
||
|
char* buf = (char*) malloc(infoLen);
|
||
|
if (buf == 0) {
|
||
|
_env->ThrowNew(IAEClass, "out of memory");
|
||
|
goto exit;
|
||
|
}
|
||
|
glGetProgramInfoLog(shader, infoLen, NULL, buf);
|
||
|
_result = _env->NewStringUTF(buf);
|
||
|
} else {
|
||
|
_result = _env->NewStringUTF("");
|
||
|
}
|
||
|
exit:
|
||
|
if (buf) {
|
||
|
free(buf);
|
||
|
}
|
||
|
return _result;
|
||
|
}
|