]> git.sesse.net Git - movit/blobdiff - init.cpp
Make the demo program run with core contexts.
[movit] / init.cpp
index f9e7f1580a91e44be43aaef306e0b10823a4f468..ed8172dcaefa25059c64566cc4ebbe59a6657d72 100644 (file)
--- a/init.cpp
+++ b/init.cpp
@@ -428,11 +428,22 @@ bool init_movit(const string& data_directory, MovitDebugLevel debug_level)
        }
 
        // Find out what shader model we should compile for.
+       // We need at least 1.30, due to use of (among others) integers.
        if (epoxy_is_desktop_gl()) {
-               if (get_glsl_version() >= 1.30) {
+               if (get_glsl_version() < 1.30f) {
+                       fprintf(stderr, "Movit system requirements: Needs at least GLSL version 1.30 (has version %.1f)\n",
+                               get_glsl_version());
+                       return false;
+               }
+               if (get_glsl_version() < 1.50f) {
                        movit_shader_model = MOVIT_GLSL_130;
                } else {
-                       movit_shader_model = MOVIT_GLSL_110;
+                       // Note: All of our 1.50 shaders are identical to our 1.30 shaders,
+                       // but OS X does not support 1.30; only 1.10 (which we don't support
+                       // anymore) and 1.50 (and then only with core contexts). So we keep
+                       // a second set of shaders around whose only difference is the different
+                       // #version declaration.
+                       movit_shader_model = MOVIT_GLSL_150;
                }
        } else {
                movit_shader_model = MOVIT_ESSL_300;