summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2022-10-02 18:19:44 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2022-10-02 19:29:39 +0100
commit2ef7272e6817cf61828a9d80ca239092573505c7 (patch)
tree08833106b9b2e0e75846aef742a600db681187b3
parentRemove redundant null check (diff)
downloadilt-2ef7272e6817cf61828a9d80ca239092573505c7.tar.bz2
ilt-2ef7272e6817cf61828a9d80ca239092573505c7.tar.xz
ilt-2ef7272e6817cf61828a9d80ca239092573505c7.zip
Make Window shader available to clients
-rw-r--r--ui/gameMainWindow.cpp6
-rw-r--r--ui/gameMainWindow.h1
-rw-r--r--ui/window.h3
3 files changed, 10 insertions, 0 deletions
diff --git a/ui/gameMainWindow.cpp b/ui/gameMainWindow.cpp
index 3617ca8..c84781c 100644
--- a/ui/gameMainWindow.cpp
+++ b/ui/gameMainWindow.cpp
@@ -71,3 +71,9 @@ GameMainWindow::render() const
gameState->world.apply<Renderable>(&Renderable::render, shader);
Window::render();
}
+
+const Shader &
+GameMainWindow::getShader() const
+{
+ return shader;
+}
diff --git a/ui/gameMainWindow.h b/ui/gameMainWindow.h
index 68ad7ad..9cc72ab 100644
--- a/ui/gameMainWindow.h
+++ b/ui/gameMainWindow.h
@@ -15,6 +15,7 @@ public:
void render() const override;
private:
+ const Shader & getShader() const override;
Shader shader;
Camera camera;
};
diff --git a/ui/window.h b/ui/window.h
index b6ade60..f808588 100644
--- a/ui/window.h
+++ b/ui/window.h
@@ -10,6 +10,8 @@
#include <special_members.hpp>
#include <string>
+class Shader;
+
class Window {
public:
Window(size_t width, size_t height, const std::string & title);
@@ -28,6 +30,7 @@ public:
protected:
[[nodiscard]] SDL_GLContext glContext() const;
virtual void render() const;
+ virtual const Shader & getShader() const = 0;
using SDL_WindowPtr = wrapped_ptrt<SDL_Window, SDL_CreateWindow, SDL_DestroyWindow>;
SDL_WindowPtr m_window;