e_comp_canvas: Add API to push/pop/get norender state. 78/75578/2
authorSeunghun Lee <shiin.lee@samsung.com>
Mon, 20 Jun 2016 12:19:28 +0000 (21:19 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 21 Jun 2016 11:02:59 +0000 (04:02 -0700)
This APIs are added to intend to stop rendering for rotation.

Change-Id: Icd7428b6421eec336159c6492a295e9da7c6d46c

src/bin/e_comp.h
src/bin/e_comp_canvas.c
src/bin/e_comp_canvas.h

index 9f1c53f8ecfeed46fa25d4aa33e9b9f45425beb7..b3bd92f70783f1bd4d99d89f98fcc34876020672 100644 (file)
@@ -159,6 +159,8 @@ struct _E_Comp
 
    Eina_List      *connected_clients;
    Eina_List      *launchscrns; // list of dummy clients for launchscreen image.
+
+   int norender;
 };
 
 struct _E_Comp_Connected_Client_Info
index dc2f36d0164b225aa62944cb57db2baf64eeeb5c..95562c9260b9586dbcd46b8d21418268f8c28a31 100644 (file)
@@ -701,3 +701,28 @@ e_comp_canvas_feed_mouse_up(unsigned int activate_time)
          evas_event_feed_mouse_up(e_comp->evas, i + 1, EVAS_BUTTON_NONE, activate_time, NULL);
      }
 }
+
+E_API void
+e_comp_canvas_norender_push(void)
+{
+   e_comp->norender++;
+   if (e_comp->norender == 1)
+     ecore_evas_manual_render_set(e_comp->ee, EINA_TRUE);
+}
+
+E_API void
+e_comp_canvas_norender_pop(void)
+{
+   if (e_comp->norender <= 0)
+     return;
+
+   e_comp->norender--;
+   if (e_comp->norender == 0)
+     ecore_evas_manual_render_set(e_comp->ee, EINA_FALSE);
+}
+
+E_API int
+e_comp_canvas_norender_get(void)
+{
+   return e_comp->norender;
+}
index d648e0be6283ffaca070c58160a6c8e3ab0f218d..2477681098465f3adfcf91c6777bb0c29159db9f 100644 (file)
@@ -28,6 +28,10 @@ E_API void e_comp_canvas_keys_grab(void);
 E_API void e_comp_canvas_keys_ungrab(void);
 E_API void e_comp_canvas_feed_mouse_up(unsigned int activate_time);
 
+E_API void  e_comp_canvas_norender_push(void);
+E_API void  e_comp_canvas_norender_pop(void);
+E_API int   e_comp_canvas_norender_get(void);
+
 /* the following functions are used for adjusting root window coordinates
  * to/from canvas coordinates.
  * this ensures correct positioning when running E as a nested compositor