X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Fcommon%2Fwindow-render-surface.h;h=41d7ccba8d1b7f479bb01303db1819ad829955ba;hb=eb7c98d6eb61212e10a62ddd88f36b69f74a4e2f;hp=a1ba715aca0979e677ef6e856ae5e2f22f6f3c6e;hpb=361480c3a72b189b3c11980de011d233b4aea721;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 a1ba715..41d7ccb --- a/dali/internal/window-system/common/window-render-surface.h +++ b/dali/internal/window-system/common/window-render-surface.h @@ -19,15 +19,20 @@ */ // INTERNAL INCLUDES -#include -#include #include +#ifdef DALI_ADAPTOR_COMPILATION +#include +#include +#else +#include +#include +#endif + // EXTERNAL INCLUDES #include #include - namespace Dali { @@ -39,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: @@ -112,10 +118,10 @@ 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; @@ -124,64 +130,95 @@ public: // from Dali::RenderSurface virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override; /** - * @copydoc Dali::RenderSurface::InitializeGraphics() + * @brief Return the orientation of the surface. + * @return The orientation + */ + virtual int GetOrientation() const override; + + /** + * @copydoc Dali::Integration::RenderSurface::InitializeGraphics() */ - virtual void InitializeGraphics( GraphicsInterface& graphics, Dali::DisplayConnection& displayConnection ) override; + virtual void InitializeGraphics() override; /** - * @copydoc Dali::RenderSurface::CreateSurface() + * @copydoc Dali::Integration::RenderSurface::CreateSurface() */ virtual void CreateSurface() override; /** - * @copydoc Dali::RenderSurface::DestroySurface() + * @copydoc Dali::Integration::RenderSurface::DestroySurface() */ virtual void DestroySurface() override; /** - * @copydoc Dali::RenderSurface::ReplaceGraphicsSurface() + * @copydoc Dali::Integration::RenderSurface::ReplaceGraphicsSurface() */ virtual bool ReplaceGraphicsSurface() override; /** - * @copydoc Dali::RenderSurface::MoveResize() + * @copydoc Dali::Integration::RenderSurface::MoveResize() */ 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( bool resizingSurface ) override; /** - * @copydoc Dali::RenderSurface::PostRender() + * @copydoc Dali::Integration::RenderSurface::PostRender() */ 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 RenderSurface::Type GetSurfaceType() override; + virtual Integration::DepthBufferAvailable GetDepthBufferRequired() override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetStencilBufferRequired() + */ + virtual Integration::StencilBufferAvailable GetStencilBufferRequired() override; + + /** + * @copydoc Dali::Integration::RenderSurface::SetDamagedRect() + */ + virtual Rect SetDamagedRect( const Rect& damagedRectArray ) override; + + /** + * @copydoc Dali::Integration::RenderSurface::GetBufferAge() + */ + virtual int32_t GetBufferAge() override; private: @@ -200,6 +237,11 @@ private: */ void ProcessRotationRequest(); + /* + * @brief MergeRect + */ + std::vector MergeRect( const Rect& damagedRectArray, int bufferAge ); + protected: // Undefined @@ -210,22 +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