forked from jaildesigner-jailgames/jaildoctors_dilemma
Imposible canviar la rendererSurface
This commit is contained in:
@@ -60,16 +60,15 @@ struct SurfaceData
|
||||
class Surface
|
||||
{
|
||||
private:
|
||||
std::shared_ptr<std::shared_ptr<SurfaceData>> surface_data_dest_; // Puntero a la SurfaceData remota donde copiar la información
|
||||
std::shared_ptr<SurfaceData> surface_data_; // SurfaceData propia
|
||||
std::shared_ptr<SurfaceData> original_surface_data_; // SurfaceData original para restauración
|
||||
std::array<Uint32, 256> palette_; // Paleta para volcar la SurfaceData a una Textura
|
||||
int transparent_color_; // Indice de la paleta que se omite en la copia de datos
|
||||
std::shared_ptr<Surface> surface_dest_; // Surface remota donde dibujar la surface_data_
|
||||
std::shared_ptr<SurfaceData> surface_data_; // Datos a dibujar
|
||||
std::array<Uint32, 256> palette_; // Paleta para volcar la SurfaceData a una Textura
|
||||
int transparent_color_; // Indice de la paleta que se omite en la copia de datos
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Surface(std::shared_ptr<std::shared_ptr<SurfaceData>> surface_dest, int w, int h);
|
||||
Surface(std::shared_ptr<std::shared_ptr<SurfaceData>> surface_dest, const std::string &file_path);
|
||||
Surface(std::shared_ptr<Surface> surface_dest, int w, int h);
|
||||
Surface(std::shared_ptr<Surface> surface_dest, const std::string &file_path);
|
||||
|
||||
// Destructor
|
||||
~Surface() = default;
|
||||
@@ -101,34 +100,33 @@ public:
|
||||
bool fadePalette();
|
||||
|
||||
// Pone un pixel en la SurfaceData
|
||||
void putPixel(std::shared_ptr<SurfaceData> surface_data, int x, int y, Uint8 color);
|
||||
void putPixel(int x, int y, Uint8 color);
|
||||
|
||||
// Obtiene el color de un pixel de la superficie de origen
|
||||
// Obtiene el color de un pixel de la surface_data
|
||||
Uint8 getPixel(int x, int y);
|
||||
|
||||
// Dibuja un rectangulo
|
||||
void fillRect(std::shared_ptr<SurfaceData> surface_data, SDL_Rect *rect, Uint8 color);
|
||||
void fillRect(SDL_Rect *rect, Uint8 color);
|
||||
|
||||
// Dibuja una linea
|
||||
void drawLine(std::shared_ptr<SurfaceData> surface_data, int x1, int y1, int x2, int y2, Uint8 color);
|
||||
void drawLine(int x1, int y1, int x2, int y2, Uint8 color);
|
||||
|
||||
// Getters
|
||||
// Métodos para gestionar surface_dest_
|
||||
std::shared_ptr<Surface> getSurfaceDest() const { return surface_dest_; }
|
||||
void setSurfaceDest(std::shared_ptr<Surface> new_surface_dest) { surface_dest_ = new_surface_dest; }
|
||||
|
||||
// Metodos para gestionar surface_data_
|
||||
std::shared_ptr<SurfaceData> getSurfaceData() const { return surface_data_; }
|
||||
int getTransparentColor() const { return transparent_color_; }
|
||||
void setSurfaceData(std::shared_ptr<SurfaceData> new_data) { surface_data_ = new_data; }
|
||||
|
||||
// Obtien ancho y alto
|
||||
int getWidth() const { return surface_data_->width; }
|
||||
int getHeight() const { return surface_data_->height; }
|
||||
|
||||
// Setters
|
||||
|
||||
// Color transparente
|
||||
int getTransparentColor() const { return transparent_color_; }
|
||||
void setTransparentColor(int color) { transparent_color_ = color; }
|
||||
void setSurfaceDataDest(std::shared_ptr<std::shared_ptr<SurfaceData>> surface_data_dest) { surface_data_dest_ = surface_data_dest; }
|
||||
void setSurfaceDataDestRaw(std::shared_ptr<SurfaceData> surface_data_dest) { surface_data_dest_ = std::make_shared<std::shared_ptr<SurfaceData>>(surface_data_dest); }
|
||||
|
||||
// Paleta
|
||||
void setPalette(const std::array<Uint32, 256> &palette) { palette_ = palette; }
|
||||
void setSurface(std::shared_ptr<SurfaceData> surface) { surface_data_ = surface; }
|
||||
|
||||
// Permite que una Surface apunte al SurfaceData de otra Surface
|
||||
void redirectSurfaceDataTo(const std::shared_ptr<SurfaceData> &newSurfaceData);
|
||||
void redirectSurfaceDataTo(const std::shared_ptr<Surface> &otherSurface);
|
||||
|
||||
// Método para restaurar
|
||||
void restoreOriginalSurfaceData();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user