Optimized cache locality and rendering state change

This commit is contained in:
Antoine Pilote
2023-07-22 02:28:56 -04:00
parent df69d17305
commit 16209535db
6 changed files with 46 additions and 17 deletions

View File

@@ -75,16 +75,25 @@ namespace Nuake {
Entity Scene::GetEntityByID(int id)
{
if (_EntitiesIDMap.find(id) != _EntitiesIDMap.end())
{
return _EntitiesIDMap[id];
}
auto idView = m_Registry.view<NameComponent>();
for (auto e : idView)
{
NameComponent& nameC = idView.get<NameComponent>(e);
if (nameC.ID == id)
{
return Entity{ e, this };
auto newEntity = Entity{ e, this };
_EntitiesIDMap[id] = newEntity;
return newEntity;
}
}
Logger::Log("Entity not found with id: " + std::to_string(id), "scene", CRITICAL);
assert("Entity not found");
}
@@ -242,6 +251,8 @@ namespace Nuake {
nameComponent.Name = entityName;
nameComponent.ID = id;
_EntitiesIDMap[id] = entity;
Logger::Log("Entity created with name: " + nameComponent.Name, "scene", LOG_TYPE::VERBOSE);
return entity;
}