X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;ds=sidebyside;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-render-surface.h;h=194e1d91e6bbf8ad093f2b551f12c05c91da25c2;hb=3c63fbf108561366679ff4379d3b155b0bc0fc99;hp=9357b41e7dcd661649af280e9040559745216875;hpb=e9671cf8ede5926f442814dba2c1e74e4156919a;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 old mode 100644 new mode 100755 index 9357b41..194e1d9 --- a/dali/internal/window-system/common/window-render-surface.h +++ b/dali/internal/window-system/common/window-render-surface.h @@ -19,13 +19,19 @@ */ // INTERNAL INCLUDES -#include +#include + +#ifdef DALI_ADAPTOR_COMPILATION #include +#include +#else +#include +#include +#endif // EXTERNAL INCLUDES #include #include -#include namespace Dali { @@ -38,11 +44,12 @@ 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: @@ -111,82 +118,107 @@ public: // API */ OutputSignalType& OutputTransformedSignal(); -public: // from Dali::RenderSurface +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() + * @brief Return the orientation of the surface. + * @return The orientation */ - virtual void InitializeEgl( EglInterface& egl ) override; + virtual int GetOrientation() const override; /** - * @copydoc Dali::RenderSurface::CreateEglSurface() + * @copydoc Dali::Integration::RenderSurface::InitializeGraphics() */ - virtual void CreateEglSurface( EglInterface& egl ) override; + virtual void InitializeGraphics() override; /** - * @copydoc Dali::RenderSurface::DestroyEglSurface() + * @copydoc Dali::Integration::RenderSurface::CreateSurface() */ - virtual void DestroyEglSurface( EglInterface& egl ) override; + virtual void CreateSurface() override; /** - * @copydoc Dali::RenderSurface::ReplaceEGLSurface() + * @copydoc Dali::Integration::RenderSurface::DestroySurface() */ - virtual bool ReplaceEGLSurface( EglInterface& egl ) override; + virtual void DestroySurface() override; /** - * @copydoc Dali::RenderSurface::MoveResize() + * @copydoc Dali::Integration::RenderSurface::ReplaceGraphicsSurface() */ - virtual void MoveResize( Dali::PositionSize positionSize) override; + virtual bool ReplaceGraphicsSurface() override; /** - * @copydoc Dali::RenderSurface::SetViewMode() + * @copydoc Dali::Integration::RenderSurface::MoveResize() */ - virtual void SetViewMode( ViewMode viewMode ) override; + virtual void MoveResize( Dali::PositionSize positionSize) 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 RenderSurface::Type GetSurfaceType() override; + virtual void MakeContextCurrent() override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetDepthBufferRequired() + */ + virtual Integration::DepthBufferAvailable GetDepthBufferRequired() override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetStencilBufferRequired() + */ + virtual Integration::StencilBufferAvailable GetStencilBufferRequired() override; + + /** + * @copydoc Dali::Integration::RenderSurface::SetDamagedRect() + */ + virtual void SetDamagedRect( const Dali::DamagedRect& damagedRect, Dali::DamagedRect& mergedRect ) override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetBufferAge() + */ + virtual int32_t GetBufferAge() override; private: @@ -205,6 +237,11 @@ private: */ void ProcessRotationRequest(); + /* + * @brief MergeRect + */ + std::vector MergeRect( const Rect& damagedRectArray, int bufferAge ); + protected: // Undefined @@ -215,21 +252,32 @@ 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; + int mBufferAge; + int mPreBufferAge; bool mOwnSurface; ///< Whether we own the surface (responsible for deleting it) bool mRotationSupported; bool mRotationFinished; bool mScreenRotationFinished; bool mResizeFinished; + uint32_t mDpiHorizontal; + uint32_t mDpiVertical; + + Rect mPreDamagedRect[5]; ///< The GPU driver can has up to four buffers. And one is for area calculation. }; // class WindowRenderSurface } // namespace Adaptor