GLSL 1.20:发送属性导致分段错误

GLSL 1.20: sending attribute causes segmentation fault

本文关键字:分段 错误 属性 GLSL      更新时间:2023-10-16

我需要将一个属性变量传递给着色器,以了解如何计算gl_Position。对于绘制的任何对象,该值都应该不同。这是声明:

attribute int drawText;

根据它的值决定如何计算CCD_ 2。这很热我在c++程序中传递它:

// Pass some uniforms
GLint location= glGetAttribLocation(program_id, (char*)"drawText");
glEnableVertexAttribArray(location);
glVertexAttribI1i(location,1);
glutSolidCube(15);
glDisableVertexAttribArray(location);

但我有分段错误。我试图注释发送属性(glVertexAttribI1i)的行,在这种情况下程序不会崩溃。可能是什么问题?

整数顶点属性需要OpenGL 3.0和GLSL>=1.30。

也许你在用GLEW?你应该在使用(void*)(glVertexAttribI1i) != 0之前检查一下。

此外,当每个顶点的属性值相同时,如您发布的片段中所示,您应该使用统一。

检查数据类型是否相同,或者属性名称"drawText"是否正确。