#include "evas_vg_private.h"
-#define MY_CLASS EFL_CANVAS_VG_OBJECT_CLASS
+#define MY_CLASS EFL_CANVAS_VG_CLASS
/* private magic number for rectangle objects */
static const char o_type[] = "vectors";
_evas_vg_tree_changed(void *data, const Efl_Event *event EINA_UNUSED)
{
Evas_Object_Protected_Data *obj = data;
- Efl_Canvas_Vg_Object_Data *pd = efl_data_scope_get(obj->object, MY_CLASS);
+ Efl_Canvas_Vg_Data *pd = efl_data_scope_get(obj->object, MY_CLASS);
if (pd->changed) return;
}
static void
-_update_vgtree_viewport(Eo *obj, Efl_Canvas_Vg_Object_Data *pd)
+_update_vgtree_viewport(Eo *obj, Efl_Canvas_Vg_Data *pd)
{
double vb_w, vb_h, vp_w, vp_h, scale_w, scale_h, scale;
Eina_Size2D sz = efl_gfx_entity_size_get(obj);
static void
_evas_vg_resize(void *data, const Efl_Event *ev)
{
- Efl_Canvas_Vg_Object_Data *pd = data;
+ Efl_Canvas_Vg_Data *pd = data;
if (eina_rectangle_is_empty(&pd->viewbox.rect))
return;
}
EOLIAN static Efl_VG *
-_efl_canvas_vg_object_root_node_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_root_node_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd)
{
Efl_VG *root = NULL;
}
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_root_node_set(Eo *obj, Efl_Canvas_Vg_Data *pd, Efl_VG *root_node)
{
// if the same root is already set
if (pd->user_entry && pd->user_entry->root == root_node)
}
EOLIAN static void
-_efl_canvas_vg_object_fill_mode_set(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, Efl_Canvas_Vg_Fill_Mode fill_mode)
+_efl_canvas_vg_fill_mode_set(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd, Efl_Canvas_Vg_Fill_Mode fill_mode)
{
pd->fill_mode = fill_mode;
}
EOLIAN static Efl_Canvas_Vg_Fill_Mode
-_efl_canvas_vg_object_fill_mode_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_fill_mode_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd)
{
return pd->fill_mode;
}
EOLIAN static void
-_efl_canvas_vg_object_viewbox_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd, Eina_Rect viewbox)
+_efl_canvas_vg_viewbox_set(Eo *obj, Efl_Canvas_Vg_Data *pd, Eina_Rect viewbox)
{
// viewbox should be a valid rectangle
if (eina_rectangle_is_empty(&viewbox.rect))
}
EOLIAN static Eina_Rect
-_efl_canvas_vg_object_viewbox_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_viewbox_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd)
{
return pd->viewbox;
}
EOLIAN static void
-_efl_canvas_vg_object_viewbox_align_set(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, double align_x, double align_y)
+_efl_canvas_vg_viewbox_align_set(Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd, double align_x, double align_y)
{
align_x = align_x < 0 ? 0 : align_x;
align_x = align_x > 1 ? 1 : align_x;
}
EOLIAN static void
-_efl_canvas_vg_object_viewbox_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, double *align_x, double *align_y)
+_efl_canvas_vg_viewbox_align_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd, double *align_x, double *align_y)
{
if (align_x) *align_x = pd->align_x;
if (align_y) *align_y = pd->align_y;
// file set and save api implementation
EOLIAN static Eina_Bool
-_efl_canvas_vg_object_efl_file_file_set(Eo *obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key)
+_efl_canvas_vg_efl_file_file_set(Eo *eo_obj, Efl_Canvas_Vg_Data *pd, const char *file, const char *key)
{
Evas_Cache_Vg_Entry *old_entry;
int w, h;
if (!file) return EINA_FALSE;
old_entry = pd->vg_entry;
- evas_object_geometry_get(obj, NULL, NULL, &w, &h);
+ evas_object_geometry_get(eo_obj, NULL, NULL, &w, &h);
pd->vg_entry = evas_cache_vg_entry_find(file, key, w, h);
if (pd->vg_entry != old_entry)
- evas_object_change(obj, efl_data_scope_get(obj, EFL_CANVAS_OBJECT_CLASS));
+ evas_object_change(eo_obj, efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS));
evas_cache_vg_entry_del(old_entry);
return EINA_TRUE;
}
EOLIAN static void
-_efl_canvas_vg_object_efl_file_file_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Object_Data *pd, const char **file, const char **key)
+_efl_canvas_vg_efl_file_file_get(const Eo *obj EINA_UNUSED, Efl_Canvas_Vg_Data *pd, const char **file, const char **key)
{
if (pd->vg_entry)
{
}
EOLIAN static Eina_Bool
-_efl_canvas_vg_object_efl_file_save(const Eo *obj, Efl_Canvas_Vg_Object_Data *pd, const char *file, const char *key, const char *flags)
+_efl_canvas_vg_efl_file_save(const Eo *obj, Efl_Canvas_Vg_Data *pd, const char *file, const char *key, const char *flags)
{
Vg_File_Data tmp = {};
Vg_File_Data *info = &tmp;
static void
_cleanup_reference(void *data, const Efl_Event *event EINA_UNUSED)
{
- Efl_Canvas_Vg_Object_Data *pd = data;
+ Efl_Canvas_Vg_Data *pd = data;
Eo *renderer;
/* unref all renderer and may also destroy them async */
}
EOLIAN static void
-_efl_canvas_vg_object_efl_object_destructor(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_efl_object_destructor(Eo *eo_obj, Efl_Canvas_Vg_Data *pd)
{
Evas *e = evas_object_evas_get(eo_obj);
}
EOLIAN static Eo *
-_efl_canvas_vg_object_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_efl_object_constructor(Eo *eo_obj, Efl_Canvas_Vg_Data *pd)
{
Evas_Object_Protected_Data *obj = efl_data_scope_get(eo_obj, EFL_CANVAS_OBJECT_CLASS);
}
static Efl_Object *
-_efl_canvas_vg_object_efl_object_finalize(Eo *obj, Efl_Canvas_Vg_Object_Data *pd)
+_efl_canvas_vg_efl_object_finalize(Eo *obj, Efl_Canvas_Vg_Data *pd)
{
Evas *e = evas_object_evas_get(obj);
}
static void
-_evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *vd,
+_evas_vg_render(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Data *pd,
void *engine, void *output, void *context, void *surface, Efl_VG *n,
Eina_Array *clips, Eina_Bool do_async)
{
vc = efl_data_scope_get(n, EFL_CANVAS_VG_CONTAINER_CLASS);
EINA_LIST_FOREACH(vc->children, l, child)
- _evas_vg_render(obj, vd,
+ _evas_vg_render(obj, pd,
engine, output, context, surface, child,
clips, do_async);
}
nd = efl_data_scope_get(n, EFL_CANVAS_VG_NODE_CLASS);
obj->layer->evas->engine.func->ector_renderer_draw(engine, output, context, surface, nd->renderer, clips, do_async);
if (do_async)
- eina_array_push(&vd->cleanup, efl_ref(nd->renderer));
+ eina_array_push(&pd->cleanup, efl_ref(nd->renderer));
}
}
// renders a vg_tree to an offscreen buffer
// and push it to the cache.
static void *
-_render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Object_Data *vd,
+_render_to_buffer(Evas_Object_Protected_Data *obj, Efl_Canvas_Vg_Data *pd,
void *engine, void *surface,
Efl_VG *root, int w, int h, void *key,
void *buffer, Eina_Bool do_async)
ector,
0, 0,
do_async);
- _evas_vg_render(obj, vd,
+ _evas_vg_render(obj, pd,
engine, buffer,
context, surface,
root, NULL,
static void
_cache_vg_entry_render(Evas_Object_Protected_Data *obj,
- Efl_Canvas_Vg_Object_Data *vd,
+ Efl_Canvas_Vg_Data *pd,
void *engine, void *output, void *context, void *surface,
int x, int y, int w, int h, Eina_Bool do_async)
{
- Evas_Cache_Vg_Entry *vg_entry = vd->vg_entry;
+ Evas_Cache_Vg_Entry *vg_entry = pd->vg_entry;
Efl_VG *root, *dupe_root;
void *buffer;
evas_cache_vg_entry_del(vg_entry);
vg_entry = evas_cache_vg_entry_find(vg_entry->file, vg_entry->key,
w, h);
- vd->vg_entry = vg_entry;
+ pd->vg_entry = vg_entry;
}
root = evas_cache_vg_tree_get(vg_entry);
if (!root) return;
{
dupe_root = efl_duplicate(root);
// render to the buffer
- buffer = _render_to_buffer(obj, vd,
+ buffer = _render_to_buffer(obj, pd,
engine, surface,
dupe_root,
w, h,
static void
_user_vg_entry_render(Evas_Object_Protected_Data *obj,
- Efl_Canvas_Vg_Object_Data *vd,
+ Efl_Canvas_Vg_Data *pd,
void *engine, void *output, void *context, void *surface,
int x, int y, int w, int h, Eina_Bool do_async)
{
- User_Vg_Entry *user_entry = vd->user_entry;
+ User_Vg_Entry *user_entry = pd->user_entry;
void *buffer;
// if the size dosen't match
obj->layer->evas->engine.func->ector_surface_cache_drop(engine, user_entry);
user_entry->w = w;
user_entry->h = h;
- vd->user_entry = user_entry;
+ pd->user_entry = user_entry;
}
// if the buffer is not created yet
buffer = obj->layer->evas->engine.func->ector_surface_cache_get(engine, user_entry);
if (!buffer)
{
// render to the buffer
- buffer = _render_to_buffer(obj, vd,
+ buffer = _render_to_buffer(obj, pd,
engine, surface,
user_entry->root,
w, h,
else
{
// render to the buffer
- if (vd->changed)
- buffer = _render_to_buffer(obj, vd,
+ if (pd->changed)
+ buffer = _render_to_buffer(obj, pd,
engine, surface,
user_entry->root,
w, h,
void *engine, void *output, void *context, void *surface,
int x, int y, Eina_Bool do_async)
{
- Efl_Canvas_Vg_Object_Data *vd = type_private_data;
+ Efl_Canvas_Vg_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,
obj->cur->anti_alias);
obj->layer->evas->engine.func->context_render_op_set(engine, context,
obj->cur->render_op);
- if (vd->vg_entry)
+ if (pd->vg_entry)
{
- _cache_vg_entry_render(obj, vd,
+ _cache_vg_entry_render(obj, pd,
engine, output, context, surface,
obj->cur->geometry.x + x, obj->cur->geometry.y + y,
obj->cur->geometry.w, obj->cur->geometry.h, do_async);
}
- if (vd->user_entry)
+ if (pd->user_entry)
{
- _user_vg_entry_render(obj, vd,
+ _user_vg_entry_render(obj, pd,
engine, output, context, surface,
obj->cur->geometry.x + x, obj->cur->geometry.y + y,
obj->cur->geometry.w, obj->cur->geometry.h, do_async);
}
- vd->changed = EINA_FALSE;
+ pd->changed = EINA_FALSE;
}
static void
Evas_Object_Protected_Data *obj,
void *type_private_data)
{
- Efl_Canvas_Vg_Object_Data *vd = type_private_data;
+ Efl_Canvas_Vg_Data *pd = type_private_data;
int is_v, was_v;
Ector_Surface *s;
// FIXME: handle damage only on changed renderer.
s = evas_ector_get(obj->layer->evas);
- if (vd->root && s)
- _evas_vg_render_pre(vd->root, s, NULL);
+ if (pd->root && s)
+ _evas_vg_render_pre(pd->root, s, NULL);
/* now figure what changed and add draw rects */
/* if it just became visible or invisible */
was_v = evas_object_was_visible(eo_obj,obj);
if (!(is_v | was_v)) goto done;
- if (vd->changed)
+ if (pd->changed)
{
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, eo_obj, obj);
goto done;
static unsigned int
_efl_canvas_vg_id_get(Evas_Object *eo_obj)
{
- Efl_Canvas_Vg_Object_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
+ Efl_Canvas_Vg_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
if (!o) return 0;
return MAGIC_OBJ_VG;
}
static unsigned int
_efl_canvas_vg_visual_id_get(Evas_Object *eo_obj)
{
- Efl_Canvas_Vg_Object_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
+ Efl_Canvas_Vg_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
if (!o) return 0;
return MAGIC_OBJ_SHAPE;
}
static void *
_efl_canvas_vg_engine_data_get(Evas_Object *eo_obj)
{
- Efl_Canvas_Vg_Object_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
+ Efl_Canvas_Vg_Data *o = efl_data_scope_get(eo_obj, MY_CLASS);
return o->engine_data;
}
return 0;
}
-#include "efl_canvas_vg_object.eo.c"
+#include "efl_canvas_vg.eo.c"