X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fecore%2Fwayland%2Fwindow-render-surface.h;h=969141b7b90009dcb49dbdc35b2e238dc6349d64;hb=88d565576965f2b4a0a5c1cb870606194cd7b241;hp=7aea88bc7982eaee2567ba99687fa17e4399e58d;hpb=0144adc8c7632627e9dc9b1c165fa11da3ecaba2;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/adaptors/ecore/wayland/window-render-surface.h b/adaptors/ecore/wayland/window-render-surface.h index 7aea88b..969141b 100644 --- a/adaptors/ecore/wayland/window-render-surface.h +++ b/adaptors/ecore/wayland/window-render-surface.h @@ -2,7 +2,7 @@ #define __DALI_INTERNAL_ECORE_WL_WINDOW_RENDER_SURFACE_H__ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2017 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,9 +18,12 @@ * */ +// EXTERNAL INCLUDES +#include + // INTERNAL INCLUDES #include -#include +#include namespace Dali { @@ -61,12 +64,6 @@ public: // API virtual Ecore_Wl_Window* GetDrawable(); /** - * Request to approve deiconify operation - * If it is requested, it will send ECORE_X_ATOM_E_DEICONIFY_APPROVE event to window manager after rendering - */ - void RequestToApproveDeiconify(); - - /** * Map window */ virtual void Map(); @@ -81,6 +78,26 @@ public: // API */ virtual Ecore_Wl_Window* GetWlWindow(); + /** + * Request surface rotation + * @param[in] angle A new angle of the surface + * @param[in] width A new width of the surface + * @param[in] height A new height of the surface + */ + void RequestRotation( int angle, int width, int height ); + + /** + * Notify output is transformed. + */ + void OutputTransformed(); + + /** + * @brief Sets whether the surface is transparent or not. + * + * @param[in] transparent Whether the surface is transparent + */ + void SetTransparency( bool transparent ); + public: // from Dali::RenderSurface /** @@ -121,12 +138,12 @@ public: // from Dali::RenderSurface /** * @copydoc Dali::RenderSurface::PreRender() */ - virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction ); + virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ); /** * @copydoc Dali::RenderSurface::PostRender() */ - virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface ); + virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface, bool resizingSurface ); /** * @copydoc Dali::RenderSurface::StopRender() @@ -155,11 +172,26 @@ protected: */ virtual void UseExistingRenderable( unsigned int surfaceId ); +private: + + /** + * Used as the callback for the rotation-trigger. + */ + void ProcessRotationRequest(); + private: // Data - Ecore_Wl_Window* mWlWindow; ///< Wayland-Window - wl_egl_window* mEglWindow; - bool mNeedToApproveDeiconify; ///< Whether need to send ECORE_X_ATOM_E_DEICONIFY_APPROVE event + Ecore_Wl_Window* mWlWindow; ///< Wayland-Window + wl_surface* mWlSurface; + wl_egl_window* mEglWindow; + ThreadSynchronizationInterface* mThreadSynchronization; + TriggerEventInterface* mRotationTrigger; + int mRotationAngle; + int mScreenRotationAngle; + bool mRotationSupported; + bool mRotationFinished; + bool mScreenRotationFinished; + bool mResizeFinished; }; // class WindowRenderSurface @@ -167,4 +199,4 @@ private: // Data } // namespace Dali -#endif // __DALI_INTERNAL_ECORE_X_WINDOW_RENDER_SURFACE_H__ +#endif // __DALI_INTERNAL_ECORE_WL_WINDOW_RENDER_SURFACE_H__