diff options
author | Mike Blumenkrantz <zmike@samsung.com> | 2020-03-24 13:22:12 -0400 |
---|---|---|
committer | Mike Blumenkrantz <zmike@samsung.com> | 2020-03-24 13:22:12 -0400 |
commit | 8fe64fb70c38ccc583e0708a62f33e22245e9175 (patch) | |
tree | 259449e61056de082b44784e9db5b9081441a57a | |
parent | b37ebdad253f1505df7f95eea3a8e8830d7b58b3 (diff) | |
download | efl-8fe64fb70c38ccc583e0708a62f33e22245e9175.tar.gz |
evas: add function for norendering with updates
Summary:
the same as norender, but useful
Depends on D11581
Reviewers: bu5hm4n
Reviewed By: bu5hm4n
Subscribers: cedric, #reviewers, #committers
Tags: #efl
Differential Revision: https://phab.enlightenment.org/D11582
-rw-r--r-- | src/lib/evas/canvas/evas_canvas_eo.legacy.h | 15 | ||||
-rw-r--r-- | src/lib/evas/canvas/evas_render.c | 17 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/lib/evas/canvas/evas_canvas_eo.legacy.h b/src/lib/evas/canvas/evas_canvas_eo.legacy.h index 88a6591168..edd47fd76b 100644 --- a/src/lib/evas/canvas/evas_canvas_eo.legacy.h +++ b/src/lib/evas/canvas/evas_canvas_eo.legacy.h @@ -534,6 +534,21 @@ EAPI void evas_focus_out(Evas_Canvas *obj); EAPI void evas_norender(Evas_Canvas *obj); /** + * @brief Update the canvas internal objects but not triggering immediate + * renderization and producing update regions in post-render event. + * + * This function updates the canvas internal objects not triggering + * renderization. To force renderization function @ref evas_render should be + * used. + * @param[in] obj The object. + * + * @since 1.24 + * + * @ingroup Evas_Group + */ +EAPI void evas_norender_with_updates(Eo *eo_e); + +/** * @brief Pop the nochange flag down 1. * * This tells evas, that while the nochange flag is greater than 0, do not mark diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c index c7dff56336..08252d2326 100644 --- a/src/lib/evas/canvas/evas_render.c +++ b/src/lib/evas/canvas/evas_render.c @@ -4104,6 +4104,23 @@ _evas_canvas_norender(Eo *eo_e, Evas_Public_Data *e) } } +EAPI void +evas_norender_with_updates(Eo *eo_e) +{ + Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS); + Eina_List *ret; + Render_Updates *ru; + + evas_canvas_async_block(e); + // if (!e->changed) return; + ret = evas_render_updates_internal_wait(eo_e, 1, 0); + EINA_LIST_FREE(ret, ru) + { + eina_rectangle_free(ru->area); + free(ru); + } +} + EOLIAN void _evas_canvas_render_idle_flush(Eo *eo_e, Evas_Public_Data *evas) { |