#include endofthejedi::VAO::VAO() { glGenVertexArrays(1, &m_name); } endofthejedi::VAO::~VAO() { glDeleteVertexArrays(1, &m_name); } void endofthejedi::VAO::bind() { glBindVertexArray(m_name); } void endofthejedi::VAO::fill(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer) { glEnableVertexAttribArray(index); glVertexAttribPointer(index, size, GL_FLOAT, normalized, stride, pointer); } endofthejedi::Shader::Shader() { m_program = glCreateProgram(); } endofthejedi::Shader::~Shader() {} void endofthejedi::Shader::bind() { glUseProgram(m_program); } void endofthejedi::Shader::unbind() { glUseProgram(0); } void endofthejedi::Shader::load(std::string path, GLenum shadertype) { GLuint cheddar = glCreateShader(shadertype); const char* cheddardata = path.c_str(); glShaderSource(cheddar, 1, &cheddardata, NULL); glCompileShader(cheddar); glAttachShader(m_program, cheddar); glLinkProgram(m_program); glDeleteShader(cheddar); }