X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-render-surface.h;h=f8160b8cbeb8063f0480f9f3c3b88164813a8d70;hb=c12c1126016b3e49cf1237064f4b7ce5c302e0e4;hp=5c87efe05d5fbfe7d021f8b395b497daca3d99cc;hpb=116fbd0c8799b78ecfe44724bd0ee24b3d8d9340;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/common/window-render-surface.h b/dali/internal/window-system/common/window-render-surface.h index 5c87efe..f8160b8 100644 --- a/dali/internal/window-system/common/window-render-surface.h +++ b/dali/internal/window-system/common/window-render-surface.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_WINDOWSYSTEM_COMMON_WINDOW_RENDER_SURFACE_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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,13 +18,14 @@ * */ -// INTERNAL INCLUDES -#include -#include - // EXTERNAL INCLUDES #include -#include +#include + +// INTERNAL INCLUDES +#include +#include +#include namespace Dali { @@ -37,14 +38,17 @@ namespace Adaptor { class WindowBase; +class AdaptorInternalServices; /** * Window interface of render surface. */ -class WindowRenderSurface : public Dali::RenderSurface, public ConnectionTracker +class WindowRenderSurface : public Dali::RenderSurfaceInterface, public ConnectionTracker { public: + typedef Signal< void ( ) > OutputSignalType; + /** * Uses an window surface to render to. * @param [in] positionSize the position and size of the surface @@ -103,82 +107,96 @@ public: // API */ WindowBase* GetWindowBase(); -public: // from Dali::RenderSurface + /** + * @brief This signal is emitted when the output is transformed. + */ + OutputSignalType& OutputTransformedSignal(); + +public: // from Dali::RenderSurfaceInterface /** - * @copydoc Dali::RenderSurface::GetPositionSize() + * @copydoc Dali::RenderSurfaceInterface::GetPositionSize() */ virtual PositionSize GetPositionSize() const override; /** - * @copydoc Dali::RenderSurface::GetDpi() */ virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override; /** - * @copydoc Dali::RenderSurface::InitializeEgl() + * @copydoc Dali::RenderSurfaceInterface::InitializeGraphics() */ - virtual void InitializeEgl( EglInterface& egl ) override; + virtual void InitializeGraphics() override; /** - * @copydoc Dali::RenderSurface::CreateEglSurface() + * @copydoc Dali::RenderSurfaceInterface::CreateSurface() */ - virtual void CreateEglSurface( EglInterface& egl ) override; + virtual void CreateSurface() override; /** - * @copydoc Dali::RenderSurface::DestroyEglSurface() + * @copydoc Dali::RenderSurfaceInterface::DestroySurface() */ - virtual void DestroyEglSurface( EglInterface& egl ) override; + virtual void DestroySurface() override; /** - * @copydoc Dali::RenderSurface::ReplaceEGLSurface() + * @copydoc Dali::RenderSurfaceInterface::ReplaceGraphicsSurface() */ - virtual bool ReplaceEGLSurface( EglInterface& egl ) override; + virtual bool ReplaceGraphicsSurface() override; /** - * @copydoc Dali::RenderSurface::MoveResize() + * @copydoc Dali::RenderSurfaceInterface::MoveResize() */ virtual void MoveResize( Dali::PositionSize positionSize) override; /** - * @copydoc Dali::RenderSurface::SetViewMode() - */ - virtual void SetViewMode( ViewMode viewMode ) override; - - /** - * @copydoc Dali::RenderSurface::StartRender() + * @copydoc Dali::RenderSurfaceInterface::StartRender() */ virtual void StartRender() override; /** - * @copydoc Dali::RenderSurface::PreRender() + * @copydoc Dali::RenderSurfaceInterface::PreRender() */ - virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ) override; + virtual bool PreRender( bool resizingSurface ) override; /** - * @copydoc Dali::RenderSurface::PostRender() + * @copydoc Dali::RenderSurfaceInterface::PostRender() */ - virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, Dali::DisplayConnection* displayConnection, bool replacingSurface, bool resizingSurface ) override; + virtual void PostRender( bool renderToFbo, bool replacingSurface, bool resizingSurface ); /** - * @copydoc Dali::RenderSurface::StopRender() + * @copydoc Dali::RenderSurfaceInterface::StopRender() */ virtual void StopRender() override; /** - * @copydoc Dali::RenderSurface::SetThreadSynchronization + * @copydoc Dali::RenderSurfaceInterface::SetThreadSynchronization */ virtual void SetThreadSynchronization( ThreadSynchronizationInterface& threadSynchronization ) override; /** - * @copydoc Dali::RenderSurface::ReleaseLock() + * @copydoc Dali::RenderSurfaceInterface::ReleaseLock() */ virtual void ReleaseLock() override; /** - * @copydoc Dali::RenderSurface::GetSurfaceType() + * @copydoc Dali::RenderSurfaceInterface::GetSurfaceType() */ - virtual RenderSurface::Type GetSurfaceType() override; + virtual Dali::RenderSurfaceInterface::Type GetSurfaceType() override; + + /** + * @copydoc Dali::RenderSurfaceInterface::MakeContextCurrent() + */ + virtual void MakeContextCurrent() override; + + /** + * @copydoc Dali::RenderSurfaceInterface::GetDepthBufferRequired() + */ + virtual Integration::DepthBufferAvailable GetDepthBufferRequired() override; + + /** + * @copydoc Dali::RenderSurfaceInterface::GetStencilBufferRequired() + */ + virtual Integration::StencilBufferAvailable GetStencilBufferRequired() override; private: @@ -207,12 +225,18 @@ protected: private: // Data + EglInterface* mEGL; + Dali::DisplayConnection* mDisplayConnection; PositionSize mPositionSize; ///< Position std::unique_ptr< WindowBase > mWindowBase; ThreadSynchronizationInterface* mThreadSynchronization; TriggerEventInterface* mRenderNotification; ///< Render notification trigger TriggerEventInterface* mRotationTrigger; + GraphicsInterface* mGraphics; ///< Graphics interface + EGLSurface mEGLSurface; + EGLContext mEGLContext; ColorDepth mColorDepth; ///< Color depth of surface (32 bit or 24 bit) + OutputSignalType mOutputTransformedSignal; int mRotationAngle; int mScreenRotationAngle; bool mOwnSurface; ///< Whether we own the surface (responsible for deleting it) @@ -221,6 +245,9 @@ private: // Data bool mScreenRotationFinished; bool mResizeFinished; + uint32_t mDpiHorizontal; + uint32_t mDpiVertical; + }; // class WindowRenderSurface } // namespace Adaptor