UPD: onRender() als eigener Pass, closes #3

This commit is contained in:
sebastian 2026-04-17 07:27:40 +02:00
parent 705d311c6d
commit 373fb34ea0
6 changed files with 23 additions and 16 deletions

View File

@ -8,8 +8,6 @@
#include "../layer/Layer.h"
#include "../platform/glfw/InputManager.h"
#include "inputsOutputs/stateControl/StateRegistry.h"
#include "inputsOutputs/stateControl/states/EmptyState.h"
#include "inputsOutputs/stateControl/states/State.h"
Application* Application::instance = nullptr;
@ -53,9 +51,10 @@ void Application::run() {
window->OnUpdate();
updateTime();
for (Layer* layer : layers)
{
layer->onUpdate();
}
for (Layer* layer : layers)
layer->onRender();
InputManager::update();

View File

@ -20,6 +20,7 @@ public:
virtual void onAttach() {}
virtual void onDetach() {}
virtual void onUpdate() {}
virtual void onRender() {}
void setGameMode(std::shared_ptr<GameMode> gameMode) {this->gameMode = std::move(gameMode);}
[[nodiscard]] std::shared_ptr<GameMode> getGameMode() const {return gameMode;}

View File

@ -132,6 +132,10 @@ void GameLayer::onUpdate()
}
buildingPlacementSystem->update(*entityManager, *gameMode, 0, *turnState);
CollectResourceSystem::update(*entityManager, *gameMode);
}
void GameLayer::onRender() {
RenderSystem::render(*entityManager, *renderer);
renderer->render(*light, *camera);

View File

@ -27,6 +27,7 @@ public:
void onAttach() override;
void onDetach() override;
void onUpdate() override;
void onRender() override;
private:
TexturedModel texturedModel;
std::unique_ptr<Camera> camera;

View File

@ -156,18 +156,6 @@ void UILayer::onUpdate() {
rootContainer->update(0.f); //Todo: Determine frame time
}
UiRenderBundle renderBundle;
if (rootContainer) {
rootContainer->collectRenderData(renderBundle);
}
auto guis = renderBundle.getGUITextures();
guiRenderer->render(guis);
auto renderTexts = renderBundle.getGUITexts();
textRenderer->renderGuiTexts(renderTexts);
if (rootContainer->isMouseOver(Application::getInstance().mouse->getX(), Application::getInstance().mouse->getY())) {
Application::getInstance().stateManager->suggestState(StateRegistry::get().uiState, false);
} else {
@ -178,3 +166,16 @@ void UILayer::onUpdate() {
void UILayer::onDetach() {
Layer::onDetach();
}
void UILayer::onRender() {
UiRenderBundle renderBundle;
if (rootContainer) {
rootContainer->collectRenderData(renderBundle);
}
auto guis = renderBundle.getGUITextures();
guiRenderer->render(guis);
auto renderTexts = renderBundle.getGUITexts();
textRenderer->renderGuiTexts(renderTexts);
}

View File

@ -36,6 +36,7 @@ public:
void onAttach() override;
void onUpdate() override;
void onDetach() override;
void onRender() override;
};