[gegl] Add an introspectable version of gegl_buffer_new



commit 321c6b94e73bf54357f347b98b4a79566334e9f1
Author: Daniel Sabo <DanielSabo gmail com>
Date:   Thu Mar 28 12:12:17 2013 -0700

    Add an introspectable version of gegl_buffer_new
    
    Because PyGObject can't see Babl* or GeglRectangle it is impossible
    to construct a GeglBuffer from python. This adds a replacement for
    gegl_buffer_new that only uses primitive types.

 gegl/buffer/gegl-buffer.c |   23 +++++++++++++++++++++++
 gegl/buffer/gegl-buffer.h |   19 ++++++++++++++++++-
 2 files changed, 41 insertions(+), 1 deletions(-)
---
diff --git a/gegl/buffer/gegl-buffer.c b/gegl/buffer/gegl-buffer.c
index b55aa2d..207f627 100644
--- a/gegl/buffer/gegl-buffer.c
+++ b/gegl/buffer/gegl-buffer.c
@@ -1050,6 +1050,29 @@ gegl_buffer_new_ram (const GeglRectangle *extent,
 }
 
 GeglBuffer *
+gegl_buffer_introspectable_new (const char *format_name,
+                                gint x,
+                                gint y,
+                                gint width,
+                                gint height)
+{
+  const Babl *format = NULL;
+
+  if (format_name)
+    format = babl_format (format_name);
+  if (!format)
+    format = babl_format ("RGBA float");
+
+  return g_object_new (GEGL_TYPE_BUFFER,
+                       "x", x,
+                       "y", y,
+                       "width", width,
+                       "height", height,
+                       "format", format,
+                       NULL);
+}
+
+GeglBuffer *
 gegl_buffer_new (const GeglRectangle *extent,
                  const Babl          *format)
 {
diff --git a/gegl/buffer/gegl-buffer.h b/gegl/buffer/gegl-buffer.h
index cdb0e45..0d597de 100644
--- a/gegl/buffer/gegl-buffer.h
+++ b/gegl/buffer/gegl-buffer.h
@@ -61,7 +61,24 @@ GType           gegl_buffer_get_type          (void) G_GNUC_CONST;
 GeglBuffer *    gegl_buffer_new               (const GeglRectangle *extent,
                                                const Babl          *format);
 
-
+/**
+ * gegl_buffer_introspectable_new:
+ * @format_name: The Babl format name for this buffer, e.g. "RGBA float"
+ * @x: x origin of the buffer's extent
+ * @y: y origin of the buffer's extent
+ * @width: width of the buffer's extent
+ * @height: height of the buffer's extent
+ *
+ * Create a new GeglBuffer with the given format and dimensions.
+ *
+ * Rename to: gegl_buffer_new
+ */
+GeglBuffer *
+gegl_buffer_introspectable_new (const char *format_name,
+                                gint x,
+                                gint y,
+                                gint width,
+                                gint height);
 
 /**
  * gegl_buffer_new_for_backend:


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