From e9163f4228cd2536d594a0d723a310c437391cd6 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Thu, 14 Nov 2024 06:13:53 +0300 Subject: [PATCH] refactor WorldRenderer --- src/graphics/render/WorldRenderer.cpp | 19 ++++++++++--------- src/graphics/render/WorldRenderer.hpp | 3 ++- src/objects/Entities.cpp | 2 +- src/objects/Entities.hpp | 2 +- src/objects/rigging.cpp | 6 +++--- src/objects/rigging.hpp | 4 ++-- 6 files changed, 19 insertions(+), 17 deletions(-) diff --git a/src/graphics/render/WorldRenderer.cpp b/src/graphics/render/WorldRenderer.cpp index ac9f763f..ed3985d7 100644 --- a/src/graphics/render/WorldRenderer.cpp +++ b/src/graphics/render/WorldRenderer.cpp @@ -216,15 +216,20 @@ void WorldRenderer::renderLevel( const Camera& camera, const EngineSettings& settings, float delta, - bool pause + bool pause, + bool hudVisible ) { - auto assets = engine->getAssets(); + const auto& assets = *engine->getAssets(); + + texts->renderTexts( + *batch3d, ctx, assets, camera, settings, hudVisible, false + ); bool culling = engine->getSettings().graphics.frustumCulling.get(); float fogFactor = 15.0f / static_cast(settings.chunks.loadDistance.get() - 2); - auto& entityShader = assets->require("entity"); + auto& entityShader = assets.require("entity"); setupWorldShader(entityShader, camera, settings, fogFactor); skybox->bind(); @@ -238,7 +243,7 @@ void WorldRenderer::renderLevel( particles->render(camera, delta * !pause); modelBatch->render(); - auto& shader = assets->require("main"); + auto& shader = assets.require("main"); setupWorldShader(shader, camera, settings, fogFactor); drawChunks(level->chunks.get(), camera, shader); @@ -388,16 +393,12 @@ void WorldRenderer::draw( // Drawing background sky plane skybox->draw(pctx, camera, assets, worldInfo.daytime, worldInfo.fog); - /* Actually world render with depth buffer on */ { DrawContext ctx = wctx.sub(); ctx.setDepthTest(true); ctx.setCullFace(true); - texts->renderTexts( - *batch3d, ctx, assets, camera, settings, hudVisible, false - ); - renderLevel(ctx, camera, settings, delta, pause); + renderLevel(ctx, camera, settings, delta, pause, hudVisible); // Debug lines if (hudVisible) { if (player->debug) { diff --git a/src/graphics/render/WorldRenderer.hpp b/src/graphics/render/WorldRenderer.hpp index 976f467e..6dd61fca 100644 --- a/src/graphics/render/WorldRenderer.hpp +++ b/src/graphics/render/WorldRenderer.hpp @@ -112,7 +112,8 @@ public: const Camera& camera, const EngineSettings& settings, float delta, - bool pause + bool pause, + bool hudVisible ); void clear(); diff --git a/src/objects/Entities.cpp b/src/objects/Entities.cpp index ba7b0eec..614adf41 100644 --- a/src/objects/Entities.cpp +++ b/src/objects/Entities.cpp @@ -550,7 +550,7 @@ void Entities::renderDebug( } void Entities::render( - Assets* assets, + const Assets& assets, ModelBatch& batch, const Frustum* frustum, float delta, diff --git a/src/objects/Entities.hpp b/src/objects/Entities.hpp index 099fc99b..0026d15e 100644 --- a/src/objects/Entities.hpp +++ b/src/objects/Entities.hpp @@ -194,7 +194,7 @@ public: LineBatch& batch, const Frustum* frustum, const DrawContext& ctx ); void render( - Assets* assets, + const Assets& assets, ModelBatch& batch, const Frustum* frustum, float delta, diff --git a/src/objects/rigging.cpp b/src/objects/rigging.cpp index 8a31aeb8..b08b8441 100644 --- a/src/objects/rigging.cpp +++ b/src/objects/rigging.cpp @@ -12,9 +12,9 @@ using namespace rigging; -void ModelReference::refresh(const Assets* assets) { +void ModelReference::refresh(const Assets& assets) { if (updateFlag) { - model = assets->get(name); + model = assets.get(name); updateFlag = false; } } @@ -95,7 +95,7 @@ void SkeletonConfig::update(Skeleton& skeleton, glm::mat4 matrix) const { } void SkeletonConfig::render( - Assets* assets, + const Assets& assets, ModelBatch& batch, Skeleton& skeleton, const glm::mat4& matrix diff --git a/src/objects/rigging.hpp b/src/objects/rigging.hpp index ca9ec5de..de083f9b 100644 --- a/src/objects/rigging.hpp +++ b/src/objects/rigging.hpp @@ -32,7 +32,7 @@ namespace rigging { model::Model* model; bool updateFlag; - void refresh(const Assets* assets); + void refresh(const Assets& assets); }; class Bone { @@ -111,7 +111,7 @@ namespace rigging { void update(Skeleton& skeleton, glm::mat4 matrix) const; void render( - Assets* assets, + const Assets& assets, ModelBatch& batch, Skeleton& skeleton, const glm::mat4& matrix