gegl r2697 - in trunk: . gegl/buffer
- From: ok svn gnome org
- To: svn-commits-list gnome org
- Subject: gegl r2697 - in trunk: . gegl/buffer
- Date: Tue, 4 Nov 2008 01:06:58 +0000 (UTC)
Author: ok
Date: Tue Nov 4 01:06:57 2008
New Revision: 2697
URL: http://svn.gnome.org/viewvc/gegl?rev=2697&view=rev
Log:
Only send pyramid void messages for tile storages where the zoom
handler has seen a tile with z!=0.
* gegl/buffer/gegl-tile-handler-zoom.c: (get_tile):
* gegl/buffer/gegl-tile-storage.c: (gegl_tile_storage_constructor):
* gegl/buffer/gegl-tile-storage.h:
* gegl/buffer/gegl-tile.c: (gegl_tile_void_pyramid):
Modified:
trunk/ChangeLog
trunk/gegl/buffer/gegl-tile-handler-zoom.c
trunk/gegl/buffer/gegl-tile-storage.c
trunk/gegl/buffer/gegl-tile-storage.h
trunk/gegl/buffer/gegl-tile.c
Modified: trunk/gegl/buffer/gegl-tile-handler-zoom.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-handler-zoom.c (original)
+++ trunk/gegl/buffer/gegl-tile-handler-zoom.c Tue Nov 4 01:06:57 2008
@@ -35,6 +35,7 @@
#include <babl/babl.h>
#include "gegl-tile-backend.h"
+#include "gegl-tile-storage.h"
void gegl_tile_handler_cache_insert (GeglTileHandlerCache *cache,
GeglTile *tile,
@@ -223,6 +224,7 @@
{
return NULL;
}
+ zoom->tile_storage->seen_zoom = TRUE;
g_assert (zoom->backend);
g_object_get (zoom->backend, "tile-width", &tile_width,
Modified: trunk/gegl/buffer/gegl-tile-storage.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-storage.c (original)
+++ trunk/gegl/buffer/gegl-tile-storage.c Tue Nov 4 01:06:57 2008
@@ -274,6 +274,7 @@
tile_storage_idle,
tile_storage,
NULL);
+ tile_storage->seen_zoom = FALSE;
return object;
}
Modified: trunk/gegl/buffer/gegl-tile-storage.h
==============================================================================
--- trunk/gegl/buffer/gegl-tile-storage.h (original)
+++ trunk/gegl/buffer/gegl-tile-storage.h Tue Nov 4 01:06:57 2008
@@ -40,6 +40,8 @@
gint width;
gint height;
gchar *path;
+ gboolean seen_zoom; /* if the storage has seen any tiles that are
+ not at level 0 */
guint idle_swapper;
};
Modified: trunk/gegl/buffer/gegl-tile.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile.c (original)
+++ trunk/gegl/buffer/gegl-tile.c Tue Nov 4 01:06:57 2008
@@ -32,6 +32,7 @@
#include "gegl-buffer-private.h"
#include "gegl-tile.h"
#include "gegl-tile-source.h"
+#include "gegl-tile-storage.h"
G_DEFINE_TYPE (GeglTile, gegl_tile, G_TYPE_OBJECT)
@@ -293,6 +294,7 @@
gegl_tile_void_pyramid (GeglTile *tile)
{
if (tile->tile_storage &&
+ tile->tile_storage->seen_zoom &&
tile->z == 0) /* we only accepting voiding the base level */
{
_gegl_tile_void_pyramid (GEGL_TILE_SOURCE (tile->tile_storage),
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]