From 4f0ef04788f9328ab2b5aae807270da7132dcd69 Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Sun, 15 Nov 2015 22:57:48 +0100 Subject: [PATCH] ector: starting decoralating surface and parent by adding a property to access the surface independently. NOTE: It would be nice to be able to protect independently the setter from the getter in eolian. --- src/lib/ector/ector_private.h | 1 + src/lib/ector/ector_renderer_base.c | 14 ++++++++++++++ src/lib/ector/ector_renderer_generic_base.eo | 11 +++++++++++ 3 files changed, 26 insertions(+) diff --git a/src/lib/ector/ector_private.h b/src/lib/ector/ector_private.h index 099542b..fc91510 100644 --- a/src/lib/ector/ector_private.h +++ b/src/lib/ector/ector_private.h @@ -82,6 +82,7 @@ typedef struct _Ector_Renderer_Generic_Shape_Data Ector_Renderer_Generic_Shape_D struct _Ector_Renderer_Generic_Base_Data { + Ector_Generic_Surface *surface; Eina_Matrix3 *m; struct { diff --git a/src/lib/ector/ector_renderer_base.c b/src/lib/ector/ector_renderer_base.c index 4c84eba..b2b08c5 100644 --- a/src/lib/ector/ector_renderer_base.c +++ b/src/lib/ector/ector_renderer_base.c @@ -11,9 +11,23 @@ static void _ector_renderer_generic_base_eo_base_destructor(Eo *obj, Ector_Renderer_Generic_Base_Data *pd) { if (pd->m) free(pd->m); + eo_unref(pd->surface); + eo_do_super(obj, ECTOR_RENDERER_GENERIC_BASE_CLASS, eo_destructor()); } +static Ector_Generic_Surface * +_ector_renderer_generic_base_surface_get(Eo *obj EINA_UNUSED, Ector_Renderer_Generic_Base_Data *pd) +{ + return pd->surface; +} + +static void +_ector_renderer_generic_base_surface_set(Eo *obj EINA_UNUSED, Ector_Renderer_Generic_Base_Data *pd, Ector_Generic_Surface *s) +{ + pd->surface = eo_xref(s, obj); +} + static void _ector_renderer_generic_base_transformation_set(Eo *obj EINA_UNUSED, Ector_Renderer_Generic_Base_Data *pd, diff --git a/src/lib/ector/ector_renderer_generic_base.eo b/src/lib/ector/ector_renderer_generic_base.eo index 80043d9..8c6ce6e 100644 --- a/src/lib/ector/ector_renderer_generic_base.eo +++ b/src/lib/ector/ector_renderer_generic_base.eo @@ -5,6 +5,17 @@ abstract Ector.Renderer.Generic.Base (Eo.Base) eo_prefix: ector_renderer; legacy_prefix: null; methods { + @property surface { + set { + [[Do not use.]] + } + get { + [[Get the surface associated to this renderer. Can not be set.]] + } + values { + s: Ector.Generic.Surface *; + } + } @property transformation { set { } -- 2.7.4