From d51f188c130667c44c44371c2e258cb0e29f3505 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Mon, 25 Jan 2021 00:55:43 +0000 Subject: Split physical objects from renderable ones --- application/main.cpp | 3 ++- game/physical.h | 5 +++-- gfx/renderable.h | 11 +++++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) create mode 100644 gfx/renderable.h diff --git a/application/main.cpp b/application/main.cpp index 2f9ae36..f510eca 100644 --- a/application/main.cpp +++ b/application/main.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -115,7 +116,7 @@ public: world.apply(&WorldObject::tick, t_passed); windows.apply(&Window::Clear, 0.0F, 0.0F, 0.0F, 1.0F); - world.apply(&Physical::render, shader); + world.apply(&Renderable::render, shader); windows.apply(&Window::SwapBuffers); if (const auto snz = framelen - t_passed; snz.count() > 0) { diff --git a/game/physical.h b/game/physical.h index 5f624b0..44af5e6 100644 --- a/game/physical.h +++ b/game/physical.h @@ -2,6 +2,7 @@ #define PHYSICAL_H #include +#include #include #include #include @@ -11,11 +12,11 @@ class Mesh; class Texture; template class Cache; -class Physical { +class Physical : public Renderable { public: Physical(glm::vec3 where, const std::string & m, const std::string & t); - void render(const Shader & shader) const; + void render(const Shader & shader) const override; [[nodiscard]] const auto & getPosition() const diff --git a/gfx/renderable.h b/gfx/renderable.h new file mode 100644 index 0000000..e3a34dd --- /dev/null +++ b/gfx/renderable.h @@ -0,0 +1,11 @@ +#ifndef RENDERABLE_H +#define RENDERABLE_H + +class Shader; + +class Renderable { +public: + virtual void render(const Shader & shader) const = 0; +}; + +#endif -- cgit v1.2.3