summaryrefslogtreecommitdiff
path: root/src/lib/evas/include/evas_private.h
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-11-22 21:07:29 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2016-11-22 21:07:29 +0900
commit7bdcb0b8ca8f887020fd4f366f6f611d15fee08b (patch)
treee2d0601589b5903fbe9e500705514418d9083191 /src/lib/evas/include/evas_private.h
parentc844d9ae3d90425c7f209b5917c454bdbdbe57a4 (diff)
evas render - clean up phase 1 process to be more funcs and faster
this refactors _evas_render_phase1_object_process() into a bunch of sub functions with leaner code, some LIKELY/UNLIKELY hints etc. etc. in the hope that we have better l1 instruction cache use when executing. this actually measureably helps and drops the overhead of this func ANd all its sub functions from (in my tests in enlightenment compositing while a video plays) from about 13.2% of all cpu usage by e to 10%. that's about a 25% drop in cost for passing through phase 1 of evas render... and thats a good thing. and it also makes the code nicer and more broken up. @optimize
Diffstat (limited to 'src/lib/evas/include/evas_private.h')
-rw-r--r--src/lib/evas/include/evas_private.h55
1 files changed, 28 insertions, 27 deletions
diff --git a/src/lib/evas/include/evas_private.h b/src/lib/evas/include/evas_private.h
index 744c74a985..476c31cbd7 100644
--- a/src/lib/evas/include/evas_private.h
+++ b/src/lib/evas/include/evas_private.h
@@ -1126,7 +1126,7 @@ struct _Evas_Object_Protected_Data
1126 Evas_Callback_Type last_event_type; 1126 Evas_Callback_Type last_event_type;
1127 1127
1128 struct { 1128 struct {
1129 int in_move, in_resize; 1129 int in_move, in_resize;
1130 } doing; 1130 } doing;
1131 1131
1132 unsigned int ref; 1132 unsigned int ref;
@@ -1136,48 +1136,49 @@ struct _Evas_Object_Protected_Data
1136 1136
1137 unsigned char delete_me; 1137 unsigned char delete_me;
1138 1138
1139 struct {
1140 Eina_Bool pass_events : 1;
1141 Eina_Bool pass_events_valid : 1;
1142 Eina_Bool freeze_events : 1;
1143 Eina_Bool freeze_events_valid : 1;
1144 Eina_Bool src_invisible : 1;
1145 Eina_Bool src_invisible_valid : 1;
1146 } parent_cache;
1147
1148 Evas_Object_Pointer_Mode pointer_mode : 2;
1149 Eina_Bool store : 1;
1150 Eina_Bool pass_events : 1;
1151 Eina_Bool freeze_events : 1;
1152 Eina_Bool repeat_events : 1;
1153 Eina_Bool restack : 1;
1154 Eina_Bool is_active : 1;
1155
1156 Eina_Bool precise_is_inside : 1;
1157 Eina_Bool is_static_clip : 1;
1158 Eina_Bool render_pre : 1; 1139 Eina_Bool render_pre : 1;
1159 Eina_Bool rect_del : 1; 1140 Eina_Bool rect_del : 1;
1160 Eina_Bool mouse_in : 1; 1141 Eina_Bool is_active : 1;
1161 Eina_Bool pre_render_done : 1;
1162 Eina_Bool in_layer : 1;
1163
1164 Eina_Bool no_propagate : 1;
1165 Eina_Bool changed : 1; 1142 Eina_Bool changed : 1;
1143 Eina_Bool restack : 1;
1144 Eina_Bool is_smart : 1;
1145 Eina_Bool pass_events : 1;
1146 Eina_Bool store : 1;
1147
1166 Eina_Bool changed_move : 1; 1148 Eina_Bool changed_move : 1;
1167 Eina_Bool changed_color : 1; 1149 Eina_Bool changed_color : 1;
1168 Eina_Bool changed_map : 1; 1150 Eina_Bool changed_map : 1;
1169 Eina_Bool changed_pchange : 1; 1151 Eina_Bool changed_pchange : 1;
1170 Eina_Bool changed_src_visible : 1; 1152 Eina_Bool changed_src_visible : 1;
1171 Eina_Bool need_surface_clear : 1; 1153 Eina_Bool freeze_events : 1;
1154 Eina_Bool repeat_events : 1;
1155 Eina_Bool no_propagate : 1;
1156
1172 Eina_Bool del_ref : 1; 1157 Eina_Bool del_ref : 1;
1158 Eina_Bool need_surface_clear : 1;
1159 Eina_Bool pre_render_done : 1;
1160 Eina_Bool precise_is_inside : 1;
1161 Eina_Bool is_static_clip : 1;
1162 Eina_Bool mouse_in : 1;
1163 Evas_Object_Pointer_Mode pointer_mode : 2;
1173 1164
1165 Eina_Bool in_layer : 1;
1174 Eina_Bool is_frame : 1; 1166 Eina_Bool is_frame : 1;
1175 Eina_Bool is_frame_top : 1; // this is the frame edje 1167 Eina_Bool is_frame_top : 1; // this is the frame edje
1176 Eina_Bool child_has_map : 1; 1168 Eina_Bool child_has_map : 1;
1177 Eina_Bool efl_del_called : 1; 1169 Eina_Bool efl_del_called : 1;
1178 Eina_Bool is_smart : 1;
1179 Eina_Bool no_render : 1; // since 1.15 1170 Eina_Bool no_render : 1; // since 1.15
1180 Eina_Bool legacy : 1; // used legacy constructor 1171 Eina_Bool legacy : 1; // used legacy constructor
1172
1173 struct {
1174 Eina_Bool pass_events : 1;
1175 Eina_Bool pass_events_valid : 1;
1176 Eina_Bool freeze_events : 1;
1177 Eina_Bool freeze_events_valid : 1;
1178 Eina_Bool src_invisible : 1;
1179 Eina_Bool src_invisible_valid : 1;
1180 } parent_cache;
1181
1181}; 1182};
1182 1183
1183struct _Evas_Data_Node 1184struct _Evas_Data_Node