gegl r2197 - in trunk: . gegl/buffer
- From: ok svn gnome org
- To: svn-commits-list gnome org
- Subject: gegl r2197 - in trunk: . gegl/buffer
- Date: Fri, 18 Apr 2008 23:40:21 +0100 (BST)
Author: ok
Date: Fri Apr 18 22:40:21 2008
New Revision: 2197
URL: http://svn.gnome.org/viewvc/gegl?rev=2197&view=rev
Log:
* gegl/buffer/gegl-tile-backend-gio-tiles.c:
* gegl/buffer/gegl-tile-backend-gio-tiles.h: renamed to:
* gegl/buffer/gegl-tile-backend-tiledir.c:
* gegl/buffer/gegl-tile-backend-tiledir.h:
* gegl/buffer/gegl-tile-backend-swapfile.c:
* gegl/buffer/gegl-tile-backend-swapfile.h: renamed to:
* gegl/buffer/gegl-tile-backend-file.c:
* gegl/buffer/gegl-tile-backend-file.h:
* gegl/buffer/Makefile.am:
* gegl/buffer/gegl-buffer-access.c:
* gegl/buffer/gegl-buffer-save.c:
* gegl/buffer/gegl-buffer-save.h:
* gegl/buffer/gegl-buffer.c:
* gegl/buffer/gegl-tile-backend.h:
* gegl/buffer/gegl-tile-handler-cache.c:
* gegl/buffer/gegl-tile-source.h:
* gegl/buffer/gegl-tile-storage.c: updated accordingly.
Added:
trunk/gegl/buffer/gegl-tile-backend-file.c
- copied, changed from r2193, /trunk/gegl/buffer/gegl-tile-backend-swapfile.c
trunk/gegl/buffer/gegl-tile-backend-file.h
- copied, changed from r2193, /trunk/gegl/buffer/gegl-tile-backend-swapfile.h
trunk/gegl/buffer/gegl-tile-backend-tiledir.c
- copied, changed from r2192, /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.c
trunk/gegl/buffer/gegl-tile-backend-tiledir.h
- copied, changed from r2192, /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.h
Removed:
trunk/gegl/buffer/gegl-tile-backend-gio-tiles.c
trunk/gegl/buffer/gegl-tile-backend-gio-tiles.h
trunk/gegl/buffer/gegl-tile-backend-swapfile.c
trunk/gegl/buffer/gegl-tile-backend-swapfile.h
Modified:
trunk/ChangeLog
trunk/gegl/buffer/Makefile.am
trunk/gegl/buffer/gegl-buffer-access.c
trunk/gegl/buffer/gegl-buffer-save.c
trunk/gegl/buffer/gegl-buffer-save.h
trunk/gegl/buffer/gegl-buffer.c
trunk/gegl/buffer/gegl-tile-backend.h
trunk/gegl/buffer/gegl-tile-handler-cache.c
trunk/gegl/buffer/gegl-tile-source.h
trunk/gegl/buffer/gegl-tile-storage.c
Modified: trunk/gegl/buffer/Makefile.am
==============================================================================
--- trunk/gegl/buffer/Makefile.am (original)
+++ trunk/gegl/buffer/Makefile.am Fri Apr 18 22:40:21 2008
@@ -17,12 +17,12 @@
gegl-tile-source.c \
gegl-tile-storage.c \
gegl-tile-backend.c \
- gegl-tile-backend-swapfile.c \
- gegl-tile-backend-gio-tiles.c \
+ gegl-tile-backend-file.c \
+ gegl-tile-backend-tiledir.c \
gegl-tile-backend-ram.c \
gegl-tile-handler.c \
- gegl-tile-handler-chain.c \
gegl-tile-handler-cache.c \
+ gegl-tile-handler-chain.c \
gegl-tile-handler-empty.c \
gegl-tile-handler-log.c \
gegl-tile-handler-zoom.c \
Modified: trunk/gegl/buffer/gegl-buffer-access.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-access.c (original)
+++ trunk/gegl/buffer/gegl-buffer-access.c Fri Apr 18 22:40:21 2008
@@ -567,16 +567,13 @@
if (format == NULL)
format = buffer->format;
- /* FIXME: go through chain of sources up to but not including
- * tile_storage and disassociated Sampler */
-
if (rect && rect->width == 1 && rect->height == 1) /* fast path */
{
pset (buffer, rect->x, rect->y, format, src);
}
/* FIXME: if rect->width == TILE_WIDTH and rect->height == TILE_HEIGHT and
* aligned with tile grid, do a fast path, also provide helper functions
- * for getting the upper left coords of tiles.
+ * for figuring out how to align accesses with the tile grid.
*/
else if (rect == NULL)
{
@@ -1095,9 +1092,9 @@
g_warning ("unimplemented interpolation type %i", interpolation);
}
buffer->sampler = g_object_new (interpolation_type,
- "buffer", buffer,
- "format", format,
- NULL);
+ "buffer", buffer,
+ "format", format,
+ NULL);
gegl_sampler_prepare (buffer->sampler);
}
gegl_sampler_get (buffer->sampler, x, y, dest);
Modified: trunk/gegl/buffer/gegl-buffer-save.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-save.c (original)
+++ trunk/gegl/buffer/gegl-buffer-save.c Fri Apr 18 22:40:21 2008
@@ -155,7 +155,10 @@
if (sizeof (GeglBufferFileHeader) != 256)
{
- g_warning ("GeglBufferFileHeader is %i bytes, should be 256 padding is off by: %i bytes %i ints", (int) sizeof (GeglBufferFileHeader), (int) sizeof (GeglBufferFileHeader) - 256, (int) (sizeof (GeglBufferFileHeader) - 256) / 4);
+ g_warning ("GeglBufferFileHeader is %i bytes, should be 256 padding is off by: %i bytes %i ints",
+ (int) sizeof (GeglBufferFileHeader),
+ (int) sizeof (GeglBufferFileHeader) - 256,
+ (int)(sizeof (GeglBufferFileHeader) - 256) / 4);
return;
}
@@ -251,8 +254,7 @@
info->tiles = g_list_reverse (info->tiles);
}
- /* FIXME: sort the index into Z-order */
-
+ /* sort the list of tiles into zorder */
info->tiles = g_list_sort (info->tiles, z_order_compare);
/* set the offset in the file each tile will be stored on */
Modified: trunk/gegl/buffer/gegl-buffer-save.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-save.h (original)
+++ trunk/gegl/buffer/gegl-buffer-save.h Fri Apr 18 22:40:21 2008
@@ -39,8 +39,10 @@
gint x;
gint y;
gint z;
- guint offset;
- guint flags;
+ guint offset; /* offset into file */
+ guint flags; /* flags? not used? */
+
+ guint padding1[8];
} GeglTileEntry;
void gegl_buffer_save (GeglBuffer *buffer,
Modified: trunk/gegl/buffer/gegl-buffer.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer.c (original)
+++ trunk/gegl/buffer/gegl-buffer.c Fri Apr 18 22:40:21 2008
@@ -309,6 +309,8 @@
tmp = ((GeglTileHandler *) (tmp))->source;
} while (!GEGL_IS_TILE_STORAGE (tmp));
+ g_assert (tmp);
+
return (GeglTileStorage *) tmp;
}
Copied: trunk/gegl/buffer/gegl-tile-backend-file.c (from r2193, /trunk/gegl/buffer/gegl-tile-backend-swapfile.c)
==============================================================================
--- /trunk/gegl/buffer/gegl-tile-backend-swapfile.c (original)
+++ trunk/gegl/buffer/gegl-tile-backend-file.c Fri Apr 18 22:40:21 2008
@@ -25,18 +25,16 @@
#include <glib-object.h>
#include "gegl-tile-backend.h"
-#include "gegl-tile-backend-swapfile.h"
+#include "gegl-tile-backend-file.h"
-struct _GeglTileBackendSwapfile
+struct _GeglTileBackendFile
{
GeglTileBackend parent_instance;
- gchar *path;
- GFile *file;
- GOutputStream *o;
- GInputStream *i;
-
- /*gint fd;*/
+ gchar *path;
+ GFile *file;
+ GOutputStream *o;
+ GInputStream *i;
GHashTable *entries;
GSList *free_list;
guint next_unused;
@@ -64,9 +62,9 @@
};
static void inline
-disk_entry_read (GeglTileBackendSwapfile *disk,
- DiskEntry *entry,
- guchar *dest)
+disk_entry_read (GeglTileBackendFile *disk,
+ DiskEntry *entry,
+ guchar *dest)
{
gint nleft;
gboolean success;
@@ -101,9 +99,9 @@
}
static void inline
-disk_entry_write (GeglTileBackendSwapfile *disk,
- DiskEntry *entry,
- guchar *source)
+disk_entry_write (GeglTileBackendFile *disk,
+ DiskEntry *entry,
+ guchar *source)
{
gint nleft;
gboolean success;
@@ -137,7 +135,7 @@
}
static inline DiskEntry *
-disk_entry_new (GeglTileBackendSwapfile *disk)
+disk_entry_new (GeglTileBackendFile *disk)
{
DiskEntry *self = g_slice_new (DiskEntry);
@@ -165,8 +163,8 @@
}
static inline void
-disk_entry_destroy (DiskEntry *entry,
- GeglTileBackendSwapfile *disk)
+disk_entry_destroy (DiskEntry *entry,
+ GeglTileBackendFile *disk)
{
disk->free_list = g_slist_prepend (disk->free_list,
GINT_TO_POINTER (entry->offset));
@@ -177,7 +175,7 @@
}
-G_DEFINE_TYPE (GeglTileBackendSwapfile, gegl_tile_backend_swapfile, GEGL_TYPE_TILE_BACKEND)
+G_DEFINE_TYPE (GeglTileBackendFile, gegl_tile_backend_file, GEGL_TYPE_TILE_BACKEND)
static GObjectClass * parent_class = NULL;
@@ -187,7 +185,7 @@
static gint peak_disk_size = 0;
void
-gegl_tile_backend_swapfile_stats (void)
+gegl_tile_backend_file_stats (void)
{
g_warning ("leaked: %i chunks (%f mb) peak: %i (%i bytes %fmb))",
allocs, disk_size / 1024 / 1024.0,
@@ -213,10 +211,10 @@
}
static inline DiskEntry *
-lookup_entry (GeglTileBackendSwapfile *self,
- gint x,
- gint y,
- gint z)
+lookup_entry (GeglTileBackendFile *self,
+ gint x,
+ gint y,
+ gint z)
{
DiskEntry key = { x, y, z, 0 };
@@ -236,13 +234,13 @@
{
GeglTileBackend *backend;
- GeglTileBackendSwapfile *tile_backend_swapfile;
+ GeglTileBackendFile *tile_backend_file;
DiskEntry *entry;
GeglTile *tile = NULL;
backend = GEGL_TILE_BACKEND (self);
- tile_backend_swapfile = GEGL_TILE_BACKEND_SWAPFILE (backend);
- entry = lookup_entry (tile_backend_swapfile, x, y, z);
+ tile_backend_file = GEGL_TILE_BACKEND_FILE (backend);
+ entry = lookup_entry (tile_backend_file, x, y, z);
if (!entry)
return NULL;
@@ -251,7 +249,7 @@
tile->stored_rev = 1;
tile->rev = 1;
- disk_entry_read (tile_backend_swapfile, entry, tile->data);
+ disk_entry_read (tile_backend_file, entry, tile->data);
return tile;
}
@@ -263,27 +261,27 @@
gint z)
{
GeglTileBackend *backend;
- GeglTileBackendSwapfile *tile_backend_swapfile;
+ GeglTileBackendFile *tile_backend_file;
DiskEntry *entry;
backend = GEGL_TILE_BACKEND (self);
- tile_backend_swapfile = GEGL_TILE_BACKEND_SWAPFILE (backend);
- entry = lookup_entry (tile_backend_swapfile, x, y, z);
+ tile_backend_file = GEGL_TILE_BACKEND_FILE (backend);
+ entry = lookup_entry (tile_backend_file, x, y, z);
if (entry == NULL)
{
- entry = disk_entry_new (tile_backend_swapfile);
+ entry = disk_entry_new (tile_backend_file);
entry->x = x;
entry->y = y;
entry->z = z;
- g_hash_table_insert (tile_backend_swapfile->entries, entry, entry);
+ g_hash_table_insert (tile_backend_file->entries, entry, entry);
}
g_assert (tile->flags == 0); /* when this one is triggered, dirty pyramid data
has been tried written to persistent tile_storage.
*/
- disk_entry_write (tile_backend_swapfile, entry, tile->data);
+ disk_entry_write (tile_backend_file, entry, tile->data);
tile->stored_rev = tile->rev;
return NULL;
}
@@ -296,16 +294,16 @@
gint z)
{
GeglTileBackend *backend;
- GeglTileBackendSwapfile *tile_backend_swapfile;
+ GeglTileBackendFile *tile_backend_file;
DiskEntry *entry;
backend = GEGL_TILE_BACKEND (self);
- tile_backend_swapfile = GEGL_TILE_BACKEND_SWAPFILE (backend);
- entry = lookup_entry (tile_backend_swapfile, x, y, z);
+ tile_backend_file = GEGL_TILE_BACKEND_FILE (backend);
+ entry = lookup_entry (tile_backend_file, x, y, z);
if (entry != NULL)
{
- disk_entry_destroy (entry, tile_backend_swapfile);
+ disk_entry_destroy (entry, tile_backend_file);
}
return NULL;
@@ -319,12 +317,12 @@
gint z)
{
GeglTileBackend *backend;
- GeglTileBackendSwapfile *tile_backend_swapfile;
+ GeglTileBackendFile *tile_backend_file;
DiskEntry *entry;
backend = GEGL_TILE_BACKEND (self);
- tile_backend_swapfile = GEGL_TILE_BACKEND_SWAPFILE (backend);
- entry = lookup_entry (tile_backend_swapfile, x, y, z);
+ tile_backend_file = GEGL_TILE_BACKEND_FILE (backend);
+ entry = lookup_entry (tile_backend_file, x, y, z);
return entry!=NULL?((gpointer)0x1):NULL;
}
@@ -372,7 +370,7 @@
const GValue *value,
GParamSpec *pspec)
{
- GeglTileBackendSwapfile *self = GEGL_TILE_BACKEND_SWAPFILE (object);
+ GeglTileBackendFile *self = GEGL_TILE_BACKEND_FILE (object);
switch (property_id)
{
@@ -394,7 +392,7 @@
GValue *value,
GParamSpec *pspec)
{
- GeglTileBackendSwapfile *self = GEGL_TILE_BACKEND_SWAPFILE (object);
+ GeglTileBackendFile *self = GEGL_TILE_BACKEND_FILE (object);
switch (property_id)
{
@@ -411,13 +409,18 @@
static void
finalize (GObject *object)
{
- GeglTileBackendSwapfile *self = (GeglTileBackendSwapfile *) object;
+ GeglTileBackendFile *self = (GeglTileBackendFile *) object;
g_hash_table_unref (self->entries);
g_object_unref (self->i);
g_object_unref (self->o);
/* check if we should nuke the buffer or not */
+
+ if(0)g_print ("finalizing buffer %s", self->path);
+ if (self->path)
+ g_free (self->path);
+
g_file_delete (self->file, NULL, NULL);
g_object_unref (self->file);
@@ -468,34 +471,25 @@
}
static GObject *
-gegl_tile_backend_swapfile_constructor (GType type,
- guint n_params,
- GObjectConstructParam *params)
+gegl_tile_backend_file_constructor (GType type,
+ guint n_params,
+ GObjectConstructParam *params)
{
GObject *object;
- GeglTileBackendSwapfile *disk;
+ GeglTileBackendFile *disk;
object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- disk = GEGL_TILE_BACKEND_SWAPFILE (object);
+ disk = GEGL_TILE_BACKEND_FILE (object);
disk->file = g_file_new_for_commandline_arg (disk->path);
disk->o = G_OUTPUT_STREAM (g_file_replace (disk->file, NULL, FALSE, G_FILE_CREATE_NONE, NULL, NULL));
g_output_stream_flush (disk->o, NULL, NULL);
-
disk->i = G_INPUT_STREAM (g_file_read (disk->file, NULL, NULL));
- /*disk->fd = g_open (disk->path,
- O_CREAT | O_RDWR | O_BINARY, S_IRUSR | S_IWUSR | O_DIRECT);*/
-
if (!disk->file)
{
- /*gchar *name = g_filename_display_name (disk->path);
-
- g_message ("Unable to open swap file '%s': %s\n"
- "GEGL is unable to initialize virtual memory",
- name, g_strerror (errno));
-
- g_free (name);*/
+ g_warning ("Unable to open swap file '%s'\n",disk->path);
+ return NULL;
}
g_assert (disk->file);
g_assert (disk->i);
@@ -507,7 +501,7 @@
}
static void
-gegl_tile_backend_swapfile_class_init (GeglTileBackendSwapfileClass *klass)
+gegl_tile_backend_file_class_init (GeglTileBackendFileClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GeglTileSourceClass *gegl_tile_source_class = GEGL_TILE_SOURCE_CLASS (klass);
@@ -516,7 +510,7 @@
gobject_class->get_property = get_property;
gobject_class->set_property = set_property;
- gobject_class->constructor = gegl_tile_backend_swapfile_constructor;
+ gobject_class->constructor = gegl_tile_backend_file_constructor;
gobject_class->finalize = finalize;
gegl_tile_source_class->command = command;
@@ -532,7 +526,7 @@
}
static void
-gegl_tile_backend_swapfile_init (GeglTileBackendSwapfile *self)
+gegl_tile_backend_file_init (GeglTileBackendFile *self)
{
self->path = NULL;
self->file = NULL;
Copied: trunk/gegl/buffer/gegl-tile-backend-file.h (from r2193, /trunk/gegl/buffer/gegl-tile-backend-swapfile.h)
==============================================================================
--- /trunk/gegl/buffer/gegl-tile-backend-swapfile.h (original)
+++ trunk/gegl/buffer/gegl-tile-backend-file.h Fri Apr 18 22:40:21 2008
@@ -16,33 +16,33 @@
* Copyright 2006 Ãyvind KolÃs <pippin gimp org>
*/
-#ifndef __GEGL_TILE_BACKEND_SWAPFILE_H__
-#define __GEGL_TILE_BACKEND_SWAPFILE_H__
+#ifndef __GEGL_TILE_BACKEND_FILE_H__
+#define __GEGL_TILE_BACKEND_FILE_H__
#include "gegl-tile-backend.h"
G_BEGIN_DECLS
-#define GEGL_TYPE_TILE_BACKEND_SWAPFILE (gegl_tile_backend_swapfile_get_type ())
-#define GEGL_TILE_BACKEND_SWAPFILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_TILE_BACKEND_SWAPFILE, GeglTileBackendSwapfile))
-#define GEGL_TILE_BACKEND_SWAPFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGL_TYPE_TILE_BACKEND_SWAPFILE, GeglTileBackendSwapfileClass))
-#define GEGL_IS_TILE_BACKEND_SWAPFILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_TILE_BACKEND_SWAPFILE))
-#define GEGL_IS_TILE_BACKEND_SWAPFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGL_TYPE_TILE_BACKEND_SWAPFILE))
-#define GEGL_TILE_BACKEND_SWAPFILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEGL_TYPE_TILE_BACKEND_SWAPFILE, GeglTileBackendSwapfileClass))
+#define GEGL_TYPE_TILE_BACKEND_FILE (gegl_tile_backend_file_get_type ())
+#define GEGL_TILE_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_TILE_BACKEND_FILE, GeglTileBackendFile))
+#define GEGL_TILE_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGL_TYPE_TILE_BACKEND_FILE, GeglTileBackendFileClass))
+#define GEGL_IS_TILE_BACKEND_FILE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_TILE_BACKEND_FILE))
+#define GEGL_IS_TILE_BACKEND_FILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGL_TYPE_TILE_BACKEND_FILE))
+#define GEGL_TILE_BACKEND_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEGL_TYPE_TILE_BACKEND_FILE, GeglTileBackendFileClass))
-typedef struct _GeglTileBackendSwapfile GeglTileBackendSwapfile;
-typedef struct _GeglTileBackendSwapfileClass GeglTileBackendSwapfileClass;
+typedef struct _GeglTileBackendFile GeglTileBackendFile;
+typedef struct _GeglTileBackendFileClass GeglTileBackendFileClass;
-struct _GeglTileBackendSwapfileClass
+struct _GeglTileBackendFileClass
{
GeglTileBackendClass parent_class;
};
-GType gegl_tile_backend_swapfile_get_type (void) G_GNUC_CONST;
+GType gegl_tile_backend_file_get_type (void) G_GNUC_CONST;
-void gegl_tile_backend_swapfile_stats (void);
+void gegl_tile_backend_file_stats (void);
G_END_DECLS
Copied: trunk/gegl/buffer/gegl-tile-backend-tiledir.c (from r2192, /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.c)
==============================================================================
--- /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.c (original)
+++ trunk/gegl/buffer/gegl-tile-backend-tiledir.c Fri Apr 18 22:40:21 2008
@@ -22,44 +22,16 @@
#include <string.h>
#include <errno.h>
-#define _GNU_SOURCE /* for O_DIRECT */
-
-#include <fcntl.h>
+#include "gegl-tile-backend.h"
+#include "gegl-tile-backend-tiledir.h"
-#ifndef O_DIRECT
-#define O_DIRECT 0
-#endif
-
-/* Microsoft Windows does distinguish between binary and text files.
- * We deal with binary files here and have to tell it to open them
- * as binary files. Unortunately the O_BINARY flag used for this is
- * specific to this platform, so we define it for others.
- */
-#ifndef O_BINARY
-#define O_BINARY 0
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-#include <sys/types.h>
-
-#include <glib-object.h>
-#include <glib/gstdio.h>
-
-#ifdef G_OS_WIN32
-#include <io.h>
-#ifndef S_IRUSR
-#define S_IRUSR _S_IREAD
-#endif
-#ifndef S_IWUSR
-#define S_IWUSR _S_IWRITE
-#endif
-#define ftruncate(f,d) g_win32_ftruncate(f,d)
-#endif
+struct _GeglTileBackendTileDir
+{
+ GeglTileBackend parent_instance;
-#include "gegl-tile-backend.h"
-#include "gegl-tile-backend-gio-tiles.h"
+ gchar *path; /* the base path of the buffer */
+ GFile *buffer_dir;
+};
/* These entries are kept in RAM for now, they should be written as an
* index to the swap file, at a position specified by a header block,
@@ -84,7 +56,7 @@
gint y,
gint z);
-static GFile *make_tile_file (GeglTileBackendGioTiles *gio,
+static GFile *make_tile_file (GeglTileBackendTileDir *gio,
gint x,
gint y,
gint z)
@@ -95,7 +67,7 @@
}
static void inline
-gio_entry_read (GeglTileBackendGioTiles *gio,
+gio_entry_read (GeglTileBackendTileDir *gio,
GioEntry *entry,
guchar *dest)
{
@@ -117,7 +89,7 @@
}
static void inline
-gio_entry_write (GeglTileBackendGioTiles *gio,
+gio_entry_write (GeglTileBackendTileDir *gio,
GioEntry *entry,
guchar *source)
{
@@ -140,7 +112,7 @@
}
-G_DEFINE_TYPE (GeglTileBackendGioTiles, gegl_tile_backend_gio_tiles, GEGL_TYPE_TILE_BACKEND)
+G_DEFINE_TYPE (GeglTileBackendTileDir, gegl_tile_backend_tile_dir, GEGL_TYPE_TILE_BACKEND)
static GObjectClass * parent_class = NULL;
static gint allocs = 0;
@@ -149,7 +121,7 @@
static gint peak_gio_size = 0;
void
-gegl_tile_backend_gio_tiles_stats (void)
+gegl_tile_backend_tile_dir_stats (void)
{
g_warning ("leaked: %i chunks (%f mb) peak: %i (%i bytes %fmb))",
allocs, gio_size / 1024 / 1024.0,
@@ -167,7 +139,7 @@
gint y,
gint z)
{
- GeglTileBackendGioTiles *tile_backend_gio_tiles = GEGL_TILE_BACKEND_GIO_TILES (tile_store);
+ GeglTileBackendTileDir *tile_backend_tile_dir = GEGL_TILE_BACKEND_TILE_DIR (tile_store);
GeglTileBackend *backend = GEGL_TILE_BACKEND (tile_store);
GeglTile *tile = NULL;
@@ -179,7 +151,7 @@
tile->stored_rev = 1;
tile->rev = 1;
- gio_entry_read (tile_backend_gio_tiles, &entry, tile->data);
+ gio_entry_read (tile_backend_tile_dir, &entry, tile->data);
return tile;
}
return NULL;
@@ -193,14 +165,14 @@
gint z)
{
GeglTileBackend *backend = GEGL_TILE_BACKEND (store);
- GeglTileBackendGioTiles *tile_backend_gio_tiles = GEGL_TILE_BACKEND_GIO_TILES (backend);
+ GeglTileBackendTileDir *tile_backend_tile_dir = GEGL_TILE_BACKEND_TILE_DIR (backend);
GioEntry entry = {x,y,z};
g_assert (tile->flags == 0); /* when this one is triggered, dirty pyramid data
has been tried written to persistent tile_storage.
*/
- gio_entry_write (tile_backend_gio_tiles, &entry, tile->data);
+ gio_entry_write (tile_backend_tile_dir, &entry, tile->data);
tile->stored_rev = tile->rev;
return NULL;
}
@@ -213,7 +185,7 @@
gint z)
{
GeglTileBackend *backend = GEGL_TILE_BACKEND (store);
- GeglTileBackendGioTiles *gio = GEGL_TILE_BACKEND_GIO_TILES (backend);
+ GeglTileBackendTileDir *gio = GEGL_TILE_BACKEND_TILE_DIR (backend);
GFile *file;
file = make_tile_file (gio, x, y, z);
@@ -230,7 +202,7 @@
gint z)
{
GeglTileBackend *backend = GEGL_TILE_BACKEND (store);
- GeglTileBackendGioTiles *gio = GEGL_TILE_BACKEND_GIO_TILES (backend);
+ GeglTileBackendTileDir *gio = GEGL_TILE_BACKEND_TILE_DIR (backend);
GFileInfo *file_info;
GFile *file;
gboolean found = FALSE;
@@ -294,7 +266,7 @@
const GValue *value,
GParamSpec *pspec)
{
- GeglTileBackendGioTiles *self = GEGL_TILE_BACKEND_GIO_TILES (object);
+ GeglTileBackendTileDir *self = GEGL_TILE_BACKEND_TILE_DIR (object);
switch (property_id)
{
@@ -316,7 +288,7 @@
GValue *value,
GParamSpec *pspec)
{
- GeglTileBackendGioTiles *self = GEGL_TILE_BACKEND_GIO_TILES (object);
+ GeglTileBackendTileDir *self = GEGL_TILE_BACKEND_TILE_DIR (object);
switch (property_id)
{
@@ -333,7 +305,7 @@
static void
finalize (GObject *object)
{
- GeglTileBackendGioTiles *self = (GeglTileBackendGioTiles *) object;
+ GeglTileBackendTileDir *self = (GeglTileBackendTileDir *) object;
GFileEnumerator *enumerator;
GFileInfo *info;
@@ -366,15 +338,15 @@
}
static GObject *
-gegl_tile_backend_gio_tiles_constructor (GType type,
+gegl_tile_backend_tile_dir_constructor (GType type,
guint n_params,
GObjectConstructParam *params)
{
GObject *object;
- GeglTileBackendGioTiles *gio;
+ GeglTileBackendTileDir *gio;
object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
- gio = GEGL_TILE_BACKEND_GIO_TILES (object);
+ gio = GEGL_TILE_BACKEND_TILE_DIR (object);
gio->buffer_dir = g_file_new_for_commandline_arg (gio->path);
g_file_make_directory (gio->buffer_dir, NULL, NULL);
@@ -382,7 +354,7 @@
}
static void
-gegl_tile_backend_gio_tiles_class_init (GeglTileBackendGioTilesClass *klass)
+gegl_tile_backend_tile_dir_class_init (GeglTileBackendTileDirClass *klass)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
GeglTileSourceClass *gegl_tile_source_class = GEGL_TILE_SOURCE_CLASS (klass);
@@ -391,7 +363,7 @@
gobject_class->get_property = get_property;
gobject_class->set_property = set_property;
- gobject_class->constructor = gegl_tile_backend_gio_tiles_constructor;
+ gobject_class->constructor = gegl_tile_backend_tile_dir_constructor;
gobject_class->finalize = finalize;
gegl_tile_source_class->command = command;
@@ -407,7 +379,7 @@
}
static void
-gegl_tile_backend_gio_tiles_init (GeglTileBackendGioTiles *self)
+gegl_tile_backend_tile_dir_init (GeglTileBackendTileDir *self)
{
self->path = NULL;
}
Copied: trunk/gegl/buffer/gegl-tile-backend-tiledir.h (from r2192, /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.h)
==============================================================================
--- /trunk/gegl/buffer/gegl-tile-backend-gio-tiles.h (original)
+++ trunk/gegl/buffer/gegl-tile-backend-tiledir.h Fri Apr 18 22:40:21 2008
@@ -16,40 +16,33 @@
* Copyright 2006 Ãyvind KolÃs <pippin gimp org>
*/
-#ifndef __GEGL_TILE_BACKEND_GIO_TILES_H__
-#define __GEGL_TILE_BACKEND_GIO_TILES_H__
+#ifndef __GEGL_TILE_BACKEND_TILE_DIR_H__
+#define __GEGL_TILE_BACKEND_TILE_DIR_H__
#include "gegl-tile-backend.h"
#include <gio/gio.h>
G_BEGIN_DECLS
-#define GEGL_TYPE_TILE_BACKEND_GIO_TILES (gegl_tile_backend_gio_tiles_get_type ())
-#define GEGL_TILE_BACKEND_GIO_TILES(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_TILE_BACKEND_GIO_TILES, GeglTileBackendGioTiles))
-#define GEGL_TILE_BACKEND_GIO_TILES_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGL_TYPE_TILE_BACKEND_GIO_TILES, GeglTileBackendGioTilesClass))
-#define GEGL_IS_TILE_BACKEND_GIO_TILES(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_TILE_BACKEND_GIO_TILES))
-#define GEGL_IS_TILE_BACKEND_GIO_TILES_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGL_TYPE_TILE_BACKEND_GIO_TILES))
-#define GEGL_TILE_BACKEND_GIO_TILES_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEGL_TYPE_TILE_BACKEND_GIO_TILES, GeglTileBackendGioTilesClass))
+#define GEGL_TYPE_TILE_BACKEND_TILE_DIR (gegl_tile_backend_tile_dir_get_type ())
+#define GEGL_TILE_BACKEND_TILE_DIR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GEGL_TYPE_TILE_BACKEND_TILE_DIR, GeglTileBackendTileDir))
+#define GEGL_TILE_BACKEND_TILE_DIR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GEGL_TYPE_TILE_BACKEND_TILE_DIR, GeglTileBackendTileDirClass))
+#define GEGL_IS_TILE_BACKEND_TILE_DIR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GEGL_TYPE_TILE_BACKEND_TILE_DIR))
+#define GEGL_IS_TILE_BACKEND_TILE_DIR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GEGL_TYPE_TILE_BACKEND_TILE_DIR))
+#define GEGL_TILE_BACKEND_TILE_DIR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GEGL_TYPE_TILE_BACKEND_TILE_DIR, GeglTileBackendTileDirClass))
-typedef struct _GeglTileBackendGioTiles GeglTileBackendGioTiles;
-typedef struct _GeglTileBackendGioTilesClass GeglTileBackendGioTilesClass;
+typedef struct _GeglTileBackendTileDir GeglTileBackendTileDir;
+typedef struct _GeglTileBackendTileDirClass GeglTileBackendTileDirClass;
-struct _GeglTileBackendGioTiles
-{
- GeglTileBackend parent_instance;
-
- gchar *path; /* the base path of the buffer */
- GFile *buffer_dir;
-};
-struct _GeglTileBackendGioTilesClass
+struct _GeglTileBackendTileDirClass
{
GeglTileBackendClass parent_class;
};
-GType gegl_tile_backend_gio_tiles_get_type (void) G_GNUC_CONST;
+GType gegl_tile_backend_tile_dir_get_type (void) G_GNUC_CONST;
-void gegl_tile_backend_gio_tiles_stats (void);
+void gegl_tile_backend_tile_dir_stats (void);
G_END_DECLS
Modified: trunk/gegl/buffer/gegl-tile-backend.h
==============================================================================
--- trunk/gegl/buffer/gegl-tile-backend.h (original)
+++ trunk/gegl/buffer/gegl-tile-backend.h Fri Apr 18 22:40:21 2008
@@ -44,6 +44,9 @@
struct _GeglTileBackendClass
{
GeglTileSourceClass parent_class;
+
+ void (* create) (GeglTileBackend *backend);
+ void (* destroy) (GeglTileBackend *backend);
};
GType gegl_tile_backend_get_type (void) G_GNUC_CONST;
Modified: trunk/gegl/buffer/gegl-tile-handler-cache.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-handler-cache.c (original)
+++ trunk/gegl/buffer/gegl-tile-handler-cache.c Fri Apr 18 22:40:21 2008
@@ -120,8 +120,8 @@
{
GeglTileHandlerCache *cache;
CacheItem *item;
- cache = (GeglTileHandlerCache *) object;
GSList *iter;
+ cache = (GeglTileHandlerCache *) object;
if (0)
g_printerr ("Disposing tile-cache of size %i, hits: %i misses: %i hit percentage:%f)\n",
@@ -143,7 +143,6 @@
}
g_slist_free (cache->free_list);
cache->free_list = NULL;
-#endif
G_OBJECT_CLASS (gegl_tile_handler_cache_parent_class)->dispose (object);
}
Modified: trunk/gegl/buffer/gegl-tile-source.h
==============================================================================
--- trunk/gegl/buffer/gegl-tile-source.h (original)
+++ trunk/gegl/buffer/gegl-tile-source.h Fri Apr 18 22:40:21 2008
@@ -47,7 +47,7 @@
GEGL_TILE_VOID_TR,
GEGL_TILE_VOID_BL,
GEGL_TILE_VOID_BR,
- GEGL_TILE_UNDO_START_GROUP,
+ GEGL_TILE_FLUSH,
GEGL_TILE_LAST_COMMAND
};
Modified: trunk/gegl/buffer/gegl-tile-storage.c
==============================================================================
--- trunk/gegl/buffer/gegl-tile-storage.c (original)
+++ trunk/gegl/buffer/gegl-tile-storage.c Fri Apr 18 22:40:21 2008
@@ -22,9 +22,9 @@
#include "gegl-tile-storage.h"
#include "gegl-tile.h"
-#include "gegl-tile-backend-swapfile.h"
+#include "gegl-tile-backend-file.h"
#include "gegl-tile-backend-ram.h"
-#include "gegl-tile-backend-gio-tiles.h"
+#include "gegl-tile-backend-tiledir.h"
#include "gegl-tile-handler-empty.h"
#include "gegl-tile-handler-zoom.h"
#include "gegl-tile-handler-cache.h"
@@ -171,13 +171,13 @@
guint n_params,
GObjectConstructParam *params)
{
- GObject *object;
- GeglTileStorage *tile_storage;
- GeglTileHandlerChain *tile_handler_chain;
- GeglTileHandler *handler;
- GeglTileHandler *empty = NULL;
- GeglTileHandler *zoom = NULL;
- GeglTileHandler *cache = NULL;
+ GObject *object;
+ GeglTileStorage *tile_storage;
+ GeglTileHandlerChain *tile_handler_chain;
+ GeglTileHandler *handler;
+ GeglTileHandler *empty = NULL;
+ GeglTileHandler *zoom = NULL;
+ GeglTileHandler *cache = NULL;
object = G_OBJECT_CLASS (parent_class)->constructor (type, n_params, params);
@@ -189,7 +189,7 @@
{
#if 1
g_object_set (tile_storage,
- "source", g_object_new (GEGL_TYPE_TILE_BACKEND_SWAPFILE,
+ "source", g_object_new (GEGL_TYPE_TILE_BACKEND_FILE,
"tile-width", tile_storage->tile_width,
"tile-height", tile_storage->tile_height,
"format", tile_storage->format,
@@ -198,7 +198,7 @@
NULL);
#else
g_object_set (tile_storage,
- "source", g_object_new (GEGL_TYPE_TILE_BACKEND_GIO_TILES,
+ "source", g_object_new (GEGL_TYPE_TILE_BACKEND_TILEDIR,
"tile-width", tile_storage->tile_width,
"tile-height", tile_storage->tile_height,
"format", tile_storage->format,
@@ -227,22 +227,26 @@
if (g_getenv("GEGL_LOG_TILE_BACKEND")||
g_getenv("GEGL_TILE_LOG"))
- gegl_tile_handler_chain_add (tile_handler_chain, g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
+ gegl_tile_handler_chain_add (tile_handler_chain,
+ g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
- cache = gegl_tile_handler_chain_add (tile_handler_chain, g_object_new (GEGL_TYPE_TILE_HANDLER_CACHE,
- NULL));
+ cache = gegl_tile_handler_chain_add (tile_handler_chain,
+ g_object_new (GEGL_TYPE_TILE_HANDLER_CACHE, NULL));
- zoom = gegl_tile_handler_chain_add (tile_handler_chain, g_object_new (GEGL_TYPE_TILE_HANDLER_ZOOM,
+ zoom = gegl_tile_handler_chain_add (tile_handler_chain,
+ g_object_new (GEGL_TYPE_TILE_HANDLER_ZOOM,
"backend", handler->source,
"tile_storage", tile_storage,
NULL));
- empty = gegl_tile_handler_chain_add (tile_handler_chain, g_object_new (GEGL_TYPE_TILE_HANDLER_EMPTY,
- "backend", handler->source,
- NULL));
+ empty = gegl_tile_handler_chain_add (tile_handler_chain,
+ g_object_new (GEGL_TYPE_TILE_HANDLER_EMPTY,
+ "backend", handler->source,
+ NULL));
if (g_getenv("GEGL_LOG_TILE_CACHE"))
- gegl_tile_handler_chain_add (tile_handler_chain, g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
+ gegl_tile_handler_chain_add (tile_handler_chain,
+ g_object_new (GEGL_TYPE_TILE_HANDLER_LOG, NULL));
g_object_set_data (G_OBJECT (empty), "cache", cache);
g_object_set_data (G_OBJECT (zoom), "cache", cache);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]