screen.cpp: getDisplayInfo()
resource.cpp: afegida info del display en la pantalla de carrega
This commit is contained in:
@@ -809,6 +809,23 @@ void Resource::renderProgress() {
|
|||||||
Lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_,
|
Lang::getText("[RESOURCE] LOADING") + " : " + loading_resource_name_,
|
||||||
param.resource.color);
|
param.resource.color);
|
||||||
|
|
||||||
|
// Muestra información del monitor alineada con la barra de carga
|
||||||
|
loading_text_->writeColored(
|
||||||
|
X_PADDING,
|
||||||
|
Y_PADDING,
|
||||||
|
screen->getDisplayMonitorName(),
|
||||||
|
param.resource.color);
|
||||||
|
loading_text_->writeColored(
|
||||||
|
X_PADDING,
|
||||||
|
Y_PADDING + 9,
|
||||||
|
std::to_string(screen->getDisplayMonitorWidth()) + "x" + std::to_string(screen->getDisplayMonitorHeight()),
|
||||||
|
param.resource.color);
|
||||||
|
loading_text_->writeColored(
|
||||||
|
X_PADDING,
|
||||||
|
Y_PADDING + 18,
|
||||||
|
std::to_string(screen->getDisplayMonitorRefreshRate()) + "Hz",
|
||||||
|
param.resource.color);
|
||||||
|
|
||||||
// Renderiza el frame en pantalla
|
// Renderiza el frame en pantalla
|
||||||
screen->coreRender();
|
screen->coreRender();
|
||||||
}
|
}
|
||||||
@@ -844,9 +861,6 @@ void Resource::loadDemoDataQuiet() {
|
|||||||
|
|
||||||
// Inicializa los rectangulos que definen la barra de progreso
|
// Inicializa los rectangulos que definen la barra de progreso
|
||||||
void Resource::initProgressBar() {
|
void Resource::initProgressBar() {
|
||||||
constexpr float X_PADDING = 20.0F;
|
|
||||||
constexpr float Y_PADDING = 20.0F;
|
|
||||||
constexpr float BAR_HEIGHT = 10.0F;
|
|
||||||
const float BAR_Y_POSITION = param.game.height - BAR_HEIGHT - Y_PADDING;
|
const float BAR_Y_POSITION = param.game.height - BAR_HEIGHT - Y_PADDING;
|
||||||
|
|
||||||
const float WIRED_BAR_WIDTH = param.game.width - (X_PADDING * 2);
|
const float WIRED_BAR_WIDTH = param.game.width - (X_PADDING * 2);
|
||||||
|
|||||||
@@ -120,6 +120,11 @@ class Resource {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// --- Constantes para la barra de progreso ---
|
||||||
|
static constexpr float X_PADDING = 20.0F;
|
||||||
|
static constexpr float Y_PADDING = 20.0F;
|
||||||
|
static constexpr float BAR_HEIGHT = 10.0F;
|
||||||
|
|
||||||
// --- Modo de carga ---
|
// --- Modo de carga ---
|
||||||
LoadingMode loading_mode_;
|
LoadingMode loading_mode_;
|
||||||
|
|
||||||
|
|||||||
@@ -86,10 +86,10 @@ void Screen::render() {
|
|||||||
|
|
||||||
// Vuelca el contenido del renderizador en pantalla exceptuando ciertas partes
|
// Vuelca el contenido del renderizador en pantalla exceptuando ciertas partes
|
||||||
void Screen::coreRender() {
|
void Screen::coreRender() {
|
||||||
fps_.increment();
|
/*fps_.increment();
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
renderInfo();
|
renderInfo();
|
||||||
#endif
|
#endif*/
|
||||||
renderPresent(); // Renderiza el contenido del game_canvas_
|
renderPresent(); // Renderiza el contenido del game_canvas_
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -358,6 +358,13 @@ void Screen::getDisplayInfo() {
|
|||||||
|
|
||||||
const auto *dm = SDL_GetCurrentDisplayMode(displays[0]);
|
const auto *dm = SDL_GetCurrentDisplayMode(displays[0]);
|
||||||
|
|
||||||
|
// Guarda información del monitor en display_monitor_
|
||||||
|
const char *first_display_name = SDL_GetDisplayName(displays[0]);
|
||||||
|
display_monitor_.name = (first_display_name != nullptr) ? first_display_name : "Unknown";
|
||||||
|
display_monitor_.width = static_cast<int>(dm->w);
|
||||||
|
display_monitor_.height = static_cast<int>(dm->h);
|
||||||
|
display_monitor_.refresh_rate = static_cast<int>(dm->refresh_rate);
|
||||||
|
|
||||||
// Calcula el máximo factor de zoom que se puede aplicar a la pantalla
|
// Calcula el máximo factor de zoom que se puede aplicar a la pantalla
|
||||||
Options::window.max_zoom = std::min(dm->w / param.game.width, dm->h / param.game.height);
|
Options::window.max_zoom = std::min(dm->w / param.game.width, dm->h / param.game.height);
|
||||||
Options::window.zoom = std::min(Options::window.zoom, Options::window.max_zoom);
|
Options::window.zoom = std::min(Options::window.zoom, Options::window.max_zoom);
|
||||||
|
|||||||
@@ -54,6 +54,12 @@ class Screen {
|
|||||||
[[nodiscard]] static auto getVSync() -> bool { return Options::video.vsync; } // Obtiene el valor de V-Sync
|
[[nodiscard]] static auto getVSync() -> bool { return Options::video.vsync; } // Obtiene el valor de V-Sync
|
||||||
[[nodiscard]] auto getText() const -> std::shared_ptr<Text> { return text_; } // Obtiene el puntero al texto de Screen
|
[[nodiscard]] auto getText() const -> std::shared_ptr<Text> { return text_; } // Obtiene el puntero al texto de Screen
|
||||||
|
|
||||||
|
// --- Display Monitor getters ---
|
||||||
|
[[nodiscard]] auto getDisplayMonitorName() const -> std::string { return display_monitor_.name; }
|
||||||
|
[[nodiscard]] auto getDisplayMonitorWidth() const -> int { return display_monitor_.width; }
|
||||||
|
[[nodiscard]] auto getDisplayMonitorHeight() const -> int { return display_monitor_.height; }
|
||||||
|
[[nodiscard]] auto getDisplayMonitorRefreshRate() const -> int { return display_monitor_.refresh_rate; }
|
||||||
|
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
// --- Debug ---
|
// --- Debug ---
|
||||||
void toggleDebugInfo() { debug_info_.show = !debug_info_.show; }
|
void toggleDebugInfo() { debug_info_.show = !debug_info_.show; }
|
||||||
@@ -65,6 +71,12 @@ class Screen {
|
|||||||
static constexpr int WINDOWS_DECORATIONS = 35; // Decoraciones de la ventana
|
static constexpr int WINDOWS_DECORATIONS = 35; // Decoraciones de la ventana
|
||||||
|
|
||||||
// --- Estructuras privadas ---
|
// --- Estructuras privadas ---
|
||||||
|
struct DisplayMonitor {
|
||||||
|
std::string name;
|
||||||
|
int width;
|
||||||
|
int height;
|
||||||
|
int refresh_rate;
|
||||||
|
};
|
||||||
struct FPS {
|
struct FPS {
|
||||||
Uint32 ticks{0}; // Tiempo en milisegundos desde que se comenzó a contar.
|
Uint32 ticks{0}; // Tiempo en milisegundos desde que se comenzó a contar.
|
||||||
int frame_count{0}; // Número acumulado de frames en el intervalo.
|
int frame_count{0}; // Número acumulado de frames en el intervalo.
|
||||||
@@ -206,6 +218,7 @@ class Screen {
|
|||||||
FlashEffect flash_effect_; // Efecto de flash en pantalla
|
FlashEffect flash_effect_; // Efecto de flash en pantalla
|
||||||
ShakeEffect shake_effect_; // Efecto de agitar la pantalla
|
ShakeEffect shake_effect_; // Efecto de agitar la pantalla
|
||||||
bool attenuate_effect_ = false; // Indica si la pantalla ha de estar atenuada
|
bool attenuate_effect_ = false; // Indica si la pantalla ha de estar atenuada
|
||||||
|
DisplayMonitor display_monitor_; // Información del monitor actual
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
Debug debug_info_; // Información de debug
|
Debug debug_info_; // Información de debug
|
||||||
#endif
|
#endif
|
||||||
@@ -218,7 +231,7 @@ class Screen {
|
|||||||
void renderPresent(); // Selecciona y ejecuta el método de renderizado adecuado
|
void renderPresent(); // Selecciona y ejecuta el método de renderizado adecuado
|
||||||
void loadShaders(); // Carga el contenido del archivo GLSL
|
void loadShaders(); // Carga el contenido del archivo GLSL
|
||||||
void adjustWindowSize(); // Calcula el tamaño de la ventana
|
void adjustWindowSize(); // Calcula el tamaño de la ventana
|
||||||
static void getDisplayInfo(); // Obtiene información sobre la pantalla
|
void getDisplayInfo(); // Obtiene información sobre la pantalla
|
||||||
void renderOverlays(); // Renderiza todos los overlays y efectos
|
void renderOverlays(); // Renderiza todos los overlays y efectos
|
||||||
void renderAttenuate(); // Atenúa la pantalla
|
void renderAttenuate(); // Atenúa la pantalla
|
||||||
void createText(); // Crea el objeto de texto
|
void createText(); // Crea el objeto de texto
|
||||||
|
|||||||
Reference in New Issue
Block a user