X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=model.cpp;h=524b913b196ec2c8f6fe4aeb756089073ee39e65;hp=8046e29434fcf467b29942dc56aa5b60b76b84cf;hb=c44e69ec78367fb2957324026894aef970f2481a;hpb=85f8f7278f24fe73fef1a19174376b155319072f diff --git a/model.cpp b/model.cpp index 8046e29..524b913 100644 --- a/model.cpp +++ b/model.cpp @@ -132,7 +132,7 @@ void Model::Node::draw( const std::vector &meshes, for (Node *child: children) child->draw(meshes, materials, m); } -Model::Model(const std::string &path, GLuint progId): progId(progId) { +Model::Model(const std::string &path, Program p): program(p) { const aiScene *scene = importer.ReadFile(path, aiProcess_Triangulate | aiProcess_CalcTangentSpace | aiProcess_GenNormals); if (!scene) { @@ -142,18 +142,19 @@ Model::Model(const std::string &path, GLuint progId): progId(progId) { for (int i = 0; i < scene->mNumMeshes; i++) { const aiMesh *mesh = scene->mMeshes[i]; - meshes.push_back(Mesh(mesh, progId)); + meshes.push_back(Mesh(mesh, p.progId)); } for (unsigned int i = 0; i < scene->mNumMaterials; i++) { const aiMaterial &material = *scene->mMaterials[i]; - materials.push_back(Material(material, progId)); + materials.push_back(Material(material, p.progId)); } - root = new Node(*(scene->mRootNode), progId); + root = new Node(*(scene->mRootNode), p.progId); } void Model::draw() const { + glUseProgram(program.progId); root->draw(meshes, materials); }