[cogl/wip/lionel/introspection: 6/6] onscreen: make closure types visible to introspection



commit 05bafdaf384133b78fda2d53214ce18bcc8ce096
Author: Lionel Landwerlin <llandwerlin gmail com>
Date:   Sun Feb 23 23:19:33 2014 +0000

    onscreen: make closure types visible to introspection

 cogl/cogl-onscreen.c |   23 +++++++++++++++++++++++
 cogl/cogl-onscreen.h |   41 ++++++++++++++++++++++++++++++++++-------
 2 files changed, 57 insertions(+), 7 deletions(-)
---
diff --git a/cogl/cogl-onscreen.c b/cogl/cogl-onscreen.c
index 20534c8..8e27f4b 100644
--- a/cogl/cogl-onscreen.c
+++ b/cogl/cogl-onscreen.c
@@ -51,6 +51,29 @@ COGL_OBJECT_DEFINE_WITH_CODE (Onscreen, onscreen,
 COGL_GTYPE_DEFINE_CLASS (Onscreen, onscreen,
                          COGL_GTYPE_IMPLEMENT_INTERFACE (framebuffer));
 
+static gpointer
+cogl_dummy_copy (gpointer data)
+{
+  return data;
+}
+
+static void
+cogl_dummy_free (gpointer data)
+{
+}
+
+COGL_GTYPE_DEFINE_BOXED (FrameClosure, frame_closure,
+                         cogl_dummy_copy,
+                         cogl_dummy_free);
+COGL_GTYPE_DEFINE_BOXED (OnscreenResizeClosure,
+                         onscreen_resize_closure,
+                         cogl_dummy_copy,
+                         cogl_dummy_free);
+COGL_GTYPE_DEFINE_BOXED (OnscreenDirtyClosure,
+                         onscreen_dirty_closure,
+                         cogl_dummy_copy,
+                         cogl_dummy_free);
+
 static void
 _cogl_onscreen_init_from_template (CoglOnscreen *onscreen,
                                    CoglOnscreenTemplate *onscreen_template)
diff --git a/cogl/cogl-onscreen.h b/cogl/cogl-onscreen.h
index 16537e0..1091bc6 100644
--- a/cogl/cogl-onscreen.h
+++ b/cogl/cogl-onscreen.h
@@ -588,11 +588,20 @@ typedef void (*CoglFrameCallback) (CoglOnscreen *onscreen,
  */
 typedef struct _CoglClosure CoglFrameClosure;
 
+#ifdef COGL_HAS_GTYPE_SUPPORT
+/**
+ * cogl_frame_closure_get_gtype:
+ *
+ * Returns: a #GType that can be used with the GLib type system.
+ */
+GType cogl_frame_closure_get_gtype (void);
+#endif
+
 /**
  * cogl_onscreen_add_frame_callback:
  * @onscreen: A #CoglOnscreen framebuffer
- * @callback: A callback function to call for frame events
- * @user_data: A private pointer to be passed to @callback
+ * @callback: (scope notified): A callback function to call for frame events
+ * @user_data: (closure): A private pointer to be passed to @callback
  * @destroy: An optional callback to destroy @user_data when the
  *           @callback is removed or @onscreen is freed.
  *
@@ -753,12 +762,21 @@ typedef void (*CoglOnscreenResizeCallback) (CoglOnscreen *onscreen,
  */
 typedef struct _CoglClosure CoglOnscreenResizeClosure;
 
+#ifdef COGL_HAS_GTYPE_SUPPORT
+/**
+ * cogl_onscreen_resize_closure_get_gtype:
+ *
+ * Returns: a #GType that can be used with the GLib type system.
+ */
+GType cogl_onscreen_resize_closure_get_gtype (void);
+#endif
+
 /**
  * cogl_onscreen_add_resize_callback:
  * @onscreen: A #CoglOnscreen framebuffer
- * @callback: A #CoglOnscreenResizeCallback to call when the @onscreen
- *            changes size.
- * @user_data: Private data to be passed to @callback.
+ * @callback: (scope notified): A #CoglOnscreenResizeCallback to call
+ *            when the @onscreen changes size.
+ * @user_data: (closure): Private data to be passed to @callback.
  * @destroy: An optional callback to destroy @user_data when the
  *           @callback is removed or @onscreen is freed.
  *
@@ -860,11 +878,20 @@ typedef void (*CoglOnscreenDirtyCallback) (CoglOnscreen *onscreen,
  */
 typedef struct _CoglClosure CoglOnscreenDirtyClosure;
 
+#ifdef COGL_HAS_GTYPE_SUPPORT
+/**
+ * cogl_onscreen_dirty_closure_get_gtype:
+ *
+ * Returns: a #GType that can be used with the GLib type system.
+ */
+GType cogl_onscreen_dirty_closure_get_gtype (void);
+#endif
+
 /**
  * cogl_onscreen_add_dirty_callback:
  * @onscreen: A #CoglOnscreen framebuffer
- * @callback: A callback function to call for dirty events
- * @user_data: A private pointer to be passed to @callback
+ * @callback: (scope notified): A callback function to call for dirty events
+ * @user_data: (closure): A private pointer to be passed to @callback
  * @destroy: An optional callback to destroy @user_data when the
  *           @callback is removed or @onscreen is freed.
  *


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