diff --git a/legacy/evas/ChangeLog b/legacy/evas/ChangeLog index 055d53810f..244d62b71c 100644 --- a/legacy/evas/ChangeLog +++ b/legacy/evas/ChangeLog @@ -566,3 +566,8 @@ * Add new api to set and get default event flags. +2011-12-19 Carsten Haitzler (The Rasterman) + + * Add new canvas events called just before and after evas rendering + starts and stops. + diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index a12d536963..0cf14d5289 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -433,6 +433,9 @@ typedef enum _Evas_Callback_Type */ EVAS_CALLBACK_IMAGE_UNLOADED, /**< Image data has been unloaded (by some mechanims in Evas that throw out original image data) */ + EVAS_CALLBACK_RENDER_PRE, /**< Called just before rendering starts on the canvas target */ + EVAS_CALLBACK_RENDER_POST, /**< Called just after rendering stops on the canvas target */ + EVAS_CALLBACK_LAST /**< kept as last element/sentinel -- not really an event */ } Evas_Callback_Type; /**< The types of events triggering a callback */ diff --git a/legacy/evas/src/lib/canvas/evas_render.c b/legacy/evas/src/lib/canvas/evas_render.c index 1ad5e37d59..c43fa460c5 100644 --- a/legacy/evas/src/lib/canvas/evas_render.c +++ b/legacy/evas/src/lib/canvas/evas_render.c @@ -1360,6 +1360,8 @@ evas_render_updates_internal(Evas *e, RD("[--- RENDER EVAS (size: %ix%i)\n", e->viewport.w, e->viewport.h); + evas_event_callback_call(e, EVAS_CALLBACK_RENDER_PRE, NULL); + /* Check if the modified object mean recalculating every thing */ if (!e->invalidate) _evas_render_check_pending_objects(&e->pending_objects, e); @@ -1686,6 +1688,8 @@ evas_render_updates_internal(Evas *e, } evas_module_clean(); + + evas_event_callback_call(e, EVAS_CALLBACK_RENDER_POST, NULL); RD("---]\n");