fix: Renderizar textura antes de inicializar shaders
En constructor: SDL_RenderTexture() antes de initShaders() Esto asegura que la textura tiene contenido válido. Revertido lazy initialization que no funcionaba. Vuelta a la solución original que sí funcionaba.
This commit is contained in:
@@ -55,8 +55,12 @@ Screen::Screen()
|
||||
setDebugInfoEnabled(true);
|
||||
#endif
|
||||
|
||||
// Los shaders se inicializarán lazy en el primer render si están activos
|
||||
// Esto evita problemas con texturas vacías al inicio
|
||||
// Renderizar una vez la textura vacía para que tenga contenido válido
|
||||
// antes de inicializar los shaders (evita pantalla negra)
|
||||
SDL_RenderTexture(renderer_, game_canvas_, nullptr, nullptr);
|
||||
|
||||
// Ahora sí inicializar los shaders
|
||||
initShaders();
|
||||
}
|
||||
|
||||
// Destructor
|
||||
@@ -96,19 +100,8 @@ void Screen::renderPresent() {
|
||||
SDL_SetRenderTarget(renderer_, nullptr);
|
||||
clean();
|
||||
|
||||
if (Options::video.shaders) {
|
||||
// Lazy initialization: inicializar shaders la primera vez que se usan
|
||||
if (!shader_backend_) {
|
||||
initShaders();
|
||||
}
|
||||
|
||||
if (shader_backend_) {
|
||||
shader_backend_->render();
|
||||
} else {
|
||||
// Fallback si falla la inicialización
|
||||
SDL_RenderTexture(renderer_, game_canvas_, nullptr, nullptr);
|
||||
SDL_RenderPresent(renderer_);
|
||||
}
|
||||
if (Options::video.shaders && shader_backend_) {
|
||||
shader_backend_->render();
|
||||
} else {
|
||||
SDL_RenderTexture(renderer_, game_canvas_, nullptr, nullptr);
|
||||
SDL_RenderPresent(renderer_);
|
||||
|
||||
Reference in New Issue
Block a user