Working on visibility pass

This commit is contained in:
Dynamitos
2024-06-07 09:19:47 +02:00
parent ad00e16cf9
commit cb21e8a85a
24 changed files with 450 additions and 373 deletions
+4 -2
View File
@@ -27,10 +27,11 @@ public:
void setupView(Dependencies<Deps...>)
{
//List<std::function<void()>> work;
registry.view<Components..., Deps...>().each([&](Components&... comp, Deps&... deps){
registry.view<Components..., Deps...>().each([&](entt::entity id, Components&... comp, Deps&... deps){
//work.add([&]() {
(accessComponent(deps), ...);
update(comp...);
update(id, comp...);
//});
});
//getThreadPool().runAndWait(std::move(work));
@@ -41,7 +42,8 @@ public:
setupView((getDependencies<Components>() | ...));
}
virtual void update() override {}
virtual void update(Components&... components) = 0;
virtual void update(Components&... components) {}
virtual void update(entt::entity id, Components&... components) {}
};
} // namespace System
} // namespace Seele
+3 -3
View File
@@ -14,10 +14,10 @@ MeshUpdater::~MeshUpdater()
{
}
void MeshUpdater::update(Component::Transform& transform, Component::Mesh& comp)
void MeshUpdater::update(entt::entity id, Component::Transform& transform, Component::Mesh& comp)
{
for (auto& mesh : comp.asset->meshes)
for (uint32 i = 0; i < comp.asset->meshes.size(); ++i)
{
mesh->vertexData->updateMesh(mesh, transform);
comp.asset->meshes[i]->vertexData->updateMesh(id, i, comp.asset->meshes[i], transform);
}
}
+1 -1
View File
@@ -12,7 +12,7 @@ class MeshUpdater : public ComponentSystem<Component::Transform, Component::Mesh
public:
MeshUpdater(PScene scene);
virtual ~MeshUpdater();
virtual void update(Component::Transform& transform, Component::Mesh& mesh) override;
virtual void update(entt::entity id, Component::Transform& transform, Component::Mesh& mesh) override;
private:
};
} // namespace System