summaryrefslogtreecommitdiff
path: root/gfx
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-03-03 21:08:59 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-03-03 21:08:59 +0000
commitde153c133b6ca1bf836f066e8d97c52204491abc (patch)
treeaf77ff8733bf9522d34a580791d33ce934a513c9 /gfx
parentCache the camera's view matrix (diff)
downloadilt-de153c133b6ca1bf836f066e8d97c52204491abc.tar.bz2
ilt-de153c133b6ca1bf836f066e8d97c52204491abc.tar.xz
ilt-de153c133b6ca1bf836f066e8d97c52204491abc.zip
Pass camera into SceneProvider::content
Allow for provider to perform culling.
Diffstat (limited to 'gfx')
-rw-r--r--gfx/gl/sceneProvider.h3
-rw-r--r--gfx/gl/sceneRenderer.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/gfx/gl/sceneProvider.h b/gfx/gl/sceneProvider.h
index f5e8e99..de6ba0b 100644
--- a/gfx/gl/sceneProvider.h
+++ b/gfx/gl/sceneProvider.h
@@ -5,6 +5,7 @@
class SceneRenderer;
class ShadowMapper;
class SceneShader;
+class Camera;
class SceneProvider {
public:
@@ -12,7 +13,7 @@ public:
virtual ~SceneProvider() = default;
DEFAULT_MOVE_COPY(SceneProvider);
- virtual void content(const SceneShader &) const = 0;
+ virtual void content(const SceneShader &, const Camera &) const = 0;
virtual void environment(const SceneShader &, const SceneRenderer &) const;
virtual void lights(const SceneShader &) const = 0;
virtual void shadows(const ShadowMapper &) const;
diff --git a/gfx/gl/sceneRenderer.cpp b/gfx/gl/sceneRenderer.cpp
index b2a7d78..188c4fd 100644
--- a/gfx/gl/sceneRenderer.cpp
+++ b/gfx/gl/sceneRenderer.cpp
@@ -71,7 +71,7 @@ SceneRenderer::render(const SceneProvider & scene) const
glEnable(GL_DEPTH_TEST);
glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
- scene.content(shader);
+ scene.content(shader, camera);
// Environment pass -
// * ambient - clears illumination texture - see setAmbientLight