Improved transform and clipboard paste performance, and share memory between copied brush strokes in some instances

This commit is contained in:
Yousef Khadadeh 2025-07-29 14:11:36 +03:00
parent c499f597d9
commit 1d0a7fc495
15 changed files with 115 additions and 61 deletions

View file

@ -103,13 +103,14 @@ class DrawComponent {
virtual SCollision::AABB<float> get_obj_coord_bounds() const = 0;
virtual std::shared_ptr<DrawComponent> copy() const = 0;
virtual std::shared_ptr<DrawComponent> deep_copy() const = 0;
virtual void create_collider() = 0;
virtual void draw(SkCanvas* canvas, const DrawData& drawData) = 0;
void temp_update(DrawingProgram& drawP);
void final_update(DrawingProgram& drawP, bool invalidateCache = true); // invalidateCache = false version should be thread safe
void transform_temp_update(DrawingProgram& drawP);
void transform_update(DrawingProgram& drawP, bool invalidateCache = true);
virtual void initialize_draw_data(DrawingProgram& drawP) = 0;
virtual void finalize_update(DrawingProgram& drawP, bool invalidateCache = true);
virtual void update(DrawingProgram& drawP) = 0;
virtual bool collides_within_coords(const SCollision::ColliderCollection<float>& checkAgainst) = 0;
bool collides_with_world_coords(const CoordSpaceHelper& camCoords, const SCollision::ColliderCollection<WorldScalar>& checkAgainstWorld);