GLSL - 相当于“layout(location = 1)”在#version 130中

时间:2011-10-05 22:40:37

标签: layout compatibility glsl

我正在阅读有关openGL 3.3的教程(当然正在使用GLSL 330)。不幸的是我的硬件仅限于openGL 3.0(其中GLSL 130是最新的格式)。在GLSL 130中的语法

layout (location = 1) in vec4 position;

产生错误。最重要的是,将几个“布局”实例应用于不同变量的代码不起作用。我甚至试过

#extension ARB_explicit_attrib_location : require

也不受支持。有没有办法从330中等效地重写330这些语句?

1 个答案:

答案 0 :(得分:19)

如果您的实现不支持ARB_explicit_attrib_location(作为扩展名或version 330或更高版本),则您不能使用显式属性位置。您必须在链接阶段glBindAttribLocation之前指定它们。

从技术上讲,你的“硬件”可以做得很好。 NVIDIA和ATI在所有仍支持驱动程序的硬件中支持此扩展。这是API的便利。我猜你是英特尔硬件的一部分。如果是这样,你会表示同情。

是的,那是my code, by chance