X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=adaptors%2Fecore%2Fwayland%2Fwindow-render-surface.h;h=969141b7b90009dcb49dbdc35b2e238dc6349d64;hb=88d565576965f2b4a0a5c1cb870606194cd7b241;hp=8fa093a8141e6e24c18b01e53a39bd3601d0a7fc;hpb=7a3284c4213a4e3b705a8c2440fd8e9c8ffdc72c;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 8fa093a..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 { @@ -75,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 /** @@ -115,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() @@ -149,10 +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; + 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