#ifndef EVAS_VG_PRIVATE_H_
# define EVAS_VG_PRIVATE_H_
+//TODO: Parametrize this include
#include <Ector.h>
+#ifdef HAVE_THORVG
+#include <thorvg_capi.h>
+#endif
+
typedef struct _Efl_Canvas_Vg_Node_Data Efl_Canvas_Vg_Node_Data;
typedef struct _Efl_Canvas_Vg_Container_Data Efl_Canvas_Vg_Container_Data;
typedef struct _Efl_Canvas_Vg_Gradient_Data Efl_Canvas_Vg_Gradient_Data;
void *ckeys[2]; //cache keys for first, last frames if animation
Eina_Bool changed : 1;
+
+#ifdef HAVE_THORVG
+ Tvg_Canvas *tvg_canvas;
+ uint32_t *tvg_buffer;
+#endif
};
struct _Efl_Canvas_Vg_Node_Data
Efl_Canvas_Vg_Node_Data *nd,
void *engine, void *output, void *contenxt, Ector_Surface *surface,
Eina_Matrix3 *ptransform, int opacity, Ector_Buffer *comp, Efl_Gfx_Vg_Composite_Method comp_method, void *data);
+
+#ifdef HAVE_THORVG
+ void (*render_pre_tvg)(Evas_Object_Protected_Data *vg_pd, Efl_VG *node, Efl_Canvas_Vg_Node_Data *nd, void *canvas);
+ void (*render_tvg)(Evas_Object_Protected_Data *vg_pd, Efl_VG *node, Efl_Canvas_Vg_Node_Data *nd, void *canvas);
+ void (*set_color)(Efl_Canvas_Vg_Node_Data *nd, int r, int g, int b, int a);
+#endif
+
void *data;
double x, y;
if (nd) nd->render_pre(vg_pd, child, nd,
engine, output, context, surface,
transform, opacity, comp, comp_method, nd->data);
+#ifdef HAVE_THORVG
+ //TODO: This function probably is not called when HAVE_THORVG is defined
+ if (nd && nd->render_pre_tvg) nd->render_pre_tvg(vg_pd, child, nd, NULL);
+#endif
return nd;
}