Redesign program
This commit is contained in:
parent
077192c125
commit
7e6e2ec813
|
@ -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();
|
||||
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
Reference in New Issue