evas: actually we want the Ector_Renderer, not the Evas_VG_Node.

This commit is contained in:
Cedric BAIL 2015-04-03 16:23:04 +02:00
parent 502ac45916
commit 5aafae94f1
2 changed files with 17 additions and 12 deletions

View File

@ -37,14 +37,18 @@ struct _Evas_VG_Gradient_Data
Efl_Graphics_Gradient_Spread s;
};
static inline void
static inline Evas_VG_Node *
_evas_vg_render_pre(Evas_VG_Node *child, Ector_Surface *s, Eina_Matrix3 *m)
{
Evas_VG_Node_Data *child_nd;
Evas_VG_Node_Data *child_nd = NULL;
// FIXME: Prevent infinite loop
child_nd = eo_data_scope_get(child, EVAS_VG_NODE_CLASS);
child_nd->render_pre(child, m, s, child_nd->data, child_nd);
if (child)
child_nd = eo_data_scope_get(child, EVAS_VG_NODE_CLASS);
if (child_nd)
child_nd->render_pre(child, m, s, child_nd->data, child_nd);
return child_nd;
}
#define EVAS_VG_COMPUTE_MATRIX(Current, Parent, Nd) \

View File

@ -238,12 +238,13 @@ _evas_vg_shape_render_pre(Eo *obj EINA_UNUSED,
Evas_VG_Node_Data *nd)
{
Evas_VG_Shape_Data *pd = data;
Evas_VG_Node_Data *fill, *stroke_fill, *stroke_marker, *mask;
EVAS_VG_COMPUTE_MATRIX(current, parent, nd);
_evas_vg_render_pre(pd->fill, s, current);
_evas_vg_render_pre(pd->stroke.fill, s, current);
_evas_vg_render_pre(pd->stroke.marker, s, current);
_evas_vg_render_pre(nd->mask, s, current);
fill = _evas_vg_render_pre(pd->fill, s, current);
stroke_fill = _evas_vg_render_pre(pd->stroke.fill, s, current);
stroke_marker = _evas_vg_render_pre(pd->stroke.marker, s, current);
mask = _evas_vg_render_pre(nd->mask, s, current);
if (!nd->renderer)
{
@ -255,10 +256,10 @@ _evas_vg_shape_render_pre(Eo *obj EINA_UNUSED,
ector_renderer_origin_set(nd->x, nd->y),
ector_renderer_color_set(nd->r, nd->g, nd->b, nd->a),
ector_renderer_visibility_set(nd->visibility),
ector_renderer_mask_set(nd->mask),
ector_renderer_shape_fill_set(pd->fill),
ector_renderer_shape_stroke_fill_set(pd->stroke.fill),
ector_renderer_shape_stroke_marker_set(pd->stroke.marker),
ector_renderer_mask_set(mask->renderer),
ector_renderer_shape_fill_set(fill->renderer),
ector_renderer_shape_stroke_fill_set(stroke_fill->renderer),
ector_renderer_shape_stroke_marker_set(stroke_marker->renderer),
efl_graphics_shape_stroke_scale_set(pd->stroke.scale),
efl_graphics_shape_stroke_color_set(pd->stroke.r,
pd->stroke.g,