summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@samsung.com>2020-03-24 13:22:12 -0400
committerMike Blumenkrantz <zmike@samsung.com>2020-03-24 13:22:12 -0400
commit8fe64fb70c38ccc583e0708a62f33e22245e9175 (patch)
tree259449e61056de082b44784e9db5b9081441a57a
parentb37ebdad253f1505df7f95eea3a8e8830d7b58b3 (diff)
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.h15
-rw-r--r--src/lib/evas/canvas/evas_render.c17
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);
534EAPI void evas_norender(Evas_Canvas *obj); 534EAPI void evas_norender(Evas_Canvas *obj);
535 535
536/** 536/**
537 * @brief Update the canvas internal objects but not triggering immediate
538 * renderization and producing update regions in post-render event.
539 *
540 * This function updates the canvas internal objects not triggering
541 * renderization. To force renderization function @ref evas_render should be
542 * used.
543 * @param[in] obj The object.
544 *
545 * @since 1.24
546 *
547 * @ingroup Evas_Group
548 */
549EAPI void evas_norender_with_updates(Eo *eo_e);
550
551/**
537 * @brief Pop the nochange flag down 1. 552 * @brief Pop the nochange flag down 1.
538 * 553 *
539 * This tells evas, that while the nochange flag is greater than 0, do not mark 554 * 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)
4104 } 4104 }
4105} 4105}
4106 4106
4107EAPI void
4108evas_norender_with_updates(Eo *eo_e)
4109{
4110 Evas_Public_Data *e = efl_data_scope_get(eo_e, EVAS_CANVAS_CLASS);
4111 Eina_List *ret;
4112 Render_Updates *ru;
4113
4114 evas_canvas_async_block(e);
4115 // if (!e->changed) return;
4116 ret = evas_render_updates_internal_wait(eo_e, 1, 0);
4117 EINA_LIST_FREE(ret, ru)
4118 {
4119 eina_rectangle_free(ru->area);
4120 free(ru);
4121 }
4122}
4123
4107EOLIAN void 4124EOLIAN void
4108_evas_canvas_render_idle_flush(Eo *eo_e, Evas_Public_Data *evas) 4125_evas_canvas_render_idle_flush(Eo *eo_e, Evas_Public_Data *evas)
4109{ 4126{