glGetProgramInfoLog.cpp revision 50d0b14689b0ae95ea7b66a8c2f7b955115812dd
150d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich#include <string.h>
250d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich
350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich/* void glGetProgramInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevichstatic
550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevichjstring
650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevichandroid_glGetProgramInfoLog (JNIEnv *_env, jobject _this, jint shader) {
750d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    GLint infoLen = 0;
850d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    jstring _result = 0;
950d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    char* buf = 0;
1050d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    glGetProgramiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
1150d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    if (infoLen) {
1250d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        char* buf = (char*) malloc(infoLen);
1350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        if (buf == 0) {
1450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich            _env->ThrowNew(IAEClass, "out of memory");
1550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich            goto exit;
1650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        }
1750d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        glGetProgramInfoLog(shader, infoLen, NULL, buf);
1850d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        _result = _env->NewStringUTF(buf);
1950d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    } else {
2050d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich        _result = _env->NewStringUTF("");
2150d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    }
2250d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevichexit:
2350d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    if (buf) {
2450d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich            free(buf);
2550d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    }
2650d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich    return _result;
2750d0b14689b0ae95ea7b66a8c2f7b955115812ddJack Palevich}