X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fwindow-system%2Ftizen-wayland%2Fnative-render-surface-ecore-wl.h;h=f33588e362a861aeb406fd9a5a576981d2341806;hb=53f2d4669d89289385ebe89dbf4be985dca54d90;hp=ae524436138e62da0b9532b641d7d65583508def;hpb=5c20957f93fefc2c9d7ec3698521b2ee4b854300;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.h b/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.h index ae52443..f33588e 100644 --- a/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.h +++ b/dali/internal/window-system/tizen-wayland/native-render-surface-ecore-wl.h @@ -2,7 +2,7 @@ #define DALI_INTERNAL_WINDOWSYSTEM_TIZENWAYLAND_NATIVE_SURFACE_ECORE_WL_H /* - * Copyright (c) 2018 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -19,16 +19,20 @@ */ // EXTERNAL INCLUDES +#include #include #include -#include // INTERNAL INCLUDES +#include +#include +#include #include -#include namespace Dali { +class DisplayConnection; +class EglInterface; /** * Ecore Wayland Native implementation of render surface. @@ -36,16 +40,13 @@ namespace Dali class NativeRenderSurfaceEcoreWl : public Dali::NativeRenderSurface { public: - /** * Uses an Wayland surface to render to. - * @param [in] positionSize the position and size of the surface - * @param [in] name optional name of surface passed in + * @param [in] surfaceSize the size of the surface + * @param [in] surface the native surface handle * @param [in] isTransparent if it is true, surface has 32 bit color depth, otherwise, 24 bit */ - NativeRenderSurfaceEcoreWl( Dali::PositionSize positionSize, - const std::string& name, - bool isTransparent = false ); + NativeRenderSurfaceEcoreWl(SurfaceSize surfaceSize, Any surface, bool isTransparent = false); /** * @brief Destructor @@ -53,126 +54,127 @@ public: virtual ~NativeRenderSurfaceEcoreWl(); public: // from WindowRenderSurface - /** - * @copydoc Dali::NativeRenderSurface::GetSurface() + * @copydoc Dali::NativeRenderSurface::SetRenderNotification() */ - virtual Any GetDrawable() override; + void SetRenderNotification(TriggerEventInterface* renderNotification) override; /** - * @copydoc Dali::NativeRenderSurface::SetRenderNotification() + * @copydoc Dali::NativeRenderSurface::GetNativeRenderable() */ - virtual void SetRenderNotification( TriggerEventInterface* renderNotification ) override; + virtual Any GetNativeRenderable() override; +public: // from Dali::RenderSurfaceInterface /** - * @copydoc Dali::NativeRenderSurface::WaitUntilSurfaceReplaced() + * @copydoc Dali::RenderSurfaceInterface::GetPositionSize() */ - virtual void WaitUntilSurfaceReplaced() override; - -public: // from Dali::RenderSurface + PositionSize GetPositionSize() const override; /** - * @copydoc Dali::RenderSurface::GetPositionSize() + * @copydoc Dali::RenderSurfaceInterface::GetDpi() */ - virtual PositionSize GetPositionSize() const override; + void GetDpi(unsigned int& dpiHorizontal, unsigned int& dpiVertical) override; /** - * @copydoc Dali::RenderSurface::GetDpi() + * @copydoc Dali::RenderSurfaceInterface::GetOrientation() */ - virtual void GetDpi( unsigned int& dpiHorizontal, unsigned int& dpiVertical ) override; + int GetOrientation() const override; /** - * @copydoc Dali::RenderSurface::InitializeEgl() + * @copydoc Dali::RenderSurfaceInterface::InitializeGraphics() */ - virtual void InitializeEgl( EglInterface& egl ) override; + void InitializeGraphics() override; /** - * @copydoc Dali::RenderSurface::CreateEglSurface() + * @copydoc Dali::RenderSurfaceInterface::CreateSurface() */ - virtual void CreateEglSurface( EglInterface& egl ) override; + void CreateSurface() override; /** - * @copydoc Dali::RenderSurface::DestroyEglSurface() + * @copydoc Dali::RenderSurfaceInterface::DestroySurface() */ - virtual void DestroyEglSurface( EglInterface& egl ) override; + void DestroySurface() override; /** - * @copydoc Dali::RenderSurface::ReplaceEGLSurface() + * @copydoc Dali::RenderSurfaceInterface::ReplaceGraphicsSurface() */ - virtual bool ReplaceEGLSurface( EglInterface& egl ) override; + bool ReplaceGraphicsSurface() override; /** - * @copydoc Dali::RenderSurface::MoveResize() + * @copydoc Dali::RenderSurfaceInterface::MoveResize() */ - virtual void MoveResize( Dali::PositionSize positionSize) override; + void MoveResize(Dali::PositionSize positionSize) override; /** - * @copydoc Dali::RenderSurface::SetViewMode() + * @copydoc Dali::RenderSurfaceInterface::StartRender() */ - virtual void SetViewMode( ViewMode viewMode ) override; + void StartRender() override; /** - * @copydoc Dali::RenderSurface::StartRender() + * @copydoc Dali::RenderSurfaceInterface::PreRender() */ - virtual void StartRender() override; + bool PreRender(bool resizingSurface, const std::vector>& damagedRects, Rect& clippingRect) override; /** - * @copydoc Dali::RenderSurface::PreRender() + * @copydoc Dali::RenderSurfaceInterface::PostRender() */ - virtual bool PreRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, bool resizingSurface ) override; + void PostRender() override; /** - * @copydoc Dali::RenderSurface::PostRender() + * @copydoc Dali::RenderSurfaceInterface::StopRender() */ - virtual void PostRender( EglInterface& egl, Integration::GlAbstraction& glAbstraction, DisplayConnection* displayConnection, bool replacingSurface, bool resizingSurface ) override; + void StopRender() override; /** - * @copydoc Dali::RenderSurface::StopRender() + * @copydoc Dali::RenderSurfaceInterface::SetThreadSynchronization */ - virtual void StopRender() override; + void SetThreadSynchronization(ThreadSynchronizationInterface& threadSynchronization) override; /** - * @copydoc Dali::RenderSurface::SetThreadSynchronization + * @copydoc Dali::RenderSurfaceInterface::GetSurfaceType() */ - virtual void SetThreadSynchronization( ThreadSynchronizationInterface& threadSynchronization )override; + Dali::RenderSurfaceInterface::Type GetSurfaceType() override; /** - * @copydoc Dali::RenderSurface::GetSurfaceType() + * @copydoc Dali::RenderSurfaceInterface::MakeContextCurrent() */ - virtual RenderSurface::Type GetSurfaceType() override; + void MakeContextCurrent() override; -private: + /** + * @copydoc Dali::RenderSurfaceInterface::GetDepthBufferRequired() + */ + Integration::DepthBufferAvailable GetDepthBufferRequired() override; /** - * @copydoc Dali::RenderSurface::ReleaseLock() + * @copydoc Dali::RenderSurfaceInterface::GetStencilBufferRequired() */ - virtual void ReleaseLock() override; + Integration::StencilBufferAvailable GetStencilBufferRequired() override; +private: /** - * @copydoc Dali::NativeRenderSurface::CreateNativeRenderable() + * @copydoc Dali::RenderSurfaceInterface::ReleaseLock() */ - virtual void CreateNativeRenderable() override; + void ReleaseLock() override; /** - * @copydoc Dali::NativeRenderSurface::ReleaseDrawable() + * @copydoc Dali::NativeRenderSurface::CreateNativeRenderable() */ - virtual void ReleaseDrawable() override; + void CreateNativeRenderable() override; private: // Data - - PositionSize mPosition; - std::string mTitle; - TriggerEventInterface* mRenderNotification; - ColorDepth mColorDepth; - tbm_format mTbmFormat; - bool mOwnSurface; - bool mDrawableCompleted; + SurfaceSize mSurfaceSize; + TriggerEventInterface* mRenderNotification; + Internal::Adaptor::GraphicsInterface* mGraphics; ///< The graphics interface + EglInterface* mEGL; + EGLSurface mEGLSurface; + EGLContext mEGLContext; + ColorDepth mColorDepth; + tbm_format mTbmFormat; + bool mOwnSurface; + std::vector> mDamagedRects{}; ///< Keeps collected damaged render items rects for one render pass tbm_surface_queue_h mTbmQueue; - tbm_surface_h mConsumeSurface; - ThreadSynchronizationInterface* mThreadSynchronization; ///< A pointer to the thread-synchronization - ConditionalWait mTbmSurfaceCondition; - + ThreadSynchronizationInterface* mThreadSynchronization; ///< A pointer to the thread-synchronization }; } // namespace Dali