summaryrefslogtreecommitdiff
path: root/src/modules/ecore_evas/engines/x/ecore_evas_x.c
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-06-02 20:39:57 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2015-06-09 17:34:39 +0900
commit25983dceddeda7d07220e97e227cd4c814707039 (patch)
tree078a335cd73978399d8ca6cb631a9932d4a23231 /src/modules/ecore_evas/engines/x/ecore_evas_x.c
parent0a2362fa69ebde8557f128e5b96a16f8b66a6fb9 (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.c43
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