jayji pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=b9ab5f68aff23349a1c63079dbbed48d7cdf0c3d

commit b9ab5f68aff23349a1c63079dbbed48d7cdf0c3d
Author: Jean Guyomarc'h <j...@guyomarch.bzh>
Date:   Wed Mar 8 08:57:37 2017 +0100

    ecore_evas_cocoa: remove a lot of useless code
    
    I still don't know what's going on with the rendering problems, but
    at least now  I have less dead code in my way...
---
 .../ecore_evas/engines/cocoa/ecore_evas_cocoa.c    | 109 ++++++++-------------
 1 file changed, 42 insertions(+), 67 deletions(-)

diff --git a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c 
b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
index 04a8b21..90071de 100644
--- a/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
+++ b/src/modules/ecore_evas/engines/cocoa/ecore_evas_cocoa.c
@@ -42,32 +42,15 @@ _render_updates_process(Ecore_Evas *ee, Eina_List *updates)
 {
    int rend = 0;
 
-   if (ee->prop.avoid_damage)
+   if (((ee->visible) && (ee->draw_ok)) ||
+       ((ee->should_be_visible) && (ee->prop.fullscreen)) ||
+       ((ee->should_be_visible) && (ee->prop.override)))
      {
         if (updates)
           {
              _ecore_evas_idle_timeout_update(ee);
              rend = 1;
           }
-
-     }
-   else if (((ee->visible) && (ee->draw_ok)) ||
-            ((ee->should_be_visible) && (ee->prop.fullscreen)) ||
-            ((ee->should_be_visible) && (ee->prop.override)))
-     {
-        if (updates)
-          {
-             if (ee->shaped)
-               {
-                  //TODO
-               }
-             if (ee->alpha)
-               {
-                  //TODO
-               }
-             _ecore_evas_idle_timeout_update(ee);
-             rend = 1;
-          }
      }
    else
      evas_norender(ee->evas);
@@ -99,9 +82,8 @@ static int
 _ecore_evas_cocoa_render(Ecore_Evas *ee)
 {
    int rend = 0;
-   Eina_List *ll;
+   Eina_List *ll, *updates;
    Ecore_Evas *ee2;
-   static int render2 = -1;
 
    if ((!ee->no_comp_sync) && (_ecore_evas_app_comp_sync))
      return 0;
@@ -121,42 +103,11 @@ _ecore_evas_cocoa_render(Ecore_Evas *ee)
      }
 
    if (ee->func.fn_pre_render) ee->func.fn_pre_render(ee);
-   if (render2 == -1)
-     {
-        if (getenv("RENDER2")) render2 = 1;
-        else render2 = 0;
-     }
-   if (render2)
-     {
-        if (!ee->can_async_render)
-          {
-             Eina_List *updates = evas_render2_updates(ee->evas);
-             rend = _render_updates_process(ee, updates);
-             evas_render_updates_free(updates);
-          }
-        else
-          {
-             ee->in_async_render = EINA_TRUE;
-             if (evas_render2(ee->evas)) rend = 1;
-             else ee->in_async_render = EINA_FALSE;
-          }
-     }
-   else
-     {
-        if (!ee->can_async_render)
-          {
-             Eina_List *updates = evas_render_updates(ee->evas);
-             rend = _render_updates_process(ee, updates);
-             evas_render_updates_free(updates);
-          }
-        else if (evas_render_async(ee->evas))
-          {
-             DBG("ee=%p started asynchronous render.", ee);
-             ee->in_async_render = EINA_TRUE;
-             rend = 1;
-          }
-        else if (ee->func.fn_post_render) ee->func.fn_post_render(ee);
-     }
+
+   updates = evas_render_updates(ee->evas);
+   rend = _render_updates_process(ee, updates);
+   evas_render_updates_free(updates);
+
    return rend;
 }
 
@@ -219,7 +170,7 @@ _ecore_evas_resize_common(Ecore_Evas *ee,
      {
         ee->w = w;
         ee->h = h;
-        if (ee->prop.window && resize_cocoa)
+        if (resize_cocoa)
           ecore_cocoa_window_resize((Ecore_Cocoa_Window *)ee->prop.window, w, 
h);
 
         if (ECORE_EVAS_PORTRAIT(ee))
@@ -339,6 +290,12 @@ _ecore_evas_cocoa_free(Ecore_Evas *ee)
 }
 
 static void
+_ecore_evas_callback_resize_set(Ecore_Evas *ee, Ecore_Evas_Event_Cb func)
+{
+   if (ee) ee->func.fn_resize = func;
+}
+
+static void
 _ecore_evas_size_min_set(Ecore_Evas *ee, int w, int h)
 {
    ecore_cocoa_window_size_min_set((Ecore_Cocoa_Window *)ee->prop.window, w, 
h);
@@ -400,12 +357,21 @@ static void
 _ecore_evas_show(Ecore_Evas *ee)
 {
    DBG("");
+
+   if (ee->visible) return;
+   ee->visible = 1;
    ee->should_be_visible = 1;
-   if (ee->prop.avoid_damage)
-     _ecore_evas_cocoa_render(ee);
+   ee->draw_ok = EINA_TRUE;
 
    ecore_cocoa_window_show((Ecore_Cocoa_Window *)ee->prop.window);
    evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+
+   _ecore_evas_cocoa_render(ee);
+
+   ee->prop.withdrawn = EINA_FALSE;
+   if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+
+   if (ee->func.fn_show) ee->func.fn_show(ee);
 }
 
 
@@ -415,7 +381,19 @@ _ecore_evas_hide(Ecore_Evas *ee)
    DBG("");
 
    ecore_cocoa_window_hide((Ecore_Cocoa_Window *)ee->prop.window);
+
+   if (ee->prop.override)
+     {
+        ee->prop.withdrawn = EINA_TRUE;
+        if (ee->func.fn_state_change) ee->func.fn_state_change(ee);
+     }
+
+   if (!ee->visible) return;
+   ee->visible = 0;
    ee->should_be_visible = 0;
+   ee->draw_ok = EINA_FALSE;
+
+   if (ee->func.fn_hide) ee->func.fn_hide(ee);
 }
 
 static void
@@ -547,7 +525,7 @@ _ecore_evas_callback_delete_request_set(Ecore_Evas *ee, 
Ecore_Evas_Event_Cb func
 static Ecore_Evas_Engine_Func _ecore_cocoa_engine_func =
   {
     _ecore_evas_cocoa_free,
-    NULL,
+    _ecore_evas_callback_resize_set,
     NULL,
     NULL,
     NULL,
@@ -657,11 +635,11 @@ ecore_evas_cocoa_new_internal(Ecore_Cocoa_Window *parent 
EINA_UNUSED, int x, int
 
    _ecore_evas_cocoa_init();
 
-   ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_cocoa_engine_func;
+   ee->engine.func = &_ecore_cocoa_engine_func;
 
    if (w < 1) w = 1;
    if (h < 1) h = 1;
-   ee->visible = 1;
+   ee->visible = 0;
    ee->x = x;
    ee->y = y;
    ee->w = w;
@@ -671,14 +649,11 @@ ecore_evas_cocoa_new_internal(Ecore_Cocoa_Window *parent 
EINA_UNUSED, int x, int
    ee->req.w = ee->w - ee->y;
    ee->req.h = ee->h;
 
-   ee->semi_sync = 1;
-
    ee->prop.max.w = 32767;
    ee->prop.max.h = 32767;
    ee->prop.layer = 4;
    ee->prop.request_pos = EINA_FALSE;
    ee->prop.sticky = EINA_FALSE;
-   ee->prop.window = 0;
    ee->prop.withdrawn = EINA_TRUE;
 
    ee->evas = evas_new();

-- 


Reply via email to