Working on visibility pass
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user