charcoal/OpenGLEngine/ShaderProgram.cpp

44 lines
619 B
C++
Raw Normal View History

2018-09-05 06:49:02 +00:00
#include "ShaderProgram.h"
ShaderProgram::ShaderProgram()
{
m_program = glCreateProgram();
}
ShaderProgram::~ShaderProgram()
{
glDeleteProgram(m_program);
}
void ShaderProgram::init()
{
m_vao = gen_vao();
}
2018-09-05 06:49:02 +00:00
void ShaderProgram::attach_shader(const Shader& shader)
{
glAttachShader(m_program, shader.get_shader());
}
void ShaderProgram::link()
{
glLinkProgram(m_program);
// TODO: Error handling
}
void ShaderProgram::use()
{
glUseProgram(m_program);
glBindVertexArray(get_vao());
}
GLuint ShaderProgram::get_program() const
{
return m_program;
}
GLuint ShaderProgram::get_vao() const
{
return m_vao;
}