gegl r2744 - in trunk: . gegl/buffer



Author: ok
Date: Fri Nov 14 00:34:43 2008
New Revision: 2744
URL: http://svn.gnome.org/viewvc/gegl?rev=2744&view=rev

Log:
* gegl/buffer/gegl-tile-storage.h: store the max z value seen instead
of whether we've seen != 0.
* gegl/buffer/gegl-tile.c: (_gegl_tile_void_pyramid): bail out at the
appropriate z-level for the underlying storage.
* gegl/buffer/gegl-tile-handler-zoom.c: (get_tile): update z value
seen.


Modified:
   trunk/ChangeLog
   trunk/gegl/buffer/gegl-tile-handler-zoom.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	Fri Nov 14 00:34:43 2008
@@ -224,7 +224,9 @@
     {
       return NULL;
     }
-  zoom->tile_storage->seen_zoom = TRUE;
+
+  if (z>zoom->tile_storage->seen_zoom)
+    zoom->tile_storage->seen_zoom = z;
 
   g_assert (zoom->backend);
   g_object_get (zoom->backend, "tile-width", &tile_width,

Modified: trunk/gegl/buffer/gegl-tile-storage.h
==============================================================================
--- trunk/gegl/buffer/gegl-tile-storage.h	(original)
+++ trunk/gegl/buffer/gegl-tile-storage.h	Fri Nov 14 00:34:43 2008
@@ -40,8 +40,7 @@
   gint         width;
   gint         height;
   gchar       *path;
-  gboolean     seen_zoom; /* if the storage has seen any tiles that are
-                             not at level 0 */
+  gint         seen_zoom; /* the maximum zoom level we've seen tiles for */
 
   guint        idle_swapper;
 };

Modified: trunk/gegl/buffer/gegl-tile.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile.c	(original)
+++ trunk/gegl/buffer/gegl-tile.c	Fri Nov 14 00:34:43 2008
@@ -284,7 +284,7 @@
                          gint            y,
                          gint            z)
 {
-  if (z>10)
+  if (z > ((GeglTileStorage*)source)->seen_zoom)
     return;
   gegl_tile_source_void (source, x, y, z);
   _gegl_tile_void_pyramid (source, x/2, y/2, z+1);



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