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) {
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);
}