diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-06-02 20:39:57 +0900 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2015-06-09 17:34:39 +0900 |
commit | 25983dceddeda7d07220e97e227cd4c814707039 (patch) | |
tree | 078a335cd73978399d8ca6cb631a9932d4a23231 /src/modules/ecore_evas/engines/x/ecore_evas_x.c | |
parent | 0a2362fa69ebde8557f128e5b96a16f8b66a6fb9 (diff) |
evas render2 work - begin to make rectangles deal with render 2 basic
infra
Diffstat (limited to '')
-rw-r--r-- | src/modules/ecore_evas/engines/x/ecore_evas_x.c | 43 |
1 files changed, 33 insertions, 10 deletions
diff --git a/src/modules/ecore_evas/engines/x/ecore_evas_x.c b/src/modules/ecore_evas/engines/x/ecore_evas_x.c index 63ccfbce5d..a090da7cae 100644 --- a/src/modules/ecore_evas/engines/x/ecore_evas_x.c +++ b/src/modules/ecore_evas/engines/x/ecore_evas_x.c | |||
@@ -759,6 +759,7 @@ _ecore_evas_x_render(Ecore_Evas *ee) | |||
759 | Eina_List *ll; | 759 | Eina_List *ll; |
760 | Ecore_Evas *ee2; | 760 | Ecore_Evas *ee2; |
761 | Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; | 761 | Ecore_Evas_Engine_Data_X11 *edata = ee->engine.data; |
762 | static int render2 = -1; | ||
762 | 763 | ||
763 | if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync) && | 764 | if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync) && |
764 | (edata->sync_counter) && (!edata->sync_began) && | 765 | (edata->sync_counter) && (!edata->sync_began) && |
@@ -780,20 +781,42 @@ _ecore_evas_x_render(Ecore_Evas *ee) | |||
780 | } | 781 | } |
781 | 782 | ||
782 | if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); | 783 | if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee); |
783 | if (!ee->can_async_render) | 784 | if (render2 == -1) |
784 | { | 785 | { |
785 | Eina_List *updates = evas_render_updates(ee->evas); | 786 | if (getenv("RENDER2")) render2 = 1; |
786 | rend = _render_updates_process(ee, updates); | 787 | else render2 = 0; |
787 | evas_render_updates_free(updates); | ||
788 | } | 788 | } |
789 | else if (evas_render_async(ee->evas)) | 789 | if (render2) |
790 | { | 790 | { |
791 | EDBG("ee=%p started asynchronous render.", ee); | 791 | if (!ee->can_async_render) |
792 | ee->in_async_render = EINA_TRUE; | 792 | { |
793 | rend = 1; | 793 | Eina_List *updates = evas_render2_updates(ee->evas); |
794 | rend = _render_updates_process(ee, updates); | ||
795 | evas_render_updates_free(updates); | ||
796 | } | ||
797 | else | ||
798 | { | ||
799 | ee->in_async_render = EINA_TRUE; | ||
800 | if (evas_render2(ee->evas)) rend = 1; | ||
801 | else ee->in_async_render = EINA_FALSE; | ||
802 | } | ||
803 | } | ||
804 | else | ||
805 | { | ||
806 | if (!ee->can_async_render) | ||
807 | { | ||
808 | Eina_List *updates = evas_render_updates(ee->evas); | ||
809 | rend = _render_updates_process(ee, updates); | ||
810 | evas_render_updates_free(updates); | ||
811 | } | ||
812 | else if (evas_render_async(ee->evas)) | ||
813 | { | ||
814 | EDBG("ee=%p started asynchronous render.", ee); | ||
815 | ee->in_async_render = EINA_TRUE; | ||
816 | rend = 1; | ||
817 | } | ||
818 | else if (ee->func.fn_post_render) ee->func.fn_post_render(ee); | ||
794 | } | 819 | } |
795 | else if (ee->func.fn_post_render) ee->func.fn_post_render(ee); | ||
796 | |||
797 | return rend; | 820 | return rend; |
798 | } | 821 | } |
799 | 822 | ||