gegl r2262 - in trunk: . gegl/buffer



Author: ok
Date: Tue Apr 29 23:00:06 2008
New Revision: 2262
URL: http://svn.gnome.org/viewvc/gegl?rev=2262&view=rev

Log:
* gegl/buffer/gegl-buffer.h: added new public API to GeglBuffer
gegl_buffer_load, gegl_buffer_write and gegl_buffer_open.
* gegl/buffer/gegl-buffer-load.c:
* gegl/buffer/gegl-buffer-load.h:
* gegl/buffer/gegl-buffer-private.h:
* gegl/buffer/gegl-buffer-share.c:


Modified:
   trunk/ChangeLog
   trunk/gegl/buffer/gegl-buffer-load.c
   trunk/gegl/buffer/gegl-buffer-load.h
   trunk/gegl/buffer/gegl-buffer-private.h
   trunk/gegl/buffer/gegl-buffer-share.c
   trunk/gegl/buffer/gegl-buffer.h

Modified: trunk/gegl/buffer/gegl-buffer-load.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-load.c	(original)
+++ trunk/gegl/buffer/gegl-buffer-load.c	Tue Apr 29 23:00:06 2008
@@ -27,7 +27,6 @@
 #include "gegl-types.h"
 #include "gegl-buffer-types.h"
 #include "gegl-buffer.h"
-#include "gegl-buffer-load.h"
 #include "gegl-tile-storage.h"
 #include "gegl-tile-backend.h"
 #include "gegl-tile-handler.h"
@@ -45,7 +44,6 @@
 
 #include <glib/gprintf.h>
 
-#if 0
 typedef struct
 {
   GeglBufferHeader header;
@@ -95,8 +93,6 @@
   g_slice_free (LoadInfo, info);
 }
 
-#endif
-
 GeglBufferItem *
 gegl_buffer_read_header (GInputStream *i,
                          goffset      *offset)
@@ -240,9 +236,11 @@
   sanity();
 
   return g_object_new (GEGL_TYPE_BUFFER, "path", path, NULL);
+}
 
-#if 0  /* old code that feeds tile by tile into the buffer */
-
+GeglBuffer *
+gegl_buffer_load (const gchar *path)
+{
   GeglBuffer *ret;
 
   LoadInfo *info = g_slice_new0 (LoadInfo);
@@ -335,5 +333,4 @@
 
   load_info_destroy (info);
   return ret;
-#endif
 }

Modified: trunk/gegl/buffer/gegl-buffer-load.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-load.h	(original)
+++ trunk/gegl/buffer/gegl-buffer-load.h	Tue Apr 29 23:00:06 2008
@@ -23,7 +23,5 @@
 
 #include "gegl-buffer.h"
 
-void gegl_buffer_load (GeglBuffer    *buffer,
-                       const gchar   *path);
 
 #endif

Modified: trunk/gegl/buffer/gegl-buffer-private.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-private.h	(original)
+++ trunk/gegl/buffer/gegl-buffer-private.h	Tue Apr 29 23:00:06 2008
@@ -96,4 +96,5 @@
 gboolean             gegl_buffer_try_lock    (GeglBuffer *buffer);
 gboolean             gegl_buffer_unlock      (GeglBuffer *buffer);
 
+
 #endif

Modified: trunk/gegl/buffer/gegl-buffer-share.c
==============================================================================
--- trunk/gegl/buffer/gegl-buffer-share.c	(original)
+++ trunk/gegl/buffer/gegl-buffer-share.c	Tue Apr 29 23:00:06 2008
@@ -43,43 +43,6 @@
   return id;
 }
 
-
-void
-gegl_buffer_make_uri (gchar       *buf_128,
-                      gchar       *host,
-                      gint         port,
-                      gint         process,
-                      gint         handle)
-{
-  gchar *p=buf_128;
-
-  g_sprintf (p, "buffer://%s", host?host:"");
-  p+=strlen (p);
-  if (port)
-    {
-      g_sprintf (p, ":%i", port);
-      p+=strlen (p);
-    }
-  g_sprintf (p, "/");
-  p+=strlen (p);
-  if (process)
-    {
-      g_sprintf (p, "%i", process);
-      p+=strlen (p);
-    }
-  g_sprintf (p, "/");
-  p+=strlen (p);
-  if (handle || 1)
-    {
-      g_sprintf (p, "%i", handle);
-      p+=strlen (p);
-    }
-  else
-    {
-      g_warning ("no handle provided when building uri:\n%s\n", buf_128);
-    }
-}
-
 #if 0
 GeglBuffer*
 gegl_buffer_open (const gchar *uri)

Modified: trunk/gegl/buffer/gegl-buffer.h
==============================================================================
--- trunk/gegl/buffer/gegl-buffer.h	(original)
+++ trunk/gegl/buffer/gegl-buffer.h	Tue Apr 29 23:00:06 2008
@@ -71,15 +71,42 @@
 
 /**
  * gegl_buffer_open:
- * @uri: a uri referring to a local, other process or other host buffer to
+ * @path: the path to a gegl buffer on disk.
  * be opened.
  *
- * buffer://host:port/process/handle
- * buffer:////42      handle 42 from same GEGL instance.
+ * Open an existing on-disk GeglBuffer, this buffer is opened in a monitored
+ * state so multiple instances of gegl can share the same buffer. Sets on
+ * one buffer are reflected in the other.
  *
  * Returns: a GeglBuffer object.
  */
-GeglBuffer*     gegl_buffer_open              (const gchar         *uri);
+GeglBuffer*     gegl_buffer_open              (const gchar         *path);
+
+/**
+ * gegl_buffer_save:
+ * @buffer: a #GeglBuffer.
+ * @path: the path where the gegl buffer will be saved, any writable GIO uri is valid.
+ * @roi: the region of interest to write, this is the tiles that will be collected and
+ * written to disk.
+ *
+ * Write a GeglBuffer to a file.
+ */
+void            gegl_buffer_save              (GeglBuffer          *buffer,
+                                               const gchar         *path,
+                                               const GeglRectangle *roi);
+
+/**
+ * gegl_buffer_load:
+ * @path: the path to a gegl buffer on disk.
+ * be opened.
+ *
+ * Loads an existing GeglBuffer from disk, if it has previously been saved with
+ * gegl_buffer_save it should be possible to open through any GIO transport, buffers
+ * that have been used as swap needs random access to be opened.
+ *
+ * Returns: a #GeglBuffer object.
+ */
+GeglBuffer     *gegl_buffer_load              (const gchar         *path);
 
 /**
  * gegl_buffer_flush:



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