[gegl] buffer: damage tile pyramid when voiding uncached base tiles



commit 9fa211b638b4489738bf2c8982c75658b8e84a47
Author: Ell <ell_se yahoo com>
Date:   Tue Nov 27 14:53:51 2018 -0500

    buffer: damage tile pyramid when voiding uncached base tiles
    
    In GeglTileHandlerCache, when trying to void a base tile that's not
    present in the cache, go ahead and void the cooresponding area of
    the tile pyramid anyway, since it might include cached mipmapped
    tiles.  In particular, this may happen if the corresponding area of
    the buffer is empty, but mipmapped tiles have been generated for it
    (which doesn't cause corresponding empty base tiles to be created),
    or if the corresponding base tiles have been swapped out.

 gegl/buffer/gegl-tile-handler-cache.c | 5 +++++
 1 file changed, 5 insertions(+)
---
diff --git a/gegl/buffer/gegl-tile-handler-cache.c b/gegl/buffer/gegl-tile-handler-cache.c
index ce1395405..37e030c87 100644
--- a/gegl/buffer/gegl-tile-handler-cache.c
+++ b/gegl/buffer/gegl-tile-handler-cache.c
@@ -800,6 +800,11 @@ gegl_tile_handler_cache_void (GeglTileHandlerCache *cache,
       if (gegl_tile_damage (item->tile, damage))
         gegl_tile_handler_cache_remove_item (cache, item);
     }
+  else if (z == 0 && damage)
+    {
+      gegl_tile_handler_damage_tile (GEGL_TILE_HANDLER (cache),
+                                     x, y, z, damage);
+    }
 }
 
 void


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]