diff options
| author | Dan Goodliffe <dan.goodliffe@octal.co.uk> | 2026-02-23 17:35:48 +0000 |
|---|---|---|
| committer | Dan Goodliffe <dan.goodliffe@octal.co.uk> | 2026-02-23 17:35:48 +0000 |
| commit | 89b8ffa013c10db57be14fbdd59757c08c243e18 (patch) | |
| tree | e753cc920e37e72bec6a7ae391edcf25940f2db3 /ui/gameMainWindow.cpp | |
| parent | Simplified Frustum (diff) | |
| download | ilt-89b8ffa013c10db57be14fbdd59757c08c243e18.tar.bz2 ilt-89b8ffa013c10db57be14fbdd59757c08c243e18.tar.xz ilt-89b8ffa013c10db57be14fbdd59757c08c243e18.zip | |
Tidy the preFrame logic into a single function in SceneRenderer
Clients now just call that one helper and SceneProvider passes in all
the renderables.
Diffstat (limited to 'ui/gameMainWindow.cpp')
| -rw-r--r-- | ui/gameMainWindow.cpp | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/ui/gameMainWindow.cpp b/ui/gameMainWindow.cpp index 9f224a2..056dac3 100644 --- a/ui/gameMainWindow.cpp +++ b/ui/gameMainWindow.cpp @@ -83,15 +83,20 @@ GameMainWindow::handleInput(const SDL_Event & event) } void -GameMainWindow::render() +GameMainWindow::forEachRenderable(const RenderableProcessor & func) const { - const auto & [camFrust, lightFrust] = SceneRenderer::preFrame(gameState->environment->getSunPos()); for (const auto & [assetId, asset] : gameState->assets) { if (const auto renderable = asset.getAs<Renderable>()) { - renderable->preFrame(camFrust, lightFrust); + func(renderable); } } - gameState->world.apply<const Renderable>(&Renderable::preFrame, camFrust, lightFrust); + gameState->world.apply<Renderable>(func); +} + +void +GameMainWindow::render() +{ + SceneRenderer::preFrame(*this, gameState->environment->getSunPos()); SceneRenderer::render(*this); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); |
