From 0298046ac5d4ca308392e328d7905f82c06a930c Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Mon, 12 Jul 2021 14:37:08 +0900 Subject: [PATCH] CanvasRenderer: Add Set/GetViewBox() API Add Set/Get API to change canvas's viewbox value. Change-Id: Ie4411ac97e293beb8f7b59420a1a0ee3d0bc518e --- .../adaptor-framework/canvas-renderer.cpp | 10 +++++++++ dali/devel-api/adaptor-framework/canvas-renderer.h | 13 +++++++++++ .../common/canvas-renderer-impl.cpp | 13 +++++++++-- .../canvas-renderer/common/canvas-renderer-impl.h | 13 ++++++++--- .../generic/canvas-renderer-impl-generic.cpp | 16 ++++++++++---- .../generic/canvas-renderer-impl-generic.h | 14 ++++++++---- .../tizen/canvas-renderer-impl-tizen.cpp | 25 ++++++++++++++++++++-- .../tizen/canvas-renderer-impl-tizen.h | 10 +++++++++ .../ubuntu/canvas-renderer-impl-ubuntu.cpp | 25 ++++++++++++++++++++-- .../ubuntu/canvas-renderer-impl-ubuntu.h | 10 +++++++++ 10 files changed, 132 insertions(+), 17 deletions(-) diff --git a/dali/devel-api/adaptor-framework/canvas-renderer.cpp b/dali/devel-api/adaptor-framework/canvas-renderer.cpp index e0fb777..0445b6c 100644 --- a/dali/devel-api/adaptor-framework/canvas-renderer.cpp +++ b/dali/devel-api/adaptor-framework/canvas-renderer.cpp @@ -78,4 +78,14 @@ const Vector2& CanvasRenderer::GetSize() return GetImplementation(*this).GetSize(); } +bool CanvasRenderer::SetViewBox(const Vector2& viewBox) +{ + return GetImplementation(*this).SetViewBox(viewBox); +} + +const Vector2& CanvasRenderer::GetViewBox() +{ + return GetImplementation(*this).GetViewBox(); +} + } // namespace Dali diff --git a/dali/devel-api/adaptor-framework/canvas-renderer.h b/dali/devel-api/adaptor-framework/canvas-renderer.h index cae69df..2a7d61d 100644 --- a/dali/devel-api/adaptor-framework/canvas-renderer.h +++ b/dali/devel-api/adaptor-framework/canvas-renderer.h @@ -133,6 +133,19 @@ public: */ const Vector2& GetSize(); + /** + * @brief This is the viewbox of the Canvas. + * @param[in] viewBox The size of viewbox. + * @return Returns True when it's successful. False otherwise. + */ + bool SetViewBox(const Vector2& viewBox); + + /** + * @brief This is the viewbox of the Canvas. + * @return Returns The size of viewbox. + */ + const Vector2& GetViewBox(); + public: // Not intended for application developers /// @cond internal /** diff --git a/dali/internal/canvas-renderer/common/canvas-renderer-impl.cpp b/dali/internal/canvas-renderer/common/canvas-renderer-impl.cpp index 6ebeb90..6e66191 100644 --- a/dali/internal/canvas-renderer/common/canvas-renderer-impl.cpp +++ b/dali/internal/canvas-renderer/common/canvas-renderer-impl.cpp @@ -28,7 +28,6 @@ namespace Internal namespace Adaptor { CanvasRenderer::CanvasRenderer() -: mSize(0, 0) { } @@ -66,7 +65,17 @@ bool CanvasRenderer::SetSize(const Vector2& size) const Vector2& CanvasRenderer::GetSize() { - return mSize; + return Vector2::ZERO; +} + +bool CanvasRenderer::SetViewBox(const Vector2& viewBox) +{ + return false; +} + +const Vector2& CanvasRenderer::GetViewBox() +{ + return Vector2::ZERO; } } // namespace Adaptor diff --git a/dali/internal/canvas-renderer/common/canvas-renderer-impl.h b/dali/internal/canvas-renderer/common/canvas-renderer-impl.h index 222b9a3..b2d3239 100644 --- a/dali/internal/canvas-renderer/common/canvas-renderer-impl.h +++ b/dali/internal/canvas-renderer/common/canvas-renderer-impl.h @@ -83,13 +83,20 @@ public: */ virtual const Vector2& GetSize(); + /** + * @copydoc Dali::CanvasRenderer::SetViewBox() + */ + virtual bool SetViewBox(const Vector2& viewBox); + + /** + * @copydoc Dali::CanvasRenderer::GetViewBox() + */ + virtual const Vector2& GetViewBox(); + CanvasRenderer(const CanvasRenderer&) = delete; CanvasRenderer& operator=(CanvasRenderer&) = delete; CanvasRenderer(CanvasRenderer&&) = delete; CanvasRenderer& operator=(CanvasRenderer&&) = delete; - -private: - Vector2 mSize; }; } // namespace Adaptor diff --git a/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.cpp b/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.cpp index 5119b39..40f2e90 100644 --- a/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.cpp +++ b/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.cpp @@ -48,8 +48,6 @@ CanvasRendererGeneric* CanvasRendererGeneric::New(const Vector2& viewBox) } CanvasRendererGeneric::CanvasRendererGeneric(const Vector2& viewBox) -: mPixelBuffer(nullptr), - mSize(0, 0) { } @@ -64,7 +62,7 @@ bool CanvasRendererGeneric::Commit() Devel::PixelBuffer CanvasRendererGeneric::GetPixelBuffer() { - return mPixelBuffer; + return Devel::PixelBuffer(); } bool CanvasRendererGeneric::AddDrawable(Dali::CanvasRenderer::Drawable& drawable) @@ -89,7 +87,17 @@ bool CanvasRendererGeneric::SetSize(const Vector2& size) const Vector2& CanvasRendererGeneric::GetSize() { - return mSize; + return Vector2::ZERO; +} + +bool CanvasRendererGeneric::SetViewBox(const Vector2& viewBox) +{ + return false; +} + +const Vector2& CanvasRendererGeneric::GetViewBox() +{ + return Vector2::ZERO; } } // namespace Adaptor diff --git a/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.h b/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.h index dd290a4..3f43078 100644 --- a/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.h +++ b/dali/internal/canvas-renderer/generic/canvas-renderer-impl-generic.h @@ -81,6 +81,16 @@ public: */ const Vector2& GetSize() override; + /** + * @copydoc Dali::CanvasRenderer::SetViewBox() + */ + bool SetViewBox(const Vector2& viewBox) override; + + /** + * @copydoc Dali::CanvasRenderer::GetViewBox() + */ + const Vector2& GetViewBox() override; + private: CanvasRendererGeneric() = delete; CanvasRendererGeneric(const CanvasRendererGeneric&) = delete; @@ -97,10 +107,6 @@ private: * @brief Destructor. */ virtual ~CanvasRendererGeneric() override; - -private: - Devel::PixelBuffer mPixelBuffer; - Vector2 mSize; }; } // namespace Adaptor diff --git a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp index b38122e..2455d65 100644 --- a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp +++ b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.cpp @@ -57,8 +57,8 @@ CanvasRendererTizen::CanvasRendererTizen(const Vector2& viewBox) mTvgCanvas(nullptr), mTvgRoot(nullptr), #endif - mSize(0, 0), - mViewBox(0, 0), + mSize(Vector2::ZERO), + mViewBox(Vector2::ZERO), mChanged(false) { Initialize(viewBox); @@ -288,6 +288,27 @@ const Vector2& CanvasRendererTizen::GetSize() return mSize; } +bool CanvasRendererTizen::SetViewBox(const Vector2& viewBox) +{ + if(viewBox.width < 1.0f || viewBox.height < 1.0f) + { + return false; + } + + if(viewBox != mViewBox) + { + mViewBox = viewBox; + mChanged = true; + } + + return true; +} + +const Vector2& CanvasRendererTizen::GetViewBox() +{ + return mViewBox; +} + void CanvasRendererTizen::MakeTargetBuffer(const Vector2& size) { #ifdef THORVG_SUPPORT diff --git a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h index 5d136a7..c73e9be 100644 --- a/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h +++ b/dali/internal/canvas-renderer/tizen/canvas-renderer-impl-tizen.h @@ -86,6 +86,16 @@ public: */ const Vector2& GetSize() override; + /** + * @copydoc Dali::CanvasRenderer::SetViewBox() + */ + bool SetViewBox(const Vector2& viewBox) override; + + /** + * @copydoc Dali::CanvasRenderer::GetViewBox() + */ + const Vector2& GetViewBox() override; + private: CanvasRendererTizen() = delete; CanvasRendererTizen(const CanvasRendererTizen&) = delete; diff --git a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp index 96babe2..d97cf98 100644 --- a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp +++ b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.cpp @@ -57,8 +57,8 @@ CanvasRendererUbuntu::CanvasRendererUbuntu(const Vector2& viewBox) mTvgCanvas(nullptr), mTvgRoot(nullptr), #endif - mSize(0, 0), - mViewBox(0, 0), + mSize(Vector2::ZERO), + mViewBox(Vector2::ZERO), mChanged(false) { Initialize(viewBox); @@ -288,6 +288,27 @@ const Vector2& CanvasRendererUbuntu::GetSize() return mSize; } +bool CanvasRendererUbuntu::SetViewBox(const Vector2& viewBox) +{ + if(viewBox.width < 1.0f || viewBox.height < 1.0f) + { + return false; + } + + if(viewBox != mViewBox) + { + mViewBox = viewBox; + mChanged = true; + } + + return true; +} + +const Vector2& CanvasRendererUbuntu::GetViewBox() +{ + return mViewBox; +} + void CanvasRendererUbuntu::MakeTargetBuffer(const Vector2& size) { #ifdef THORVG_SUPPORT diff --git a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.h b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.h index bfcd6a7..22aeb10 100644 --- a/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.h +++ b/dali/internal/canvas-renderer/ubuntu/canvas-renderer-impl-ubuntu.h @@ -86,6 +86,16 @@ public: */ const Vector2& GetSize() override; + /** + * @copydoc Dali::CanvasRenderer::SetViewBox() + */ + bool SetViewBox(const Vector2& viewBox) override; + + /** + * @copydoc Dali::CanvasRenderer::GetViewBox() + */ + const Vector2& GetViewBox() override; + private: CanvasRendererUbuntu() = delete; CanvasRendererUbuntu(const CanvasRendererUbuntu&) = delete; -- 2.7.4