diff options
-rw-r--r-- | src/lib/evas/canvas/evas_vg_container.c | 6 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_gradient_linear.c | 4 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_gradient_radial.c | 6 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_private.h | 10 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_vg_shape.c | 2 |
5 files changed, 16 insertions, 12 deletions
diff --git a/src/lib/evas/canvas/evas_vg_container.c b/src/lib/evas/canvas/evas_vg_container.c index 367a3c99ca..ccb8bfbf76 100644 --- a/src/lib/evas/canvas/evas_vg_container.c +++ b/src/lib/evas/canvas/evas_vg_container.c | |||
@@ -35,7 +35,7 @@ _efl_canvas_vg_container_render_pre(Eo *obj EINA_UNUSED, | |||
35 | Efl_Canvas_Vg_Node_Data *child_nd; | 35 | Efl_Canvas_Vg_Node_Data *child_nd; |
36 | Efl_Gfx_Change_Flag flag; | 36 | Efl_Gfx_Change_Flag flag; |
37 | 37 | ||
38 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return ; | 38 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return; |
39 | 39 | ||
40 | flag = nd->flags; | 40 | flag = nd->flags; |
41 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; | 41 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; |
@@ -44,6 +44,10 @@ _efl_canvas_vg_container_render_pre(Eo *obj EINA_UNUSED, | |||
44 | 44 | ||
45 | EINA_LIST_FOREACH(pd->children, l, child) | 45 | EINA_LIST_FOREACH(pd->children, l, child) |
46 | { | 46 | { |
47 | //Skip Gradients. they will be updated by Shape. | ||
48 | if (efl_isa(child, EFL_CANVAS_VG_GRADIENT_CLASS)) | ||
49 | continue; | ||
50 | |||
47 | if (flag & EFL_GFX_CHANGE_FLAG_MATRIX) | 51 | if (flag & EFL_GFX_CHANGE_FLAG_MATRIX) |
48 | { | 52 | { |
49 | child_nd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS); | 53 | child_nd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS); |
diff --git a/src/lib/evas/canvas/evas_vg_gradient_linear.c b/src/lib/evas/canvas/evas_vg_gradient_linear.c index c7a1263c92..26b434b00d 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_linear.c +++ b/src/lib/evas/canvas/evas_vg_gradient_linear.c | |||
@@ -87,7 +87,9 @@ _efl_canvas_vg_gradient_linear_render_pre(Eo *obj, | |||
87 | efl_gfx_gradient_spread_set(nd->renderer, gd->s); | 87 | efl_gfx_gradient_spread_set(nd->renderer, gd->s); |
88 | efl_gfx_gradient_linear_start_set(nd->renderer, pd->start.x, pd->start.y); | 88 | efl_gfx_gradient_linear_start_set(nd->renderer, pd->start.x, pd->start.y); |
89 | efl_gfx_gradient_linear_end_set(nd->renderer, pd->end.x, pd->end.y); | 89 | efl_gfx_gradient_linear_end_set(nd->renderer, pd->end.x, pd->end.y); |
90 | ector_renderer_prepare(nd->renderer); | 90 | |
91 | //Prepare renderer triggered by ector shape this gradient applied to. | ||
92 | //ector_renderer_prepare(nd->renderer); | ||
91 | } | 93 | } |
92 | 94 | ||
93 | static Eo * | 95 | static Eo * |
diff --git a/src/lib/evas/canvas/evas_vg_gradient_radial.c b/src/lib/evas/canvas/evas_vg_gradient_radial.c index 573c17a79f..a56c2200ba 100644 --- a/src/lib/evas/canvas/evas_vg_gradient_radial.c +++ b/src/lib/evas/canvas/evas_vg_gradient_radial.c | |||
@@ -81,7 +81,7 @@ _efl_canvas_vg_gradient_radial_render_pre(Eo *obj, | |||
81 | Efl_Canvas_Vg_Gradient_Radial_Data *pd = data; | 81 | Efl_Canvas_Vg_Gradient_Radial_Data *pd = data; |
82 | Efl_Canvas_Vg_Gradient_Data *gd; | 82 | Efl_Canvas_Vg_Gradient_Data *gd; |
83 | 83 | ||
84 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return ; | 84 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return; |
85 | 85 | ||
86 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; | 86 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; |
87 | 87 | ||
@@ -104,7 +104,9 @@ _efl_canvas_vg_gradient_radial_render_pre(Eo *obj, | |||
104 | efl_gfx_gradient_radial_center_set(nd->renderer, pd->center.x, pd->center.y); | 104 | efl_gfx_gradient_radial_center_set(nd->renderer, pd->center.x, pd->center.y); |
105 | efl_gfx_gradient_radial_focal_set(nd->renderer, pd->focal.x, pd->focal.y); | 105 | efl_gfx_gradient_radial_focal_set(nd->renderer, pd->focal.x, pd->focal.y); |
106 | efl_gfx_gradient_radial_radius_set(nd->renderer, pd->radius); | 106 | efl_gfx_gradient_radial_radius_set(nd->renderer, pd->radius); |
107 | ector_renderer_prepare(nd->renderer); | 107 | |
108 | //Prepare renderer triggered by ector shape this gradient applied to. | ||
109 | //ector_renderer_prepare(nd->renderer); | ||
108 | } | 110 | } |
109 | 111 | ||
110 | static Eo * | 112 | static Eo * |
diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h index cc43fb03ab..b71cf18b81 100644 --- a/src/lib/evas/canvas/evas_vg_private.h +++ b/src/lib/evas/canvas/evas_vg_private.h | |||
@@ -116,14 +116,10 @@ void efl_canvas_vg_node_root_set(Efl_VG *node, Efl_VG *vg | |||
116 | static inline Efl_Canvas_Vg_Node_Data * | 116 | static inline Efl_Canvas_Vg_Node_Data * |
117 | _evas_vg_render_pre(Efl_VG *child, Ector_Surface *s, Eina_Matrix3 *m) | 117 | _evas_vg_render_pre(Efl_VG *child, Ector_Surface *s, Eina_Matrix3 *m) |
118 | { | 118 | { |
119 | Efl_Canvas_Vg_Node_Data *child_nd = NULL; | 119 | if (!child) return NULL; |
120 | |||
121 | // FIXME: Prevent infinite loop | ||
122 | if (child) | ||
123 | child_nd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS); | ||
124 | if (child_nd) | ||
125 | child_nd->render_pre(child, m, s, child_nd->data, child_nd); | ||
126 | 120 | ||
121 | Efl_Canvas_Vg_Node_Data *child_nd = efl_data_scope_get(child, EFL_CANVAS_VG_NODE_CLASS); | ||
122 | if (child_nd) child_nd->render_pre(child, m, s, child_nd->data, child_nd); | ||
127 | return child_nd; | 123 | return child_nd; |
128 | } | 124 | } |
129 | 125 | ||
diff --git a/src/lib/evas/canvas/evas_vg_shape.c b/src/lib/evas/canvas/evas_vg_shape.c index 936bc26aa1..24cc485944 100644 --- a/src/lib/evas/canvas/evas_vg_shape.c +++ b/src/lib/evas/canvas/evas_vg_shape.c | |||
@@ -87,7 +87,7 @@ _efl_canvas_vg_shape_render_pre(Eo *obj EINA_UNUSED, | |||
87 | Efl_Canvas_Vg_Shape_Data *pd = data; | 87 | Efl_Canvas_Vg_Shape_Data *pd = data; |
88 | Efl_Canvas_Vg_Node_Data *fill, *stroke_fill, *stroke_marker, *mask; | 88 | Efl_Canvas_Vg_Node_Data *fill, *stroke_fill, *stroke_marker, *mask; |
89 | 89 | ||
90 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return ; | 90 | if (nd->flags == EFL_GFX_CHANGE_FLAG_NONE) return; |
91 | 91 | ||
92 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; | 92 | nd->flags = EFL_GFX_CHANGE_FLAG_NONE; |
93 | 93 | ||