surface: hallazgo 8 — elimina setSurfaceData muerto y documenta shared_ptr
setSurfaceData() no tenía callers. El shared_ptr<SurfaceData> se queda porque render() puede aliasar el SurfaceData propio con el del renderer surface (self-blit). Migrar a unique_ptr requeriría tocar Screen y dissolve_sprite sin simplificación real. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -56,6 +56,9 @@ struct SurfaceData {
|
|||||||
|
|
||||||
class Surface {
|
class Surface {
|
||||||
private:
|
private:
|
||||||
|
// shared_ptr porque render() accede al SurfaceData propio y al del renderer
|
||||||
|
// surface (ver getRendererSurface()) de forma efímera; con self-blit ambos
|
||||||
|
// pueden alias y el refcount evita free accidental durante el recorrido.
|
||||||
std::shared_ptr<SurfaceData> surface_data_; // Datos a dibujar
|
std::shared_ptr<SurfaceData> surface_data_; // Datos a dibujar
|
||||||
Palette palette_; // Paleta para volcar la SurfaceData a una Textura
|
Palette palette_; // Paleta para volcar la SurfaceData a una Textura
|
||||||
SubPalette sub_palette_; // Paleta para reindexar colores
|
SubPalette sub_palette_; // Paleta para reindexar colores
|
||||||
@@ -127,7 +130,6 @@ class Surface {
|
|||||||
|
|
||||||
// Metodos para gestionar surface_data_
|
// Metodos para gestionar surface_data_
|
||||||
[[nodiscard]] auto getSurfaceData() const -> std::shared_ptr<SurfaceData> { return surface_data_; }
|
[[nodiscard]] auto getSurfaceData() const -> std::shared_ptr<SurfaceData> { return surface_data_; }
|
||||||
void setSurfaceData(std::shared_ptr<SurfaceData> new_data) { surface_data_ = std::move(new_data); }
|
|
||||||
|
|
||||||
// Obtien ancho y alto
|
// Obtien ancho y alto
|
||||||
[[nodiscard]] auto getWidth() const -> float { return surface_data_->width; }
|
[[nodiscard]] auto getWidth() const -> float { return surface_data_->width; }
|
||||||
|
|||||||
Reference in New Issue
Block a user