Initial work for pre-caching resources in render system

This commit is contained in:
2014-04-13 01:25:21 +02:00
parent 04cb1f1204
commit 14feb3659b
13 changed files with 64 additions and 35 deletions
+16 -1
View File
@@ -25,7 +25,7 @@ void Systems::RenderSystem::UpdateEntity(double dt, EntityID entity, EntityID pa
m_CachedModels[modelComponent->ModelFile] = std::make_shared<Model>(OBJ(modelComponent->ModelFile));
}
auto model = m_CachedModels[modelComponent->ModelFile];
auto model = m_World->GetResourceManager()->Fetch<Model>(modelComponent->ModelFile);
glm::vec3 position = m_TransformSystem->AbsolutePosition(entity);
glm::quat orientation = m_TransformSystem->AbsoluteOrientation(entity);
glm::vec3 scale = m_TransformSystem->AbsoluteScale(entity);
@@ -63,6 +63,21 @@ void Systems::RenderSystem::Initialize()
m_TransformSystem = m_World->GetSystem<Systems::TransformSystem>("TransformSystem");
}
void Systems::RenderSystem::RegisterComponents(ComponentFactory* cf)
{
cf->Register("Camera", []() { return new Components::Camera(); });
cf->Register("Model", []() { return new Components::Model(); });
cf->Register("Sprite", []() { return new Components::Sprite(); });
cf->Register("PointLight", []() { return new Components::PointLight(); });
cf->Register("DirectionalLight", []() { return new Components::DirectionalLight(); });
}
void Systems::RenderSystem::RegisterResourceTypes(ResourceManager* rm)
{
rm->RegisterType("Texture", [](std::string resourceName) { return new Texture(resourceName); });
rm->RegisterType("Model", [](std::string resourceName) { return new Model(OBJ(resourceName)); });
}