summaryrefslogtreecommitdiff
path: root/src/lib/evas/canvas/evas_vg_private.h
diff options
context:
space:
mode:
authorHermet Park <hermetpark@gmail.com>2019-09-11 15:12:35 +0900
committerHermet Park <hermetpark@gmail.com>2019-09-11 15:15:32 +0900
commitf684e85453a5ecc13d8ab8e05ba009366b3ad478 (patch)
treebbc9edac033d04a0b1f698eff581736395b6ec10 /src/lib/evas/canvas/evas_vg_private.h
parent27498629ed279557f6b179c6fc938406510ee760 (diff)
evas vg: optimize memory in layer blending.
Same method to 321035d1e7d58fb9165b7ee55c1962d39c859caa By far, with previous memory optimization, The memory usage is reduced to half of composition buffer size.
Diffstat (limited to 'src/lib/evas/canvas/evas_vg_private.h')
-rw-r--r--src/lib/evas/canvas/evas_vg_private.h12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/lib/evas/canvas/evas_vg_private.h b/src/lib/evas/canvas/evas_vg_private.h
index c87753778b..d5eb04f1cc 100644
--- a/src/lib/evas/canvas/evas_vg_private.h
+++ b/src/lib/evas/canvas/evas_vg_private.h
@@ -100,9 +100,14 @@ struct _Efl_Canvas_Vg_Container_Data
100 Efl_Canvas_Vg_Node *comp_target; //Composite target 100 Efl_Canvas_Vg_Node *comp_target; //Composite target
101 Vg_Comp comp; //Composite target data 101 Vg_Comp comp; //Composite target data
102 102
103 //Layer transparency feature. This buffer is only valid when the layer has transparency. 103 /* Layer transparency feature.
104 Ector_Buffer *blend_buffer; 104 This buffer is only valid when the layer has transparency. */
105 void *blend_pixels; 105 struct {
106 Ector_Buffer *buffer;
107 void *pixels;
108 unsigned int length; //blend buffer data size
109 unsigned int stride; //blend buffer stride
110 } blend;
106}; 111};
107 112
108struct _Efl_Canvas_Vg_Gradient_Data 113struct _Efl_Canvas_Vg_Gradient_Data
@@ -139,6 +144,7 @@ Eina_Size2D evas_cache_vg_entry_default_size_get(const Vg_Cache_
139void efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG *vg_obj, Efl_Canvas_Vg_Object_Data *vd); 144void efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG *vg_obj, Efl_Canvas_Vg_Object_Data *vd);
140void efl_canvas_vg_node_change(Efl_VG *node); 145void efl_canvas_vg_node_change(Efl_VG *node);
141void efl_canvas_vg_container_vg_obj_update(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd); 146void efl_canvas_vg_container_vg_obj_update(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd);
147void efl_canvas_vg_container_blend_buffer_clear(Efl_VG *obj, Efl_Canvas_Vg_Container_Data *cd);
142 148
143static inline void 149static inline void
144efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd) 150efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd)