Remove copy method from drawable
This commit is contained in:
@@ -45,8 +45,6 @@ namespace OpenVulkano::Scene
|
|||||||
|
|
||||||
void SetShader(Shader* shader) { m_shader = shader; }
|
void SetShader(Shader* shader) { m_shader = shader; }
|
||||||
|
|
||||||
[[nodiscard]] virtual Drawable* Copy() = 0;
|
|
||||||
|
|
||||||
[[nodiscard]] Scene* GetScene() const { return m_scene; }
|
[[nodiscard]] Scene* GetScene() const { return m_scene; }
|
||||||
|
|
||||||
[[nodiscard]] const auto& GetNodes() const { return m_nodes; }
|
[[nodiscard]] const auto& GetNodes() const { return m_nodes; }
|
||||||
|
|||||||
@@ -125,10 +125,9 @@ namespace OpenVulkano::Scene
|
|||||||
for (auto& drawable : drawables)
|
for (auto& drawable : drawables)
|
||||||
{
|
{
|
||||||
Scene* drawableScene = drawable->GetScene();
|
Scene* drawableScene = drawable->GetScene();
|
||||||
if(drawableScene && drawableScene != scene)
|
if(drawableScene && drawableScene != scene) [[unlikely]]
|
||||||
{
|
{
|
||||||
Logger::SCENE->warn("Drawable is already associated with a scene! Creating copy.");
|
throw std::runtime_error("Drawable is already associated with a scene! Creating copy.");
|
||||||
drawable = drawable->Copy();
|
|
||||||
}
|
}
|
||||||
drawable->SetScene(scene);
|
drawable->SetScene(scene);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,5 @@ namespace OpenVulkano::Scene
|
|||||||
GridDrawable();
|
GridDrawable();
|
||||||
|
|
||||||
[[nodiscard]] Shader& GetShader() { return m_shader; }
|
[[nodiscard]] Shader& GetShader() { return m_shader; }
|
||||||
|
|
||||||
[[nodiscard]] Drawable* Copy() override { return new GridDrawable(); }
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -39,8 +39,6 @@ namespace OpenVulkano::Scene
|
|||||||
|
|
||||||
void Init(SimpleDrawable* drawable);
|
void Init(SimpleDrawable* drawable);
|
||||||
|
|
||||||
[[nodiscard]] Drawable* Copy() override { return new SimpleDrawable(this); }
|
|
||||||
|
|
||||||
[[nodiscard]] Geometry* GetMesh() const { return m_mesh; }
|
[[nodiscard]] Geometry* GetMesh() const { return m_mesh; }
|
||||||
|
|
||||||
[[nodiscard]] Material* GetMaterial() const { return m_material; }
|
[[nodiscard]] Material* GetMaterial() const { return m_material; }
|
||||||
|
|||||||
Reference in New Issue
Block a user