[clutter/wip/cogl2: 1/5] offscreen-effect: Make get_target virtual



commit 7ce59cc56d1b3a6b0050775f874e34024ffe31c6
Author: Neil Roberts <neil linux intel com>
Date:   Fri Apr 27 17:45:45 2012 +0100

    offscreen-effect: Make get_target virtual
    
    The clutter_offscreen_effect_get_target function now goes through a
    virtual method. This will be useful so that ClutterShaderEffect can
    directly return a target with the right program attached instead of
    having to modify the material returned by ClutterOffscreenEffect.

 clutter/clutter-offscreen-effect.c |    9 ++++++++-
 clutter/clutter-offscreen-effect.h |   11 ++++++-----
 2 files changed, 14 insertions(+), 6 deletions(-)
---
diff --git a/clutter/clutter-offscreen-effect.c b/clutter/clutter-offscreen-effect.c
index d58227f..ee98e48 100644
--- a/clutter/clutter-offscreen-effect.c
+++ b/clutter/clutter-offscreen-effect.c
@@ -366,6 +366,12 @@ clutter_offscreen_effect_real_paint_target (ClutterOffscreenEffect *effect)
                                       1.0, 1.0);
 }
 
+static CoglMaterial *
+clutter_offscreen_effect_real_get_target (ClutterOffscreenEffect *effect)
+{
+  return (CoglMaterial *) effect->priv->target;
+}
+
 static void
 clutter_offscreen_effect_paint_texture (ClutterOffscreenEffect *effect)
 {
@@ -466,6 +472,7 @@ clutter_offscreen_effect_class_init (ClutterOffscreenEffectClass *klass)
 
   klass->create_texture = clutter_offscreen_effect_real_create_texture;
   klass->paint_target = clutter_offscreen_effect_real_paint_target;
+  klass->get_target = clutter_offscreen_effect_real_get_target;
 
   meta_class->set_actor = clutter_offscreen_effect_set_actor;
 
@@ -535,7 +542,7 @@ clutter_offscreen_effect_get_target (ClutterOffscreenEffect *effect)
   g_return_val_if_fail (CLUTTER_IS_OFFSCREEN_EFFECT (effect),
                         NULL);
 
-  return (CoglMaterial *)effect->priv->target;
+  return CLUTTER_OFFSCREEN_EFFECT_GET_CLASS (effect)->get_target (effect);
 }
 
 /**
diff --git a/clutter/clutter-offscreen-effect.h b/clutter/clutter-offscreen-effect.h
index a5987d7..6cdc6f3 100644
--- a/clutter/clutter-offscreen-effect.h
+++ b/clutter/clutter-offscreen-effect.h
@@ -77,10 +77,12 @@ struct _ClutterOffscreenEffectClass
   ClutterEffectClass parent_class;
 
   /*< public >*/
-  CoglHandle (* create_texture) (ClutterOffscreenEffect *effect,
-                                 gfloat                  width,
-                                 gfloat                  height);
-  void       (* paint_target)   (ClutterOffscreenEffect *effect);
+  CoglHandle    (* create_texture) (ClutterOffscreenEffect *effect,
+                                    gfloat                  width,
+                                    gfloat                  height);
+  void          (* paint_target)   (ClutterOffscreenEffect *effect);
+
+  CoglMaterial *(* get_target)     (ClutterOffscreenEffect *effect);
 
   /*< private >*/
   void (* _clutter_offscreen1) (void);
@@ -89,7 +91,6 @@ struct _ClutterOffscreenEffectClass
   void (* _clutter_offscreen4) (void);
   void (* _clutter_offscreen5) (void);
   void (* _clutter_offscreen6) (void);
-  void (* _clutter_offscreen7) (void);
 };
 
 GType clutter_offscreen_effect_get_type (void) G_GNUC_CONST;



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