diff --git a/include/Helpers/SCollision.hpp b/include/Helpers/SCollision.hpp index 85abbbb..d162e1e 100644 --- a/include/Helpers/SCollision.hpp +++ b/include/Helpers/SCollision.hpp @@ -174,6 +174,11 @@ namespace SCollision { } }; + template std::ostream& operator<<(std::ostream& os, const AABB& a) { + return os << "min: [" << a.min.x() << " " << a.min.y() << "]\n" + << "max: [" << a.max.x() << " " << a.max.y() << "]\n"; + } + template const AABB& get_bounds(const Circle& c) { return c.bounds; } template const AABB& get_bounds(const Triangle& c) { return c.bounds; } template const AABB& get_bounds(const AABB& a) { return a; } diff --git a/src/DrawingProgram/DrawingProgramCache.cpp b/src/DrawingProgram/DrawingProgramCache.cpp index feb12f6..b8c0bf6 100644 --- a/src/DrawingProgram/DrawingProgramCache.cpp +++ b/src/DrawingProgram/DrawingProgramCache.cpp @@ -356,7 +356,9 @@ void DrawingProgramCache::refresh_draw_cache(const std::shared_ptrsave(); cacheCanvas->clipIRect(clipRect); cacheCanvas->clear(SkColor4f{0, 0, 0, 0}); - draw_components_to_canvas(cacheCanvas, cacheDrawData, &drawCache.lastDrawnComponentPlacement, clipRectBoundAABBWorld); + uint64_t lastDrawnComponentPlacementNew = 0; + draw_components_to_canvas(cacheCanvas, cacheDrawData, &lastDrawnComponentPlacementNew, clipRectBoundAABBWorld); + drawCache.lastDrawnComponentPlacement = std::max(lastDrawnComponentPlacementNew, drawCache.lastDrawnComponentPlacement); cacheCanvas->restore(); drawCache.invalidBounds = std::nullopt; }