diff options
author | Hermet Park <hermetpark@gmail.com> | 2019-09-11 15:12:35 +0900 |
---|---|---|
committer | Hermet Park <hermetpark@gmail.com> | 2019-09-11 15:15:32 +0900 |
commit | f684e85453a5ecc13d8ab8e05ba009366b3ad478 (patch) | |
tree | bbc9edac033d04a0b1f698eff581736395b6ec10 /src/lib/evas/canvas/evas_vg_private.h | |
parent | 27498629ed279557f6b179c6fc938406510ee760 (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.h | 12 |
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 | ||
108 | struct _Efl_Canvas_Vg_Gradient_Data | 113 | struct _Efl_Canvas_Vg_Gradient_Data |
@@ -139,6 +144,7 @@ Eina_Size2D evas_cache_vg_entry_default_size_get(const Vg_Cache_ | |||
139 | void efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG *vg_obj, Efl_Canvas_Vg_Object_Data *vd); | 144 | void efl_canvas_vg_node_vg_obj_set(Efl_VG *node, Efl_VG *vg_obj, Efl_Canvas_Vg_Object_Data *vd); |
140 | void efl_canvas_vg_node_change(Efl_VG *node); | 145 | void efl_canvas_vg_node_change(Efl_VG *node); |
141 | void efl_canvas_vg_container_vg_obj_update(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd); | 146 | void efl_canvas_vg_container_vg_obj_update(Efl_VG *obj, Efl_Canvas_Vg_Node_Data *nd); |
147 | void efl_canvas_vg_container_blend_buffer_clear(Efl_VG *obj, Efl_Canvas_Vg_Container_Data *cd); | ||
142 | 148 | ||
143 | static inline void | 149 | static inline void |
144 | efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd) | 150 | efl_canvas_vg_object_change(Efl_Canvas_Vg_Object_Data *vd) |