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.
}
// 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;