summaryrefslogtreecommitdiff
path: root/gfx/gl
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2025-03-06 00:25:22 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2025-03-07 02:04:35 +0000
commit625b78bba16dcbbe97fa84bbf8f2273472d79ade (patch)
tree726fb728ee2f04eeed06875cb59c46cd5147a311 /gfx/gl
parentSplit core view definition out of Camera into Frustum (diff)
downloadilt-625b78bba16dcbbe97fa84bbf8f2273472d79ade.tar.bz2
ilt-625b78bba16dcbbe97fa84bbf8f2273472d79ade.tar.xz
ilt-625b78bba16dcbbe97fa84bbf8f2273472d79ade.zip
Pass frustum into render functions
Support for culling objects outside the view frustum
Diffstat (limited to 'gfx/gl')
-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..93b384f 100644
--- a/gfx/gl/sceneProvider.h
+++ b/gfx/gl/sceneProvider.h
@@ -5,6 +5,7 @@
class SceneRenderer;
class ShadowMapper;
class SceneShader;
+class Frustum;
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 Frustum &) 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