如果在GLSL着色器的第一行中没有指定版本(所以没有" #version 330",实际使用哪个版本?
供应商(甚至是驱动程序)是否具体?
答案 0 :(得分:5)
什么是默认的GLSL版本?
#version
指令始终必须位于第一行除了空格和注释之外,
#version
指令必须出现在着色器中的任何其他指令之前。如果#version
指令没有出现在顶部,那么它假定为1.10,这几乎肯定不是你想要的。
如果它与组合来源有关,那么您可以省略#version
指令并执行以下操作:
const GLsizei stringCount = 2;
const GLchar *strings[stringCount] = {
"#version 330 core\n",
shaderSource,
};
glShaderSource(shader, stringCount, strings, NULL);