forked from jaildesigner-jailgames/jaildoctors_dilemma
Transició a surface: game.cpp fet
This commit is contained in:
@@ -61,6 +61,10 @@ Screen::Screen(SDL_Window *window, SDL_Renderer *renderer)
|
||||
border_texture_ = createTexture(renderer, options.game.width + options.video.border.width * 2, options.game.height + options.video.border.height * 2);
|
||||
setBorderColor(border_color_);
|
||||
|
||||
// Crea la surface donde se vuelcan los datos
|
||||
surface_ = std::make_shared<Surface>(nullptr, options.game.width, options.game.height);
|
||||
surface_->loadPalette(Asset::get()->get("zx-spectrum-8x.gif"));
|
||||
|
||||
// Establece el modo de video
|
||||
setVideoMode(options.video.mode);
|
||||
|
||||
@@ -91,7 +95,11 @@ void Screen::clean(Uint8 index)
|
||||
}
|
||||
|
||||
// Prepara para empezar a dibujar en la textura de juego
|
||||
void Screen::start() { SDL_SetRenderTarget(renderer_, game_texture_); }
|
||||
void Screen::start()
|
||||
{
|
||||
SDL_SetRenderTarget(renderer_, game_texture_);
|
||||
setRenderSurfaceData(nullptr);
|
||||
}
|
||||
|
||||
// Prepara para empezar a dibujar en la textura del borde
|
||||
void Screen::startDrawOnBorder() { SDL_SetRenderTarget(renderer_, border_texture_); }
|
||||
@@ -348,7 +356,7 @@ void Screen::resetShaders()
|
||||
}
|
||||
|
||||
// Establece el renderizador para las surfaces
|
||||
void Screen::setRenderSurface(std::shared_ptr<Surface> surface)
|
||||
void Screen::setRenderSurfaceData(std::shared_ptr<Surface> surface)
|
||||
{
|
||||
(surface) ? surface_->redirectSurfaceDataTo(surface) : surface_->restoreOriginalSurfaceData();
|
||||
}
|
||||
Reference in New Issue
Block a user