Skybox
[opengl.git] / model.cpp
index 8046e29434fcf467b29942dc56aa5b60b76b84cf..524b913b196ec2c8f6fe4aeb756089073ee39e65 100644 (file)
--- a/model.cpp
+++ b/model.cpp
@@ -132,7 +132,7 @@ void Model::Node::draw(     const std::vector<Mesh> &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);
 }