1
0
Fork 0

Redesign program

This commit is contained in:
Meoweg 2015-11-13 13:10:49 +00:00
parent 077192c125
commit 7e6e2ec813
3 changed files with 10 additions and 8 deletions

View File

@ -72,9 +72,7 @@ int main()
glfwSetKeyCallback(on_key);
emscripten_set_mousemove_callback(nullptr, nullptr, false, on_em_mousemove);
Program *program = new Program("textured");
program->bind_attribs(__count, attribs);
program->link();
const Program *program = Program("textured").build(__count, attribs);
program->use();

View File

@ -27,10 +27,14 @@ void Program::bind_attrib_location(GLuint index, const GLchar *name)
glBindAttribLocation(_id, index, name);
}
void Program::bind_attribs(GLuint count, const GLchar *const names[])
const Program *Program::build(GLuint count, const GLchar *const names[])
{
for (GLuint index = 0; index < count; ++index)
bind_attrib_location(index, names[index]);
link();
return this;
}
void Program::link()

View File

@ -9,10 +9,7 @@ struct Program
{
Program(const std::string &name);
void bind_attrib_location(GLuint index, const GLchar *name);
void bind_attribs(GLuint count, const GLchar *const names[]);
void link();
const Program *build(GLuint count, const GLchar *const names[]);
void use() const;
GLuint get_uniform_location(const GLchar *name) const;
@ -20,6 +17,9 @@ struct Program
private:
static const std::string filename(const std::string &name);
void bind_attrib_location(GLuint index, const GLchar *name);
void link();
GLuint _id;
};