glViewport(0, 0, width, 1);
+ vector<string> frag_shader_outputs;
GLuint glsl_program_num = resource_pool.compile_glsl_program(
read_version_dependent_file("vs", "vert"),
- read_version_dependent_file("texture1d", "frag"));
+ read_version_dependent_file("texture1d", "frag"),
+ frag_shader_outputs);
glUseProgram(glsl_program_num);
check_error();
glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler.
glViewport(0, 0, 512, 1);
+ vector<string> frag_shader_outputs;
GLuint glsl_program_num = resource_pool.compile_glsl_program(
read_version_dependent_file("vs", "vert"),
- read_version_dependent_file("texture1d", "frag"));
+ read_version_dependent_file("texture1d", "frag"),
+ frag_shader_outputs);
glUseProgram(glsl_program_num);
check_error();
glUniform1i(glGetUniformLocation(glsl_program_num, "tex"), 0); // Bind the 2D sampler.
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.10f) {
+ fprintf(stderr, "Attempting to continue nevertheless; expect shader compilation issues.\n");
+ fprintf(stderr, "Try switching to a core OpenGL context, as especially OS X drivers\n");
+ fprintf(stderr, "support newer GLSL versions there.\n");
+ movit_shader_model = MOVIT_GLSL_130_AS_110;
+ } else {
+ 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;
}
- movit_shader_model = MOVIT_GLSL_130;
} else {
movit_shader_model = MOVIT_ESSL_300;
}