forked from jaildesigner-jailgames/jaildoctors_dilemma
He posat punteros dobles i tampoc va res
This commit is contained in:
@@ -60,16 +60,16 @@ struct SurfaceData
|
||||
class Surface
|
||||
{
|
||||
private:
|
||||
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<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
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
Surface(std::shared_ptr<SurfaceData> surface_data_dest = nullptr, int w = 0, int h = 0);
|
||||
Surface(std::shared_ptr<SurfaceData> surface_data_dest, const std::string &file_path);
|
||||
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);
|
||||
|
||||
// Destructor
|
||||
~Surface() = default;
|
||||
@@ -120,14 +120,15 @@ public:
|
||||
|
||||
// Setters
|
||||
void setTransparentColor(int color) { transparent_color_ = color; }
|
||||
void setSurfaceDataDest(std::shared_ptr<SurfaceData> surface_data_dest) { surface_data_dest_ = surface_data_dest; }
|
||||
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); }
|
||||
void setPalette(const std::array<Uint32, 256> &palette) { palette_ = palette; }
|
||||
void setSurface(std::shared_ptr<SurfaceData> surface) { surface_data_ = surface; }
|
||||
|
||||
// Método para redirigir surface_data_ al surface_data_ de otro objeto
|
||||
// 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 surface_data_ al valor original
|
||||
// Método para restaurar
|
||||
void restoreOriginalSurfaceData();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user