blob: 6d42e5616313cb62f4f94f81dcd2577820a31d12 [file] [log] [blame]
#include <stdlib.h>
/* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
static jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) {
GLint infoLen = 0;
glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
if (!infoLen) {
infoLen = 512;
}
char* buf = (char*) malloc(infoLen);
if (buf == NULL) {
jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
return NULL;
}
GLsizei outLen = 0;
glGetShaderInfoLog(shader, infoLen, &outLen, buf);
jstring result = _env->NewStringUTF(outLen == 0 ? "" : buf);
free(buf);
return result;
}