fix: solventat el problema amb els shaders i el canvi a pantalla completa en sistemes unix

This commit is contained in:
2025-06-30 11:26:44 +02:00
parent 2fbdf0753a
commit 6ce0e756fb
3 changed files with 3 additions and 4 deletions

View File

@@ -2,6 +2,7 @@
#include <SDL3/SDL_log.h> // Para SDL_LogInfo, SDL_LogCategory #include <SDL3/SDL_log.h> // Para SDL_LogInfo, SDL_LogCategory
#include "mouse.h" // Para handleEvent #include "mouse.h" // Para handleEvent
#include "section.h" // Para Name, Options, name, options #include "section.h" // Para Name, Options, name, options
#include "screen.h"
namespace GlobalEvents namespace GlobalEvents
{ {
@@ -21,6 +22,7 @@ namespace GlobalEvents
break; break;
case SDL_EVENT_WINDOW_RESIZED: case SDL_EVENT_WINDOW_RESIZED:
Screen::get()->initShaders();
break; break;
default: default:

View File

@@ -124,7 +124,6 @@ void Screen::renderScreen()
void Screen::setFullscreenMode() void Screen::setFullscreenMode()
{ {
SDL_SetWindowFullscreen(window_, Options::video.fullscreen); SDL_SetWindowFullscreen(window_, Options::video.fullscreen);
initShaders();
} }
// Camibia entre pantalla completa y ventana // Camibia entre pantalla completa y ventana
@@ -291,8 +290,6 @@ void Screen::adjustWindowSize()
SDL_SetWindowPosition(window_, std::max(NEW_POS_X, WINDOWS_DECORATIONS_), std::max(NEW_POS_Y, 0)); SDL_SetWindowPosition(window_, std::max(NEW_POS_X, WINDOWS_DECORATIONS_), std::max(NEW_POS_Y, 0));
SDL_SetWindowSize(window_, WIDTH, HEIGHT); SDL_SetWindowSize(window_, WIDTH, HEIGHT);
initShaders();
} }
} }

View File

@@ -39,6 +39,7 @@ public:
bool decWindowSize(); // Reduce el tamaño de la ventana bool decWindowSize(); // Reduce el tamaño de la ventana
bool incWindowSize(); // Aumenta el tamaño de la ventana bool incWindowSize(); // Aumenta el tamaño de la ventana
void applySettings(); // Aplica los valores de las opciones void applySettings(); // Aplica los valores de las opciones
void initShaders(); // Inicializa los shaders
// --- Efectos visuales --- // --- Efectos visuales ---
void shake() { shake_effect_.enable(src_rect_, dst_rect_); } // Agita la pantalla void shake() { shake_effect_.enable(src_rect_, dst_rect_); } // Agita la pantalla
@@ -203,7 +204,6 @@ private:
void renderInfo(); // Muestra información por pantalla void renderInfo(); // Muestra información por pantalla
void renderScreen(); // Selecciona y ejecuta el método de renderizado adecuado void renderScreen(); // 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 initShaders(); // Inicializa los shaders
void adjustWindowSize(); // Calcula el tamaño de la ventana void adjustWindowSize(); // Calcula el tamaño de la ventana
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