aboutsummaryrefslogtreecommitdiff
path: root/tests/glshaderinfo.cpp
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-06-02 12:41:50 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-06-02 12:41:50 -0700
commit0ce0d91f992aec0076f88ae02a79ebbadebb36b3 (patch)
treecce915a04b460d36ec788a15f1f284a7da63b6e8 /tests/glshaderinfo.cpp
parent25ececc61907bc8a80be095a3be1c204c2390c1d (diff)
return correct values for GL_SHADER_COMPILER and GL_NUM_SHADER_BINARY_FORMATS
Diffstat (limited to 'tests/glshaderinfo.cpp')
-rw-r--r--tests/glshaderinfo.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/glshaderinfo.cpp b/tests/glshaderinfo.cpp
new file mode 100644
index 00000000..8ec393a8
--- /dev/null
+++ b/tests/glshaderinfo.cpp
@@ -0,0 +1,52 @@
+#define GL_GLEXT_PROTOTYPES
+#define EGL_EGLEXT_PROTOTYPES
+
+#define _GNU_SOURCE
+
+#include <math.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/time.h>
+#include <unistd.h>
+#ifdef __APPLE__
+#include <OpenGL/gl.h>
+#include <Glut/glut.h>
+#else
+#include <GL/gl.h>
+#include <GL/glut.h>
+#endif
+
+#include <assert.h>
+#include <emscripten.h>
+
+int main(int argc, char *argv[])
+{
+ /* Initialize the window */
+ glutInit(&argc, argv);
+ glutInitWindowSize(300, 300);
+ glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH);
+
+ glutCreateWindow("es2gears");
+
+ GLint shaderCompiler;
+ glGetIntegerv(GL_SHADER_COMPILER, &shaderCompiler);
+
+ GLint numShaderBinaryFormats;
+ glGetIntegerv(GL_NUM_SHADER_BINARY_FORMATS, &numShaderBinaryFormats);
+
+ printf("%d,%d\n", shaderCompiler, numShaderBinaryFormats);
+
+ if (!shaderCompiler && numShaderBinaryFormats == 0) {
+ printf("In current environment, the GLES2 implementation IS NOT standard conforming! "
+ "GL_SHADER_COMPILER == GL_FALSE and GL_NUM_SHADER_BINARY_FORMATS == 0! "
+ "In GLES2 spec, either compiling shaders or binary shaders must be supported! (Section 2.10 - Vertex Shaders)\n");
+ int result = 0;
+ REPORT_RESULT();
+ } else {
+ assert(numShaderBinaryFormats == 0);
+ int result = 1;
+ REPORT_RESULT();
+ }
+ return 0;
+}