Screen: afegit coreUpdate() i coreRender()

This commit is contained in:
2025-06-10 22:24:11 +02:00
parent cabee86ee0
commit 8741f9da58
3 changed files with 23 additions and 6 deletions

View File

@@ -430,7 +430,7 @@ void Resource::renderProgress()
auto screen = Screen::get();
auto renderer = screen->getRenderer();
screen->update();
screen->coreUpdate();
constexpr float X_PADDING = 10.0f;
constexpr float Y_PADDING = 10.0f;
@@ -451,7 +451,7 @@ void Resource::renderProgress()
loading_text_->write(X_PADDING, BAR_Y_POSITION - 9, "Loading : " + loading_resource_name_);
screen->render();
screen->coreRender();
}
// Comprueba los eventos durante la carga (permite salir con ESC o cerrar ventana)

View File

@@ -95,6 +95,16 @@ void Screen::render()
renderScreen();
}
// Vuelca el contenido del renderizador en pantalla exceptuando ciertas partes
void Screen::coreRender()
{
fps_.increment();
#ifdef DEBUG
renderInfo();
#endif
renderScreen();
}
// Renderiza el contenido del game_canvas_
void Screen::renderScreen()
{
@@ -189,6 +199,13 @@ void Screen::update()
Mouse::updateCursorVisibility();
}
// Actualiza los elementos mínimos
void Screen::coreUpdate()
{
fps_.calculate(SDL_GetTicks());
Mouse::updateCursorVisibility();
}
// Actualiza y dibuja el efecto de flash en la pantalla
void Screen::renderFlash()
{
@@ -291,10 +308,8 @@ void Screen::renderOverlays()
renderShake();
renderFlash();
renderAttenuate();
if (service_menu_)
service_menu_->render();
if (notifier_)
notifier_->render();
service_menu_->render();
notifier_->render();
#ifdef DEBUG
renderInfo();
#endif

View File

@@ -26,9 +26,11 @@ public:
// --- Métodos principales ---
void update(); // Actualiza la lógica de la clase
void coreUpdate(); // Actualiza los elementos mínimos
void clean(Color color = Color(0x00, 0x00, 0x00)); // Limpia la pantalla
void start(); // Prepara para empezar a dibujar en la textura de juego
void render(); // Vuelca el contenido del renderizador en pantalla
void coreRender(); // Vuelca el contenido del renderizador en pantalla exceptuando ciertas partes
// --- Configuración de ventana y render ---
void setFullscreenMode(bool mode = options.video.fullscreen); // Establece el modo de video