El atenuat de pantalla torna a funcionar. Fade feia dos SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_NONE); que mai tornava a restaurar
This commit is contained in:
@@ -132,9 +132,11 @@ void Fade::update()
|
|||||||
{
|
{
|
||||||
if (counter_ % fade_random_squares_delay_ == 0)
|
if (counter_ % fade_random_squares_delay_ == 0)
|
||||||
{
|
{
|
||||||
// Dibuja sobre el backbuffer_
|
// Cambia el renderizador al backbuffer_ y modifica sus opciones
|
||||||
auto temp = SDL_GetRenderTarget(renderer_);
|
auto temp = SDL_GetRenderTarget(renderer_);
|
||||||
SDL_SetRenderTarget(renderer_, backbuffer_);
|
SDL_SetRenderTarget(renderer_, backbuffer_);
|
||||||
|
SDL_BlendMode blend_mode;
|
||||||
|
SDL_GetRenderDrawBlendMode(renderer_, &blend_mode);
|
||||||
SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_NONE);
|
SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_NONE);
|
||||||
SDL_SetRenderDrawColor(renderer_, r_, g_, b_, a_);
|
SDL_SetRenderDrawColor(renderer_, r_, g_, b_, a_);
|
||||||
|
|
||||||
@@ -147,6 +149,7 @@ void Fade::update()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Deja el renderizador como estaba
|
// Deja el renderizador como estaba
|
||||||
|
SDL_SetRenderDrawBlendMode(renderer_, blend_mode);
|
||||||
SDL_SetRenderTarget(renderer_, temp);
|
SDL_SetRenderTarget(renderer_, temp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -169,6 +172,8 @@ void Fade::update()
|
|||||||
// Dibuja sobre el backbuffer_
|
// Dibuja sobre el backbuffer_
|
||||||
auto temp = SDL_GetRenderTarget(renderer_);
|
auto temp = SDL_GetRenderTarget(renderer_);
|
||||||
SDL_SetRenderTarget(renderer_, backbuffer_);
|
SDL_SetRenderTarget(renderer_, backbuffer_);
|
||||||
|
SDL_BlendMode blend_mode;
|
||||||
|
SDL_GetRenderDrawBlendMode(renderer_, &blend_mode);
|
||||||
SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_NONE);
|
SDL_SetRenderDrawBlendMode(renderer_, SDL_BLENDMODE_NONE);
|
||||||
SDL_SetRenderDrawColor(renderer_, r_, g_, b_, a_);
|
SDL_SetRenderDrawColor(renderer_, r_, g_, b_, a_);
|
||||||
|
|
||||||
@@ -179,6 +184,7 @@ void Fade::update()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Deja el renderizador como estaba
|
// Deja el renderizador como estaba
|
||||||
|
SDL_SetRenderDrawBlendMode(renderer_, blend_mode);
|
||||||
SDL_SetRenderTarget(renderer_, temp);
|
SDL_SetRenderTarget(renderer_, temp);
|
||||||
|
|
||||||
// Modifica el tamaño de los rectangulos
|
// Modifica el tamaño de los rectangulos
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ void Screen::start()
|
|||||||
void Screen::render()
|
void Screen::render()
|
||||||
{
|
{
|
||||||
// Actualiza el contador de FPS
|
// Actualiza el contador de FPS
|
||||||
fps_counter_++;
|
++fps_counter_;
|
||||||
|
|
||||||
// Actualiza y dibuja el efecto de flash en la pantalla
|
// Actualiza y dibuja el efecto de flash en la pantalla
|
||||||
renderFlash();
|
renderFlash();
|
||||||
@@ -108,12 +108,14 @@ void Screen::render()
|
|||||||
SDL_SetRenderTarget(renderer_, nullptr);
|
SDL_SetRenderTarget(renderer_, nullptr);
|
||||||
|
|
||||||
// Borra el contenido previo
|
// Borra el contenido previo
|
||||||
SDL_SetRenderDrawColor(renderer_, border_color_.r, border_color_.g, border_color_.b, 0xFF);
|
// SDL_SetRenderDrawColor(renderer_, border_color_.r, border_color_.g, border_color_.b, 0xFF);
|
||||||
SDL_RenderClear(renderer_);
|
// SDL_RenderClear(renderer_);
|
||||||
|
|
||||||
// Copia la textura de juego en el renderizador en la posición adecuada
|
// Copia la textura de juego en el renderizador en la posición adecuada
|
||||||
if (shake_effect_.enabled)
|
if (shake_effect_.enabled)
|
||||||
|
{
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
||||||
|
}
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
||||||
|
|
||||||
// Muestra por pantalla el renderizador
|
// Muestra por pantalla el renderizador
|
||||||
@@ -121,13 +123,19 @@ void Screen::render()
|
|||||||
#else
|
#else
|
||||||
if (options.video.shaders)
|
if (options.video.shaders)
|
||||||
{
|
{
|
||||||
|
// Dibuja sobre la textura de shaders
|
||||||
SDL_SetRenderTarget(renderer_, shader_canvas_);
|
SDL_SetRenderTarget(renderer_, shader_canvas_);
|
||||||
SDL_SetRenderDrawColor(renderer_, 0x00, 0x00, 0x00, 0xFF);
|
|
||||||
SDL_RenderClear(renderer_);
|
// Copia la textura de juego en el renderizador en la posición adecuada
|
||||||
if (shake_effect_.enabled)
|
if (shake_effect_.enabled)
|
||||||
|
{
|
||||||
|
// Esta copia es para evitar que se vea negro por los laterales
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
||||||
|
}
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
||||||
SDL_SetRenderTarget(renderer_, nullptr);
|
SDL_SetRenderTarget(renderer_, nullptr);
|
||||||
|
|
||||||
|
// Muestra por pantalla el renderizador
|
||||||
shader::render();
|
shader::render();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -141,7 +149,10 @@ void Screen::render()
|
|||||||
|
|
||||||
// Copia la textura de juego en el renderizador en la posición adecuada
|
// Copia la textura de juego en el renderizador en la posición adecuada
|
||||||
if (shake_effect_.enabled)
|
if (shake_effect_.enabled)
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr); // Esta copia es para evitar que se vea negro por los laterales
|
{
|
||||||
|
// Esta copia es para evitar que se vea negro por los laterales
|
||||||
|
SDL_RenderCopy(renderer_, game_canvas_, nullptr, nullptr);
|
||||||
|
}
|
||||||
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
SDL_RenderCopy(renderer_, game_canvas_, &src_rect_, &dst_rect_);
|
||||||
|
|
||||||
// Muestra por pantalla el renderizador
|
// Muestra por pantalla el renderizador
|
||||||
@@ -394,6 +405,9 @@ void Screen::renderInfo()
|
|||||||
// Contador de service_pressed_counter
|
// Contador de service_pressed_counter
|
||||||
if (const int counter = globalInputs::service_pressed_counter; counter > 0)
|
if (const int counter = globalInputs::service_pressed_counter; counter > 0)
|
||||||
dbg_print(0, 8, std::to_string(counter).c_str(), 255, 0, 255);
|
dbg_print(0, 8, std::to_string(counter).c_str(), 255, 0, 255);
|
||||||
|
|
||||||
|
const std::string atten = attenuate_effect_ ? "ATTEN YES" : "ATTEN NO";
|
||||||
|
dbg_print(0, 16, atten.c_str(), 255, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user