summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/evas/canvas/evas_vg_container.c6
-rw-r--r--src/lib/evas/canvas/evas_vg_gradient_linear.c4
-rw-r--r--src/lib/evas/canvas/evas_vg_gradient_radial.c6
-rw-r--r--src/lib/evas/canvas/evas_vg_private.h10
-rw-r--r--src/lib/evas/canvas/evas_vg_shape.c2
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
93static Eo * 95static 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
110static Eo * 112static 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
116static inline Efl_Canvas_Vg_Node_Data * 116static 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