X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-render-surface.h;h=55bc95530aa9e94af746893f861b9a46843360c1;hb=263ec21432f3d7c9f9be5b463748fdce8f6942e4;hp=5c87efe05d5fbfe7d021f8b395b497daca3d99cc;hpb=c6b8a535a007fc0724e0d0b0b539646ba4c4c896;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..55bc955 100644 --- a/dali/internal/window-system/common/window-render-surface.h +++ b/dali/internal/window-system/common/window-render-surface.h @@ -19,12 +19,19 @@ */ // INTERNAL INCLUDES -#include +#include + +#ifdef DALI_ADAPTOR_COMPILATION #include +#include +#else +#include +#include +#endif // EXTERNAL INCLUDES #include -#include +#include namespace Dali { @@ -37,14 +44,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 +113,96 @@ public: // API */ WindowBase* GetWindowBase(); -public: // from Dali::RenderSurface + /** + * @brief This signal is emitted when the output is transformed. + */ + OutputSignalType& OutputTransformedSignal(); + +public: // from Dali::Integration::RenderSurface /** - * @copydoc Dali::RenderSurface::GetPositionSize() + * @copydoc Dali::Integration::RenderSurface::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::Integration::RenderSurface::InitializeGraphics() */ - virtual void InitializeEgl( EglInterface& egl ) override; + virtual void InitializeGraphics() override; /** - * @copydoc Dali::RenderSurface::CreateEglSurface() + * @copydoc Dali::Integration::RenderSurface::CreateSurface() */ - virtual void CreateEglSurface( EglInterface& egl ) override; + virtual void CreateSurface() override; /** - * @copydoc Dali::RenderSurface::DestroyEglSurface() + * @copydoc Dali::Integration::RenderSurface::DestroySurface() */ - virtual void DestroyEglSurface( EglInterface& egl ) override; + virtual void DestroySurface() override; /** - * @copydoc Dali::RenderSurface::ReplaceEGLSurface() + * @copydoc Dali::Integration::RenderSurface::ReplaceGraphicsSurface() */ - virtual bool ReplaceEGLSurface( EglInterface& egl ) override; + virtual bool ReplaceGraphicsSurface() override; /** - * @copydoc Dali::RenderSurface::MoveResize() + * @copydoc Dali::Integration::RenderSurface::MoveResize() */ virtual void MoveResize( Dali::PositionSize positionSize) override; /** - * @copydoc Dali::RenderSurface::SetViewMode() - */ - virtual void SetViewMode( ViewMode viewMode ) override; - - /** - * @copydoc Dali::RenderSurface::StartRender() + * @copydoc Dali::Integration::RenderSurface::StartRender() */ virtual void StartRender() override; /** - * @copydoc Dali::RenderSurface::PreRender() + * @copydoc Dali::Integration::RenderSurface::PreRender() */ - virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ) override; + virtual bool PreRender( bool resizingSurface ) override; /** - * @copydoc Dali::RenderSurface::PostRender() + * @copydoc Dali::Integration::RenderSurface::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::Integration::RenderSurface::StopRender() */ virtual void StopRender() override; /** - * @copydoc Dali::RenderSurface::SetThreadSynchronization + * @copydoc Dali::Integration::RenderSurface::SetThreadSynchronization */ virtual void SetThreadSynchronization( ThreadSynchronizationInterface& threadSynchronization ) override; /** - * @copydoc Dali::RenderSurface::ReleaseLock() + * @copydoc Dali::Integration::RenderSurface::ReleaseLock() */ virtual void ReleaseLock() override; /** - * @copydoc Dali::RenderSurface::GetSurfaceType() + * @copydoc Dali::Integration::RenderSurface::GetSurfaceType() + */ + virtual Integration::RenderSurface::Type GetSurfaceType() override; + + /** + * @copydoc Dali::Integration::RenderSurface::MakeContextCurrent() + */ + virtual void MakeContextCurrent() override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetDepthBufferRequired() + */ + virtual Integration::DepthBufferAvailable GetDepthBufferRequired() override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetStencilBufferRequired() */ - virtual RenderSurface::Type GetSurfaceType() override; + virtual Integration::StencilBufferAvailable GetStencilBufferRequired() override; private: @@ -207,12 +231,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)