blob: dd656b60c127e20c872706c547c74e63e9e81d47 [file] [log] [blame]
Elliott Hughes24ce5fb2011-04-08 20:01:01 -07001#include <stdlib.h>
Jack Palevich560814f2009-11-19 16:34:55 +08002
3/* void glGetShaderInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
Elliott Hughes24ce5fb2011-04-08 20:01:01 -07004static jstring android_glGetShaderInfoLog(JNIEnv *_env, jobject, jint shader) {
Jack Palevich560814f2009-11-19 16:34:55 +08005 GLint infoLen = 0;
Jack Palevich560814f2009-11-19 16:34:55 +08006 glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
Elliott Hughes24ce5fb2011-04-08 20:01:01 -07007 if (!infoLen) {
8 return _env->NewStringUTF("");
Jack Palevich560814f2009-11-19 16:34:55 +08009 }
Elliott Hughes24ce5fb2011-04-08 20:01:01 -070010 char* buf = (char*) malloc(infoLen);
11 if (buf == NULL) {
12 jniThrowException(_env, "java/lang/IllegalArgumentException", "out of memory");
13 return NULL;
Jack Palevich560814f2009-11-19 16:34:55 +080014 }
Elliott Hughes24ce5fb2011-04-08 20:01:01 -070015 glGetShaderInfoLog(shader, infoLen, NULL, buf);
16 jstring result = _env->NewStringUTF(buf);
17 free(buf);
18 return result;
19}