diff --git a/src/DrawingProgram/DrawingProgramCache.cpp b/src/DrawingProgram/DrawingProgramCache.cpp index 3a84882..e58c036 100644 --- a/src/DrawingProgram/DrawingProgramCache.cpp +++ b/src/DrawingProgram/DrawingProgramCache.cpp @@ -498,8 +498,10 @@ void DrawingProgramCache::draw_cache_image_to_canvas(SkCanvas* canvas, const Dra } } -void DrawingProgramCache::delete_window_cache_surface() { +void DrawingProgramCache::delete_all_draw_cache() { windowCache.surface = nullptr; + windowCache.attachedDrawingProgramCache = nullptr; + nodeCacheMap.clear(); } DrawingProgramCache::~DrawingProgramCache() { diff --git a/src/DrawingProgram/DrawingProgramCache.hpp b/src/DrawingProgram/DrawingProgramCache.hpp index 38f942b..fd348a7 100644 --- a/src/DrawingProgram/DrawingProgramCache.hpp +++ b/src/DrawingProgram/DrawingProgramCache.hpp @@ -38,7 +38,7 @@ class DrawingProgramCache { void update_and_draw_cached_canvas(SkCanvas* canvas, const DrawData& drawData); void draw_components_to_canvas(SkCanvas* canvas, const DrawData& drawData, const std::optional>& drawBounds); void invalidate_cache_at_aabb(const SCollision::AABB& aabb); - static void delete_window_cache_surface(); + static void delete_all_draw_cache(); CanvasComponentContainer::ObjInfo* get_front_object_colliding_with_in_editing_layer(const SCollision::ColliderCollection& cC); ~DrawingProgramCache(); diff --git a/src/main.cpp b/src/main.cpp index ca1cc88..385d7f9 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -794,7 +794,7 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { } void SDL_AppQuit(void *appstate, SDL_AppResult result) { - DrawingProgramCache::delete_window_cache_surface(); + DrawingProgramCache::delete_all_draw_cache(); MainStruct& mS = *((MainStruct*)appstate); try {