Imposible canviar la rendererSurface

This commit is contained in:
2025-03-05 18:51:36 +01:00
parent d41b0cb31c
commit 70a50f5117
16 changed files with 199 additions and 257 deletions

View File

@@ -114,25 +114,24 @@ void Ending2::render()
// Dibuja una trama arriba y abajo
Uint8 color = stringToColor("black");
auto surface = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), 1, 1);
auto surface_data = *(Screen::get()->getRenderSurfaceData());
auto surface = Screen::get()->getRendererSurface();
for (int i = 0; i < 256; i += 2)
{
surface->putPixel(surface_data, i + 0, 0, color);
surface->putPixel(surface_data, i + 1, 1, color);
surface->putPixel(surface_data, i + 0, 2, color);
surface->putPixel(surface_data, i + 1, 3, color);
surface->putPixel(i + 0, 0, color);
surface->putPixel(i + 1, 1, color);
surface->putPixel(i + 0, 2, color);
surface->putPixel(i + 1, 3, color);
surface->putPixel(surface_data, i, 4, color);
surface->putPixel(surface_data, i, 6, color);
surface->putPixel(i, 4, color);
surface->putPixel(i, 6, color);
surface->putPixel(surface_data, i + 0, 191, color);
surface->putPixel(surface_data, i + 1, 190, color);
surface->putPixel(surface_data, i + 0, 189, color);
surface->putPixel(surface_data, i + 1, 188, color);
surface->putPixel(i + 0, 191, color);
surface->putPixel(i + 1, 190, color);
surface->putPixel(i + 0, 189, color);
surface->putPixel(i + 1, 188, color);
surface->putPixel(surface_data, i, 187, color);
surface->putPixel(surface_data, i, 185, color);
surface->putPixel(i, 187, color);
surface->putPixel(i, 185, color);
}
// Vuelca el contenido del renderizador en pantalla
@@ -424,15 +423,15 @@ void Ending2::createSpriteTexts()
const int Y = sprites_.at(i)->getPosY() + sprites_.at(i)->getHeight() + DIST_SPRITE_TEXT_;
// Crea la surface
auto surface = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), W, H);
Screen::get()->setRenderSurfaceData(surface);
auto surface = std::make_shared<Surface>(Screen::get()->getRendererSurface(), W, H);
Screen::get()->setRendererSurface(surface);
text->write(0, 0, txt);
// Crea el sprite
SDL_Rect pos = {X, Y, W, H};
sprite_texts_.emplace_back(std::make_shared<SMovingSprite>(surface, pos));
sprite_texts_.back()->setVelY(SPRITE_DESP_SPEED_);
Screen::get()->setRenderSurfaceData(nullptr);
Screen::get()->setRendererSurface(nullptr);
}
}
@@ -456,15 +455,15 @@ void Ending2::createTexts()
const int y = options.game.height + (text->getCharacterSize() * (i * 2));
// Crea la surface
auto surface = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), w, h);
Screen::get()->setRenderSurfaceData(surface);
auto surface = std::make_shared<Surface>(Screen::get()->getRendererSurface(), w, h);
Screen::get()->setRendererSurface(surface);
text->write(0, 0, list[i]);
// Crea el sprite
SDL_Rect pos = {x + dx, y, w, h};
texts_.emplace_back(std::make_shared<SMovingSprite>(surface, pos));
texts_.back()->setVelY(SPRITE_DESP_SPEED_);
Screen::get()->setRenderSurfaceData(nullptr);
Screen::get()->setRendererSurface(nullptr);
}
// Crea los últimos textos
@@ -485,15 +484,15 @@ void Ending2::createTexts()
const int y = START + (text->getCharacterSize() * (i * 2));
// Crea la surface
auto surface = std::make_shared<Surface>(Screen::get()->getRenderSurfaceData(), w, h);
Screen::get()->setRenderSurfaceData(surface);
auto surface = std::make_shared<Surface>(Screen::get()->getRendererSurface(), w, h);
Screen::get()->setRendererSurface(surface);
text->write(0, 0, list[i]);
// Crea el sprite
SDL_Rect pos = {x + dx, y, w, h};
texts_.emplace_back(std::make_shared<SMovingSprite>(surface, pos));
texts_.back()->setVelY(SPRITE_DESP_SPEED_);
Screen::get()->setRenderSurfaceData(nullptr);
Screen::get()->setRendererSurface(nullptr);
}
}