e_hwc_window: add e_hwc_window_transition_get/set func
authorChangyeon Lee <cyeon.lee@samsung.com>
Fri, 25 Jan 2019 11:58:34 +0000 (20:58 +0900)
committerSooChan Lim <sc1.lim@samsung.com>
Fri, 12 Apr 2019 10:00:22 +0000 (19:00 +0900)
Change-Id: I2a55c748d92f3dab6e9b4243f582cf64eb174a48

src/bin/e_hwc_window.c
src/bin/e_hwc_window.h
src/bin/e_hwc_windows.c

index 0e831c982feda2608b551d6a88f654d0b7aebd02..eac027a8586e39091cadf520df1d8a47a5e15b1c 100644 (file)
@@ -1404,6 +1404,26 @@ e_hwc_window_device_state_available_check(E_Hwc_Window *hwc_window)
    return EINA_TRUE;
 }
 
+EINTERN Eina_Bool
+e_hwc_window_transition_set(E_Hwc_Window *hwc_window, E_Hwc_Window_Transition transition)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, EINA_FALSE);
+
+   if (hwc_window->transition == transition) return EINA_TRUE;
+
+   hwc_window->transition = transition;
+
+   return EINA_TRUE;
+}
+
+EINTERN E_Hwc_Window_Transition
+e_hwc_window_transition_get(E_Hwc_Window *hwc_window)
+{
+   EINA_SAFETY_ON_NULL_RETURN_VAL(hwc_window, E_HWC_WINDOW_STATE_NONE);
+
+   return hwc_window->transition;
+}
+
 EINTERN Eina_Bool
 e_hwc_window_constraints_update(E_Hwc_Window *hwc_window)
 {
index 610278b564ea91fbfe777cc9d8cb631479edfc38..4b24594c97b879b6e75dd2f9033f3f75d09947b7 100644 (file)
@@ -146,49 +146,51 @@ struct _E_Hwc_Window_Commit_Data {
    tdm_hwc_window_info    info;
 };
 
-EINTERN Eina_Bool          e_hwc_window_init(E_Hwc *hwc);
-EINTERN void               e_hwc_window_deinit(E_Hwc *hwc); // TODO:
-
-EINTERN E_Hwc_Window      *e_hwc_window_new(E_Hwc *hwc, E_Client *ec, E_Hwc_Window_State state);
-EINTERN void               e_hwc_window_free(E_Hwc_Window *hwc_window);
-
-EINTERN Eina_Bool          e_hwc_window_zpos_set(E_Hwc_Window *hwc_window, int zpos);
-EINTERN int                e_hwc_window_zpos_get(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_composition_update(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_info_update(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_buffer_fetch(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_prop_update(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_is_target(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_is_video(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_is_cursor(E_Hwc_Window *hwc_window);
-
-EINTERN Eina_Bool          e_hwc_window_commit_data_acquire(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_commit_data_release(E_Hwc_Window *hwc_window);
-
-EINTERN Eina_Bool          e_hwc_window_activate(E_Hwc_Window *hwc_window, E_Hwc_Window_Queue *queue);
-EINTERN Eina_Bool          e_hwc_window_deactivate(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_is_on_hw_overlay(E_Hwc_Window *hwc_window);
-EINTERN tbm_surface_h      e_hwc_window_displaying_surface_get(E_Hwc_Window *hwc_window);
-
-EINTERN Eina_Bool          e_hwc_window_state_set(E_Hwc_Window *hwc_window, E_Hwc_Window_State state, Eina_Bool composition_update);
-EINTERN E_Hwc_Window_State e_hwc_window_state_get(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_accepted_state_set(E_Hwc_Window *hwc_window, E_Hwc_Window_State state);
-EINTERN E_Hwc_Window_State e_hwc_window_accepted_state_get(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_device_state_available_check(E_Hwc_Window *hwc_window);
-
-EINTERN Eina_Bool          e_hwc_window_constraints_update(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_rendered_window_update(E_Hwc_Window *hwc_window);
-EINTERN void               e_hwc_window_buffer_set(E_Hwc_Window *hwc_window, tbm_surface_h tsurface, E_Hwc_Window_Queue *queue);
-EINTERN const char        *e_hwc_window_state_string_get(E_Hwc_Window_State hwc_window_state);
-EINTERN const char        *e_hwc_window_name_get(E_Hwc_Window *hwc_window);
-EINTERN void               e_hwc_window_name_set(E_Hwc_Window *hwc_window);
-EINTERN Eina_Bool          e_hwc_window_set_property(E_Hwc_Window *hwc_window, unsigned int id, const char *name, tdm_value value, Eina_Bool force);
-
-EINTERN E_Hwc_Window_Hook *e_hwc_window_hook_add(E_Hwc_Window_Hook_Point hookpoint, E_Hwc_Window_Hook_Cb func, const void *data);
-EINTERN void               e_hwc_window_hook_del(E_Hwc_Window_Hook *ch);
-
-EINTERN void               e_hwc_window_trace_debug(Eina_Bool onoff);
-EINTERN void               e_hwc_window_commit_data_buffer_dump(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_init(E_Hwc *hwc);
+EINTERN void                    e_hwc_window_deinit(E_Hwc *hwc); // TODO:
+
+EINTERN E_Hwc_Window           *e_hwc_window_new(E_Hwc *hwc, E_Client *ec, E_Hwc_Window_State state);
+EINTERN void                    e_hwc_window_free(E_Hwc_Window *hwc_window);
+
+EINTERN Eina_Bool               e_hwc_window_zpos_set(E_Hwc_Window *hwc_window, int zpos);
+EINTERN int                     e_hwc_window_zpos_get(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_composition_update(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_info_update(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_buffer_fetch(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_prop_update(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_is_target(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_is_video(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_is_cursor(E_Hwc_Window *hwc_window);
+
+EINTERN Eina_Bool               e_hwc_window_commit_data_acquire(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_commit_data_release(E_Hwc_Window *hwc_window);
+
+EINTERN Eina_Bool               e_hwc_window_activate(E_Hwc_Window *hwc_window, E_Hwc_Window_Queue *queue);
+EINTERN Eina_Bool               e_hwc_window_deactivate(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_is_on_hw_overlay(E_Hwc_Window *hwc_window);
+EINTERN tbm_surface_h           e_hwc_window_displaying_surface_get(E_Hwc_Window *hwc_window);
+
+EINTERN Eina_Bool               e_hwc_window_state_set(E_Hwc_Window *hwc_window, E_Hwc_Window_State state, Eina_Bool composition_update);
+EINTERN E_Hwc_Window_State      e_hwc_window_state_get(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_accepted_state_set(E_Hwc_Window *hwc_window, E_Hwc_Window_State state);
+EINTERN E_Hwc_Window_State      e_hwc_window_accepted_state_get(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_device_state_available_check(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_transition_set(E_Hwc_Window *hwc_window, E_Hwc_Window_Transition transition);
+EINTERN E_Hwc_Window_Transition e_hwc_window_transition_get(E_Hwc_Window *hwc_window);
+
+EINTERN Eina_Bool               e_hwc_window_constraints_update(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_rendered_window_update(E_Hwc_Window *hwc_window);
+EINTERN void                    e_hwc_window_buffer_set(E_Hwc_Window *hwc_window, tbm_surface_h tsurface, E_Hwc_Window_Queue *queue);
+EINTERN const char             *e_hwc_window_state_string_get(E_Hwc_Window_State hwc_window_state);
+EINTERN const char             *e_hwc_window_name_get(E_Hwc_Window *hwc_window);
+EINTERN void                    e_hwc_window_name_set(E_Hwc_Window *hwc_window);
+EINTERN Eina_Bool               e_hwc_window_set_property(E_Hwc_Window *hwc_window, unsigned int id, const char *name, tdm_value value, Eina_Bool force);
+
+EINTERN E_Hwc_Window_Hook      *e_hwc_window_hook_add(E_Hwc_Window_Hook_Point hookpoint, E_Hwc_Window_Hook_Cb func, const void *data);
+EINTERN void                    e_hwc_window_hook_del(E_Hwc_Window_Hook *ch);
+
+EINTERN void                    e_hwc_window_trace_debug(Eina_Bool onoff);
+EINTERN void                    e_hwc_window_commit_data_buffer_dump(E_Hwc_Window *hwc_window);
 
 #endif // E_HWC_WINDOW_H
 #endif
index a08f72c3c4e617dd983e6fbada2b14c17de2b855..b8d558beea85d94285fce4766c098c82594bd970 100644 (file)
@@ -1338,7 +1338,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_DEVICE_TO_CLIENT);
                   transition = EINA_TRUE;
                }
           }
@@ -1348,7 +1348,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (!_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_CURSOR_TO_CLIENT;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_CURSOR_TO_CLIENT);
                   transition = EINA_TRUE;
                }
           }
@@ -1358,7 +1358,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_NONE_TO_DEVICE;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_NONE_TO_DEVICE);
                   transition = EINA_TRUE;
                }
           }
@@ -1368,7 +1368,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_NONE_TO_CURSOR;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_NONE_TO_CURSOR);
                   transition = EINA_TRUE;
                }
           }
@@ -1378,7 +1378,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_CLIENT_TO_DEVICE;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_CLIENT_TO_DEVICE);
                   transition = EINA_TRUE;
                }
           }
@@ -1388,7 +1388,7 @@ _e_hwc_windows_transition_check(E_Hwc *hwc)
           {
              if (_e_hwc_windows_target_window_rendered_window_has(hwc, hwc_window))
                {
-                  hwc_window->transition = E_HWC_WINDOW_TRANSITION_CLIENT_TO_CURSOR;
+                  e_hwc_window_transition_set(hwc_window, E_HWC_WINDOW_TRANSITION_CLIENT_TO_CURSOR);
                   transition = EINA_TRUE;
                }
           }