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 screen = Screen::get();
auto renderer = screen->getRenderer(); auto renderer = screen->getRenderer();
screen->update(); screen->coreUpdate();
constexpr float X_PADDING = 10.0f; constexpr float X_PADDING = 10.0f;
constexpr float Y_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_); 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) // Comprueba los eventos durante la carga (permite salir con ESC o cerrar ventana)

View File

@@ -95,6 +95,16 @@ void Screen::render()
renderScreen(); 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_ // Renderiza el contenido del game_canvas_
void Screen::renderScreen() void Screen::renderScreen()
{ {
@@ -189,6 +199,13 @@ void Screen::update()
Mouse::updateCursorVisibility(); 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 // Actualiza y dibuja el efecto de flash en la pantalla
void Screen::renderFlash() void Screen::renderFlash()
{ {
@@ -291,10 +308,8 @@ void Screen::renderOverlays()
renderShake(); renderShake();
renderFlash(); renderFlash();
renderAttenuate(); renderAttenuate();
if (service_menu_) service_menu_->render();
service_menu_->render(); notifier_->render();
if (notifier_)
notifier_->render();
#ifdef DEBUG #ifdef DEBUG
renderInfo(); renderInfo();
#endif #endif

View File

@@ -26,9 +26,11 @@ public:
// --- Métodos principales --- // --- Métodos principales ---
void update(); // Actualiza la lógica de la clase 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 clean(Color color = Color(0x00, 0x00, 0x00)); // Limpia la pantalla
void start(); // Prepara para empezar a dibujar en la textura de juego void start(); // Prepara para empezar a dibujar en la textura de juego
void render(); // Vuelca el contenido del renderizador en pantalla 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 --- // --- Configuración de ventana y render ---
void setFullscreenMode(bool mode = options.video.fullscreen); // Establece el modo de video void setFullscreenMode(bool mode = options.video.fullscreen); // Establece el modo de video