blob: d92f515983520890d64a55c8d070af7fe63dd928 [file] [log] [blame]
Jack Palevich560814f2009-11-19 16:34:55 +08001#include <string.h>
2
3/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
4static
5jstring
6android_glGetProgramInfoLog (JNIEnv *_env, jobject _this, jint shader) {
7 GLint infoLen = 0;
8 jstring _result = 0;
9 char* buf = 0;
10 glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
11 if (infoLen) {
12 char* buf = (char*) malloc(infoLen);
13 if (buf == 0) {
14 _env->ThrowNew(IAEClass, "out of memory");
15 goto exit;
16 }
17 glGetProgramInfoLog(shader, infoLen, NULL, buf);
18 _result = _env->NewStringUTF(buf);
19 } else {
20 _result = _env->NewStringUTF("");
21 }
22exit:
23 if (buf) {
24 free(buf);
25 }
26 return _result;
27}