evas vg: code refactoring.

make code clean and neat, no logic changes.

use macro to reduce lines.
rename ambiguous internal variables.
remove unused variables.
This commit is contained in:
Hermet Park 2018-12-07 15:37:02 +09:00
parent dc5db85470
commit ca3ddc21e4
5 changed files with 32 additions and 40 deletions

View File

@ -39,9 +39,9 @@ _efl_canvas_vg_gradient_efl_gfx_gradient_stop_get(const Eo *obj EINA_UNUSED,
static void
_efl_canvas_vg_gradient_efl_gfx_gradient_spread_set(Eo *obj EINA_UNUSED,
Efl_Canvas_Vg_Gradient_Data *pd,
Efl_Gfx_Gradient_Spread s)
Efl_Gfx_Gradient_Spread spread)
{
pd->s = s;
pd->spread = spread;
_efl_canvas_vg_node_changed(obj);
}
@ -50,7 +50,7 @@ static Efl_Gfx_Gradient_Spread
_efl_canvas_vg_gradient_efl_gfx_gradient_spread_get(const Eo *obj EINA_UNUSED,
Efl_Canvas_Vg_Gradient_Data *pd)
{
return pd->s;
return pd->spread;
}
static Eina_Bool
@ -113,7 +113,7 @@ _efl_canvas_vg_gradient_efl_duplicate_duplicate(const Eo *obj, Efl_Canvas_Vg_Gra
cn = efl_duplicate(efl_super(obj, MY_CLASS));
efl_gfx_gradient_stop_set(cn, pd->colors, pd->colors_count);
efl_gfx_gradient_spread_set(cn, pd->s);
efl_gfx_gradient_spread_set(cn, pd->spread);
return cn;
}

View File

@ -84,7 +84,7 @@ _efl_canvas_vg_gradient_linear_render_pre(Eo *obj,
ector_renderer_color_set(nd->renderer, nd->r, nd->g, nd->b, nd->a);
ector_renderer_visibility_set(nd->renderer, nd->visibility);
efl_gfx_gradient_stop_set(nd->renderer, gd->colors, gd->colors_count);
efl_gfx_gradient_spread_set(nd->renderer, gd->s);
efl_gfx_gradient_spread_set(nd->renderer, gd->spread);
efl_gfx_gradient_linear_start_set(nd->renderer, pd->start.x, pd->start.y);
efl_gfx_gradient_linear_end_set(nd->renderer, pd->end.x, pd->end.y);

View File

@ -100,7 +100,7 @@ _efl_canvas_vg_gradient_radial_render_pre(Eo *obj,
ector_renderer_color_set(nd->renderer, nd->r, nd->g, nd->b, nd->a);
ector_renderer_visibility_set(nd->renderer, nd->visibility);
efl_gfx_gradient_stop_set(nd->renderer, gd->colors, gd->colors_count);
efl_gfx_gradient_spread_set(nd->renderer, gd->s);
efl_gfx_gradient_spread_set(nd->renderer, gd->spread);
efl_gfx_gradient_radial_center_set(nd->renderer, pd->center.x, pd->center.y);
efl_gfx_gradient_radial_focal_set(nd->renderer, pd->focal.x, pd->focal.y);
efl_gfx_gradient_radial_radius_set(nd->renderer, pd->radius);

View File

@ -139,12 +139,14 @@ _efl_canvas_vg_object_root_node_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Obj
}
EOLIAN static void
_efl_canvas_vg_object_root_node_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd, Efl_VG *root_node)
_efl_canvas_vg_object_root_node_set(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd, Efl_VG *root_node)
{
// if the same root is already set
if (pd->user_entry && pd->user_entry->root == root_node)
return;
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
// check if a file has been already set
if (pd->vg_entry)
{
@ -173,21 +175,19 @@ _efl_canvas_vg_object_root_node_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd, Efl_
// set the parent so that vg canvas can render it.
efl_parent_set(pd->user_entry->root, pd->root);
efl_canvas_vg_node_root_set(root_node, obj);
efl_canvas_vg_node_root_set(root_node, eo_obj);
}
else if (pd->user_entry)
{
// drop any surface cache attached to it.
Evas_Object_Protected_Data *eobj = efl_data_scope_get(obj, EFL_CANVAS_OBJECT_CLASS);
eobj->layer->evas->engine.func->ector_surface_cache_drop(_evas_engine_context(eobj->layer->evas),
pd->user_entry);
ENFN->ector_surface_cache_drop(_evas_engine_context(obj->layer->evas), pd->user_entry->root);
free(pd->user_entry);
pd->user_entry = NULL;
}
// force a redraw
pd->changed = EINA_TRUE;
evas_object_change(obj, efl_data_scope_get(obj, EFL_CANVAS_OBJECT_CLASS));
evas_object_change(eo_obj, obj);
}
EOLIAN static void
@ -415,11 +415,8 @@ _render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd
//create a buffer
if (!buffer)
{
buffer = obj->layer->evas->engine.func->ector_surface_create(engine,
w, h,
&error);
if (error)
return NULL; // surface creation error
buffer = ENFN->ector_surface_create(engine, w, h, &error);
if (error) return NULL;
buffer_created = EINA_TRUE;
}
@ -449,7 +446,7 @@ _render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *pd
evas_common_draw_context_free(context);
if (buffer_created)
obj->layer->evas->engine.func->ector_surface_cache_set(engine, key, buffer);
ENFN->ector_surface_cache_set(engine, key, buffer);
return buffer;
}
@ -464,7 +461,7 @@ _render_buffer_to_screen(Evas_Object_Protected_Data *obj,
Eina_Bool async_unref;
//Draw the buffer as image to canvas
async_unref = obj->layer->evas->engine.func->image_draw(engine, output, context, surface,
async_unref = ENFN->image_draw(engine, output, context, surface,
buffer,
0, 0, w, h,
x, y, w, h,
@ -499,7 +496,7 @@ _cache_vg_entry_render(Evas_Object_Protected_Data *obj,
root = evas_cache_vg_tree_get(vg_entry);
if (!root) return;
void *buffer = obj->layer->evas->engine.func->ector_surface_cache_get(engine, root);
void *buffer = ENFN->ector_surface_cache_get(engine, root);
if (!buffer)
{
@ -515,9 +512,8 @@ _cache_vg_entry_render(Evas_Object_Protected_Data *obj,
efl_unref(dupe_root);
}
else
{
obj->layer->evas->engine.func->ector_surface_cache_drop(engine, root);
}
//cache reference was increased when we get the cache.
ENFN->ector_surface_cache_drop(engine, root);
_render_buffer_to_screen(obj,
engine, output, context, surface,
@ -538,13 +534,13 @@ _user_vg_entry_render(Evas_Object_Protected_Data *obj,
if ((user_entry->w != w ) ||
(user_entry->h != h))
{
obj->layer->evas->engine.func->ector_surface_cache_drop(engine, user_entry);
ENFN->ector_surface_cache_drop(engine, user_entry);
user_entry->w = w;
user_entry->h = h;
pd->user_entry = user_entry;
}
//if the buffer is not created yet
void *buffer = obj->layer->evas->engine.func->ector_surface_cache_get(engine, user_entry);
void *buffer = ENFN->ector_surface_cache_get(engine, user_entry);
if (!buffer)
{
// render to the buffer
@ -567,7 +563,7 @@ _user_vg_entry_render(Evas_Object_Protected_Data *obj,
user_entry,
buffer,
do_async);
obj->layer->evas->engine.func->ector_surface_cache_drop(engine, user_entry);
ENFN->ector_surface_cache_drop(engine, user_entry);
}
_render_buffer_to_screen(obj,
@ -587,18 +583,15 @@ _efl_canvas_vg_object_render(Evas_Object *eo_obj EINA_UNUSED,
Efl_Canvas_Vg_Object_Data *pd = type_private_data;
/* render object to surface with context, and offxet by x,y */
obj->layer->evas->engine.func->context_color_set(engine, context,
255, 255, 255, 255);
obj->layer->evas->engine.func->context_multiplier_set(engine,
context,
obj->cur->cache.clip.r,
obj->cur->cache.clip.g,
obj->cur->cache.clip.b,
obj->cur->cache.clip.a);
obj->layer->evas->engine.func->context_anti_alias_set(engine, context,
obj->cur->anti_alias);
obj->layer->evas->engine.func->context_render_op_set(engine, context,
obj->cur->render_op);
ENFN->context_color_set(engine, context, 255, 255, 255, 255);
ENFN->context_multiplier_set(engine, context,
obj->cur->cache.clip.r,
obj->cur->cache.clip.g,
obj->cur->cache.clip.b,
obj->cur->cache.clip.a);
ENFN->context_anti_alias_set(engine, context, obj->cur->anti_alias);
ENFN->context_render_op_set(engine, context, obj->cur->render_op);
if (pd->vg_entry)
{
_cache_vg_entry_render(obj, pd,

View File

@ -39,7 +39,6 @@ typedef struct _User_Vg_Entry
struct _Efl_Canvas_Vg_Object_Data
{
void *engine_data;
Efl_VG *root;
Evas_Cache_Vg_Entry *vg_entry;
User_Vg_Entry *user_entry; // holds the user set vg tree
@ -87,7 +86,7 @@ struct _Efl_Canvas_Vg_Gradient_Data
Efl_Gfx_Gradient_Stop *colors;
unsigned int colors_count;
Efl_Gfx_Gradient_Spread s;
Efl_Gfx_Gradient_Spread spread;
};
struct _Efl_Canvas_Vg_Interpolation