+ // You can turn this on if you want detailed debug messages from the driver.
+ // You should probably also ask for a debug context (see gtest_sdl_main.cpp),
+ // or you might not get much data back.
+ // glDebugMessageCallbackARB(callback, nullptr);
+ // glDebugMessageControlARB(GL_DONT_CARE, GL_DONT_CARE, GL_DONT_CARE, 0, 0, GL_TRUE);
+
+ if (!check_extensions()) {
+ return false;
+ }
+
+ // 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.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 {
+ // 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;
+ }
+