我編碼一個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