update
This commit is contained in:
@@ -120,21 +120,35 @@ bool LOpenGLShader::compileShaderFromFile(const std::string &path) {
|
||||
return true;
|
||||
}
|
||||
|
||||
LOpenGLProgram::LOpenGLProgram() : linked_(false) {
|
||||
Create();
|
||||
}
|
||||
LOpenGLProgram::LOpenGLProgram() { Create(); }
|
||||
|
||||
LOpenGLProgram::~LOpenGLProgram() {
|
||||
glDeleteProgram(programId_);
|
||||
if (programId_ != 0) {
|
||||
glDeleteProgram(programId_);
|
||||
}
|
||||
}
|
||||
|
||||
void LOpenGLProgram::Create() { programId_ = glCreateProgram(); }
|
||||
void LOpenGLProgram::Create() {
|
||||
programId_ = glCreateProgram();
|
||||
created_ = (programId_ != 0);
|
||||
linked_ = false;
|
||||
}
|
||||
|
||||
bool LOpenGLProgram::Link() const {
|
||||
bool LOpenGLProgram::Link() {
|
||||
if (!created_ || linked_ || shaderList_.empty()) {
|
||||
return false;
|
||||
}
|
||||
glLinkProgram(programId_);
|
||||
GLint success = 0;
|
||||
glGetProgramiv(programId_, GL_LINK_STATUS, &success);
|
||||
if (!success) {
|
||||
char infoLog[512];
|
||||
glGetProgramInfoLog(programId_, 512, nullptr, infoLog);
|
||||
std::cout << "ERROR::PROGRAM::LINK_FAILED\n" << infoLog << std::endl;
|
||||
linked_ = false;
|
||||
return false;
|
||||
}
|
||||
linked_ = true;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -165,7 +179,7 @@ void LOpenGLProgram::setUniformValue(const std::string &name, float x, float y,
|
||||
}
|
||||
|
||||
void LOpenGLProgram::setUniformValue(const std::string &name, glm::mat4 value) const {
|
||||
glUniform4fv(glGetUniformLocation(programId_, name.c_str()), 1, &value[0][0]);
|
||||
glUniformMatrix4fv(glGetUniformLocation(programId_, name.c_str()), 1, GL_FALSE, &value[0][0]);
|
||||
}
|
||||
|
||||
bool LOpenGLProgram::addShader(std::unique_ptr<LOpenGLShader> shader) {
|
||||
|
||||
Reference in New Issue
Block a user