我正在编写一个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);
时,我收到错误:标识符“着色器”未定义,我该如何解决此问题?
答案 0 :(得分:0)
你忘记了#include "shader.h"
。这将解决您的问题。
我猜你正在研究类似https://github.com/BennyQBD/ModernOpenGLTutorial的东西。以下是m_shaders
https://github.com/BennyQBD/ModernOpenGLTutorial/blob/master/shader.h#L29的声明。您正在使用shaders
。