我编码一个3D OpenGL的测试应用程序,我有一个功能设置是这样的:标识符“”是不确定的
Shader::Shader(const std::string& fileName)
{
program = glCreateProgram();
shaders[0] = CreateShader(LoadShader(fileName + ".vs"), GL_VERTEX_SHADER);
shaders[1] = CreateShader(LoadShader(fileName + ".fs"), GL_FRAGMENT_SHADER);
for (unsigned int i=0; i < NUM_SHADERS; i++)
glAttachShader(program, shaders[1]);
glBindAttribLocation(program, 0, "position");
glLinkProgram(program);
}
然而,当我试图声明shaders[0] = CreateShader(LoadShader(fileName + ".vs"), GL_VERTEX SHADER);
我得到的错误:标识符“着色”未定义,我该如何解决这个问题?
问问自己:如何定义shaders,然后告诉我们它是如何声明的。 –
你还没有声明一个着色器数组。 –
*但是当我尝试声明* - 该行不声明任何东西。该行代码将'CreateShader'的返回值赋予我们(和编译器)一无所知的东西,即'shaders [0]'和'shaders [1]'。 – PaulMcKenzie