summaryrefslogtreecommitdiff
path: root/application
diff options
context:
space:
mode:
Diffstat (limited to 'application')
-rw-r--r--application/resviewer.cpp21
1 files changed, 14 insertions, 7 deletions
diff --git a/application/resviewer.cpp b/application/resviewer.cpp
index 0e34c05..68c2316 100644
--- a/application/resviewer.cpp
+++ b/application/resviewer.cpp
@@ -44,9 +44,9 @@ private:
void
render() override
{
- const auto & [camFrust, lightFrust] = preFrame(gameState->environment->getSunPos());
+ SceneRenderer::preFrame(*this, gameState->environment->getSunPos());
SceneRenderer::render(*this);
- controls(camFrust, lightFrust);
+ controls();
}
void
@@ -90,12 +90,12 @@ private:
}
void
- controls(const Frustum & camFrust, const Frustum & lightFrust)
+ controls()
{
if (ImGui::Begin("Resource view")) {
ImGui::SetWindowSize({});
fileSelection();
- assetSelection(camFrust, lightFrust);
+ assetSelection();
}
ImGui::End();
@@ -131,7 +131,7 @@ private:
}
void
- assetSelection(const Frustum & camFrust, const Frustum & lightFrust)
+ assetSelection()
{
if (!gameState->assets.empty()) {
ImGui::BeginListBox("Asset");
@@ -142,7 +142,6 @@ private:
selectedAssetId = asset.first;
selectedAsset = renderable;
location = asset.second->createAt(position);
- renderable->preFrame(camFrust, lightFrust);
}
}
}
@@ -151,6 +150,14 @@ private:
}
void
+ forEachRenderable(const RenderableProcessor & func) const override
+ {
+ if (selectedAsset) {
+ func(selectedAsset);
+ }
+ }
+
+ void
content(const SceneShader & sceneShader, const Frustum & frustum) const override
{
gameState->terrain->render(sceneShader, frustum);
@@ -186,7 +193,7 @@ private:
std::filesystem::file_time_type fileTime;
const std::filesystem::path * selectedFile {};
std::string selectedAssetId;
- const Renderable * selectedAsset {};
+ Renderable * selectedAsset {};
Location position {.pos = {0, 0, TERRAIN_HEIGHT}, .rot = {}};
std::any location;
Angle cameraAngle {0.F};