summaryrefslogtreecommitdiffstats
path: root/opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp')
-rw-r--r--opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp b/opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp
new file mode 100644
index 0000000..5b556d5
--- /dev/null
+++ b/opengl/tools/glgen/stubs/gles11/glGetProgramPipelineInfoLog.cpp
@@ -0,0 +1,19 @@
+#include <stdlib.h>
+
+/* void glGetProgramPipelineInfoLog ( GLuint shader, GLsizei maxLength, GLsizei* length, GLchar* infoLog ) */
+static jstring android_glGetProgramPipelineInfoLog(JNIEnv *_env, jobject, jint shader) {
+ GLint infoLen = 0;
+ glGetProgramPipelineiv(shader, GL_INFO_LOG_LENGTH, &infoLen);
+ if (!infoLen) {
+ return _env->NewStringUTF("");
+ }
+ char* buf = (char*) malloc(infoLen);
+ if (buf == NULL) {
+ jniThrowException(_env, "java/lang/OutOfMemoryError", "out of memory");
+ return NULL;
+ }
+ glGetProgramPipelineInfoLog(shader, infoLen, NULL, buf);
+ jstring result = _env->NewStringUTF(buf);
+ free(buf);
+ return result;
+}