diff options
author | Cedric BAIL <cedric.bail@free.fr> | 2010-01-14 17:52:29 +0000 |
---|---|---|
committer | Cedric BAIL <cedric.bail@free.fr> | 2010-01-14 17:52:29 +0000 |
commit | dd1abb5baee19a5265645b1791e9dfe5327a926a (patch) | |
tree | ab5c70be458ce8dd08e9293106597606d47a477e /legacy/ecore/src/lib/ecore_evas | |
parent | 99a429aab7c057cb7bf2658846dbbe79e3c2bf55 (diff) |
* ecore_evas: Cleanup buffer render user. Why isn't this common too ?
SVN revision: 45114
Diffstat (limited to '')
8 files changed, 25 insertions, 19 deletions
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c index 33ab5b1602..43506bfb78 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_buffer.c | |||
@@ -88,16 +88,17 @@ _ecore_evas_buffer_shutdown(void) | |||
88 | return _ecore_evas_init_count; | 88 | return _ecore_evas_init_count; |
89 | } | 89 | } |
90 | 90 | ||
91 | void | 91 | int |
92 | _ecore_evas_buffer_render(Ecore_Evas *ee) | 92 | _ecore_evas_buffer_render(Ecore_Evas *ee) |
93 | { | 93 | { |
94 | Eina_List *updates, *l, *ll; | 94 | Eina_List *updates, *l, *ll; |
95 | Ecore_Evas *ee2; | 95 | Ecore_Evas *ee2; |
96 | int rend = 0; | ||
96 | 97 | ||
97 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 98 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
98 | { | 99 | { |
99 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 100 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
100 | _ecore_evas_buffer_render(ee2); | 101 | rend |= _ecore_evas_buffer_render(ee2); |
101 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 102 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
102 | } | 103 | } |
103 | if (ee->engine.buffer.image) | 104 | if (ee->engine.buffer.image) |
@@ -123,6 +124,8 @@ _ecore_evas_buffer_render(Ecore_Evas *ee) | |||
123 | evas_render_updates_free(updates); | 124 | evas_render_updates_free(updates); |
124 | _ecore_evas_idle_timeout_update(ee); | 125 | _ecore_evas_idle_timeout_update(ee); |
125 | } | 126 | } |
127 | |||
128 | return updates ? 1 : rend; | ||
126 | } | 129 | } |
127 | 130 | ||
128 | static void | 131 | static void |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c index e301d41974..acc8a536ca 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_directfb.c | |||
@@ -23,17 +23,18 @@ static Ecore_Event_Handler *ecore_evas_event_handlers[13]; | |||
23 | 23 | ||
24 | static Eina_Hash *ecore_evases_hash = NULL; | 24 | static Eina_Hash *ecore_evases_hash = NULL; |
25 | 25 | ||
26 | static void | 26 | static int |
27 | _ecore_evas_directfb_render(Ecore_Evas *ee) | 27 | _ecore_evas_directfb_render(Ecore_Evas *ee) |
28 | { | 28 | { |
29 | Eina_List *updates, *ll; | 29 | Eina_List *updates, *ll; |
30 | Ecore_Evas *ee2; | 30 | Ecore_Evas *ee2; |
31 | int rend = 0; | ||
31 | 32 | ||
32 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER | 33 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER |
33 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 34 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
34 | { | 35 | { |
35 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 36 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
36 | _ecore_evas_buffer_render(ee2); | 37 | rend |= _ecore_evas_buffer_render(ee2); |
37 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 38 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
38 | } | 39 | } |
39 | #endif | 40 | #endif |
@@ -45,6 +46,8 @@ _ecore_evas_directfb_render(Ecore_Evas *ee) | |||
45 | _ecore_evas_idle_timeout_update(ee); | 46 | _ecore_evas_idle_timeout_update(ee); |
46 | } | 47 | } |
47 | if (ee->func.fn_post_render) ee->func.fn_post_render(ee); | 48 | if (ee->func.fn_post_render) ee->func.fn_post_render(ee); |
49 | |||
50 | return updates ? 1 : rend; | ||
48 | } | 51 | } |
49 | 52 | ||
50 | static char * | 53 | static char * |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c index 9758560890..f0a222f33d 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_fb.c | |||
@@ -194,11 +194,11 @@ static int | |||
194 | _ecore_evas_fb_render(Ecore_Evas *ee) | 194 | _ecore_evas_fb_render(Ecore_Evas *ee) |
195 | { | 195 | { |
196 | int rend = 0; | 196 | int rend = 0; |
197 | 197 | ||
198 | if (ee->visible) | 198 | if (ee->visible) |
199 | { | 199 | { |
200 | Eina_List *updates; | 200 | Eina_List *updates; |
201 | 201 | ||
202 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER | 202 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER |
203 | Eina_List *ll; | 203 | Eina_List *ll; |
204 | Ecore_Evas *ee2; | 204 | Ecore_Evas *ee2; |
@@ -208,7 +208,7 @@ _ecore_evas_fb_render(Ecore_Evas *ee) | |||
208 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 208 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
209 | { | 209 | { |
210 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 210 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
211 | _ecore_evas_buffer_render(ee2); | 211 | rend |= _ecore_evas_buffer_render(ee2); |
212 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 212 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
213 | } | 213 | } |
214 | #endif | 214 | #endif |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h b/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h index c4404a1c5c..cc2caeeb4f 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_private.h | |||
@@ -346,7 +346,7 @@ int _ecore_evas_fb_shutdown(void); | |||
346 | #endif | 346 | #endif |
347 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER | 347 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER |
348 | int _ecore_evas_buffer_shutdown(void); | 348 | int _ecore_evas_buffer_shutdown(void); |
349 | void _ecore_evas_buffer_render(Ecore_Evas *ee); | 349 | int _ecore_evas_buffer_render(Ecore_Evas *ee); |
350 | #endif | 350 | #endif |
351 | #ifdef BUILD_ECORE_EVAS_DIRECTFB | 351 | #ifdef BUILD_ECORE_EVAS_DIRECTFB |
352 | int _ecore_evas_directfb_shutdown(void); | 352 | int _ecore_evas_directfb_shutdown(void); |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c index 31b204db2d..ad492ec258 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_sdl.c | |||
@@ -112,36 +112,36 @@ _ecore_evas_render(Ecore_Evas *ee) | |||
112 | evas_render_updates_free(updates); | 112 | evas_render_updates_free(updates); |
113 | _ecore_evas_idle_timeout_update(ee); | 113 | _ecore_evas_idle_timeout_update(ee); |
114 | } | 114 | } |
115 | return (int)updates; | 115 | return updates ? 1 : 0; |
116 | } | 116 | } |
117 | 117 | ||
118 | static int | 118 | static int |
119 | _ecore_evas_sdl_render(Ecore_Evas *ee) | 119 | _ecore_evas_sdl_render(Ecore_Evas *ee) |
120 | { | 120 | { |
121 | int rend = 0; | 121 | int rend = 0; |
122 | 122 | ||
123 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER | 123 | #ifdef BUILD_ECORE_EVAS_SOFTWARE_BUFFER |
124 | Eina_List *ll; | 124 | Eina_List *ll; |
125 | Ecore_Evas *ee2; | 125 | Ecore_Evas *ee2; |
126 | 126 | ||
127 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 127 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
128 | { | 128 | { |
129 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 129 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
130 | _ecore_evas_buffer_render(ee2); | 130 | rend |= _ecore_evas_buffer_render(ee2); |
131 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 131 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
132 | } | 132 | } |
133 | #endif | 133 | #endif |
134 | 134 | ||
135 | if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); | 135 | if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); |
136 | 136 | ||
137 | if (ee->prop.avoid_damage) rend = _ecore_evas_render(ee); | 137 | if (ee->prop.avoid_damage) rend = _ecore_evas_render(ee); |
138 | else if ((ee->visible) || | 138 | else if ((ee->visible) || |
139 | ((ee->should_be_visible) && (ee->prop.fullscreen)) || | 139 | ((ee->should_be_visible) && (ee->prop.fullscreen)) || |
140 | ((ee->should_be_visible) && (ee->prop.override))) | 140 | ((ee->should_be_visible) && (ee->prop.override))) |
141 | rend = _ecore_evas_render(ee); | 141 | rend |= _ecore_evas_render(ee); |
142 | else | 142 | else |
143 | evas_norender(ee->evas); | 143 | evas_norender(ee->evas); |
144 | 144 | ||
145 | if (ee->func.fn_post_render) ee->func.fn_post_render(ee); | 145 | if (ee->func.fn_post_render) ee->func.fn_post_render(ee); |
146 | return rend; | 146 | return rend; |
147 | } | 147 | } |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c index 0fb92e1899..19f7545266 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_win32.c | |||
@@ -59,7 +59,7 @@ _ecore_evas_win32_render(Ecore_Evas *ee) | |||
59 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 59 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
60 | { | 60 | { |
61 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 61 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
62 | _ecore_evas_buffer_render(ee2); | 62 | rend |= _ecore_evas_buffer_render(ee2); |
63 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 63 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
64 | } | 64 | } |
65 | #endif | 65 | #endif |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c index 7e558f5609..a4aa56a640 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_wince.c | |||
@@ -57,7 +57,7 @@ _ecore_evas_wince_render(Ecore_Evas *ee) | |||
57 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 57 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
58 | { | 58 | { |
59 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 59 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
60 | _ecore_evas_buffer_render(ee2); | 60 | rend |= _ecore_evas_buffer_render(ee2); |
61 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 61 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
62 | } | 62 | } |
63 | #endif | 63 | #endif |
diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index a5d067f69b..4df8492407 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c | |||
@@ -148,7 +148,7 @@ _ecore_evas_x_render(Ecore_Evas *ee) | |||
148 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) | 148 | EINA_LIST_FOREACH(ee->sub_ecore_evas, ll, ee2) |
149 | { | 149 | { |
150 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); | 150 | if (ee2->func.fn_pre_render) ee2->func.fn_pre_render(ee2); |
151 | _ecore_evas_buffer_render(ee2); | 151 | rend |= _ecore_evas_buffer_render(ee2); |
152 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); | 152 | if (ee2->func.fn_post_render) ee2->func.fn_post_render(ee2); |
153 | } | 153 | } |
154 | #endif | 154 | #endif |