UPD: onRender() als eigener Pass, closes #3
This commit is contained in:
parent
705d311c6d
commit
373fb34ea0
@ -8,8 +8,6 @@
|
|||||||
#include "../layer/Layer.h"
|
#include "../layer/Layer.h"
|
||||||
#include "../platform/glfw/InputManager.h"
|
#include "../platform/glfw/InputManager.h"
|
||||||
#include "inputsOutputs/stateControl/StateRegistry.h"
|
#include "inputsOutputs/stateControl/StateRegistry.h"
|
||||||
#include "inputsOutputs/stateControl/states/EmptyState.h"
|
|
||||||
#include "inputsOutputs/stateControl/states/State.h"
|
|
||||||
|
|
||||||
Application* Application::instance = nullptr;
|
Application* Application::instance = nullptr;
|
||||||
|
|
||||||
@ -53,9 +51,10 @@ void Application::run() {
|
|||||||
window->OnUpdate();
|
window->OnUpdate();
|
||||||
updateTime();
|
updateTime();
|
||||||
for (Layer* layer : layers)
|
for (Layer* layer : layers)
|
||||||
{
|
|
||||||
layer->onUpdate();
|
layer->onUpdate();
|
||||||
}
|
|
||||||
|
for (Layer* layer : layers)
|
||||||
|
layer->onRender();
|
||||||
|
|
||||||
InputManager::update();
|
InputManager::update();
|
||||||
|
|
||||||
|
|||||||
@ -20,6 +20,7 @@ public:
|
|||||||
virtual void onAttach() {}
|
virtual void onAttach() {}
|
||||||
virtual void onDetach() {}
|
virtual void onDetach() {}
|
||||||
virtual void onUpdate() {}
|
virtual void onUpdate() {}
|
||||||
|
virtual void onRender() {}
|
||||||
|
|
||||||
void setGameMode(std::shared_ptr<GameMode> gameMode) {this->gameMode = std::move(gameMode);}
|
void setGameMode(std::shared_ptr<GameMode> gameMode) {this->gameMode = std::move(gameMode);}
|
||||||
[[nodiscard]] std::shared_ptr<GameMode> getGameMode() const {return gameMode;}
|
[[nodiscard]] std::shared_ptr<GameMode> getGameMode() const {return gameMode;}
|
||||||
|
|||||||
@ -132,6 +132,10 @@ void GameLayer::onUpdate()
|
|||||||
}
|
}
|
||||||
buildingPlacementSystem->update(*entityManager, *gameMode, 0, *turnState);
|
buildingPlacementSystem->update(*entityManager, *gameMode, 0, *turnState);
|
||||||
CollectResourceSystem::update(*entityManager, *gameMode);
|
CollectResourceSystem::update(*entityManager, *gameMode);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void GameLayer::onRender() {
|
||||||
RenderSystem::render(*entityManager, *renderer);
|
RenderSystem::render(*entityManager, *renderer);
|
||||||
|
|
||||||
renderer->render(*light, *camera);
|
renderer->render(*light, *camera);
|
||||||
|
|||||||
@ -27,6 +27,7 @@ public:
|
|||||||
void onAttach() override;
|
void onAttach() override;
|
||||||
void onDetach() override;
|
void onDetach() override;
|
||||||
void onUpdate() override;
|
void onUpdate() override;
|
||||||
|
void onRender() override;
|
||||||
private:
|
private:
|
||||||
TexturedModel texturedModel;
|
TexturedModel texturedModel;
|
||||||
std::unique_ptr<Camera> camera;
|
std::unique_ptr<Camera> camera;
|
||||||
|
|||||||
@ -156,18 +156,6 @@ void UILayer::onUpdate() {
|
|||||||
rootContainer->update(0.f); //Todo: Determine frame time
|
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())) {
|
if (rootContainer->isMouseOver(Application::getInstance().mouse->getX(), Application::getInstance().mouse->getY())) {
|
||||||
Application::getInstance().stateManager->suggestState(StateRegistry::get().uiState, false);
|
Application::getInstance().stateManager->suggestState(StateRegistry::get().uiState, false);
|
||||||
} else {
|
} else {
|
||||||
@ -178,3 +166,16 @@ void UILayer::onUpdate() {
|
|||||||
void UILayer::onDetach() {
|
void UILayer::onDetach() {
|
||||||
Layer::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);
|
||||||
|
}
|
||||||
|
|||||||
@ -36,6 +36,7 @@ public:
|
|||||||
void onAttach() override;
|
void onAttach() override;
|
||||||
void onUpdate() override;
|
void onUpdate() override;
|
||||||
void onDetach() override;
|
void onDetach() override;
|
||||||
|
void onRender() override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user