• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <string.h>
2 
3 /* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
4 static
5 jstring
android_glGetProgramInfoLog(JNIEnv * _env,jobject _this,jint shader)6 android_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     }
22 exit:
23     if (buf) {
24             free(buf);
25     }
26     return _result;
27 }