diff --git a/source/resource.cpp b/source/resource.cpp index c37ddd7..f72e4a4 100644 --- a/source/resource.cpp +++ b/source/resource.cpp @@ -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) diff --git a/source/screen.cpp b/source/screen.cpp index 1ed57d8..c352b43 100644 --- a/source/screen.cpp +++ b/source/screen.cpp @@ -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 diff --git a/source/screen.h b/source/screen.h index e565122..4142a64 100644 --- a/source/screen.h +++ b/source/screen.h @@ -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