Merge "CanvasRenderer: Add Gradient, LinearGradient, RadialGradient classes" into...
authorjunsu choi <jsuya.choi@samsung.com>
Fri, 13 Aug 2021 00:08:38 +0000 (00:08 +0000)
committerGerrit Code Review <gerrit@review>
Fri, 13 Aug 2021 00:08:38 +0000 (00:08 +0000)
21 files changed:
dali/devel-api/adaptor-framework/accessibility-impl.cpp
dali/devel-api/adaptor-framework/canvas-renderer-drawable-group.cpp
dali/devel-api/adaptor-framework/canvas-renderer-drawable-group.h
dali/internal/adaptor/common/adaptor-impl.cpp
dali/internal/canvas-renderer/common/drawable-group-impl.cpp
dali/internal/canvas-renderer/common/drawable-group-impl.h
dali/internal/canvas-renderer/common/shape-impl.h
dali/internal/canvas-renderer/generic/drawable-group-impl-generic.cpp
dali/internal/canvas-renderer/generic/drawable-group-impl-generic.h
dali/internal/canvas-renderer/generic/shape-impl-generic.h
dali/internal/canvas-renderer/tizen/drawable-group-impl-tizen.cpp
dali/internal/canvas-renderer/tizen/drawable-group-impl-tizen.h
dali/internal/canvas-renderer/tizen/shape-impl-tizen.h
dali/internal/canvas-renderer/ubuntu/drawable-group-impl-ubuntu.cpp
dali/internal/canvas-renderer/ubuntu/drawable-group-impl-ubuntu.h
dali/internal/canvas-renderer/ubuntu/shape-impl-ubuntu.h
dali/internal/system/common/environment-options.cpp
dali/internal/system/common/environment-options.h
dali/internal/system/common/environment-variables.h
dali/public-api/dali-adaptor-version.cpp
packaging/dali-adaptor.spec

index 48b1a10..e7b72cb 100644 (file)
@@ -28,6 +28,7 @@
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/accessibility-impl.h>
+#include <dali/devel-api/adaptor-framework/window-devel.h>
 #include <dali/internal/adaptor/common/adaptor-impl.h>
 #include <dali/public-api/dali-adaptor-common.h>
 
@@ -625,7 +626,16 @@ public:
     Vector3     anchorPointOffSet       = size * (positionUsesAnchorPoint ? actor.GetCurrentProperty<Vector3>(Actor::Property::ANCHOR_POINT) : AnchorPoint::TOP_LEFT);
     Vector2     position                = Vector2(screenPosition.x - anchorPointOffSet.x, screenPosition.y - anchorPointOffSet.y);
 
-    return {position.x, position.y, size.x, size.y};
+    if(type == Dali::Accessibility::CoordinateType::WINDOW)
+    {
+      return {position.x, position.y, size.x, size.y};
+    }
+    else // Dali::Accessibility::CoordinateType::SCREEN
+    {
+      auto window = Dali::DevelWindow::Get(actor);
+      auto windowPosition = window.GetPosition();
+      return {position.x + windowPosition.GetX(), position.y + windowPosition.GetY(), size.x, size.y};
+    }
   }
 
   Dali::Accessibility::ComponentLayer GetLayer() override
index f193277..31af7f8 100644 (file)
@@ -48,6 +48,11 @@ bool CanvasRenderer::DrawableGroup::AddDrawable(Drawable& drawable)
   return GetImplementation(*this).AddDrawable(drawable);
 }
 
+bool CanvasRenderer::DrawableGroup::RemoveDrawable(Drawable drawable)
+{
+  return GetImplementation(*this).RemoveDrawable(drawable);
+}
+
 bool CanvasRenderer::DrawableGroup::RemoveAllDrawables()
 {
   return GetImplementation(*this).RemoveAllDrawables();
index 272da3b..4c35e37 100644 (file)
@@ -81,6 +81,14 @@ public:
   bool AddDrawable(Drawable& drawable);
 
   /**
+   * @brief Remove drawable object to the DrawableGroup.
+   * This method is similar to deregistration. Freeing memory is not concerned for drawables being removed.
+   * @param[in] drawable the drawable object.
+   * @return Returns True when it's successful. False otherwise.
+   */
+  bool RemoveDrawable(Drawable drawable);
+
+  /**
    * @brief Remove all drawable objects added to the DrawableGroup.
    * @return Returns True when it's successful. False otherwise.
    */
index 6338359..fabadaf 100644 (file)
@@ -290,6 +290,11 @@ void Adaptor::Initialize(GraphicsFactory& graphicsFactory)
   {
     Integration::SetLongPressMinimumHoldingTime(mEnvironmentOptions->GetLongPressMinimumHoldingTime());
   }
+  if(mEnvironmentOptions->GetTapMaximumAllowedTime() > 0)
+  {
+    Integration::SetTapMaximumAllowedTime(mEnvironmentOptions->GetTapMaximumAllowedTime());
+  }
+
 
   std::string systemCachePath = GetSystemCachePath();
   if(!systemCachePath.empty())
index e621e77..d022c51 100644 (file)
@@ -33,6 +33,11 @@ bool DrawableGroup::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
   return false;
 }
 
+bool DrawableGroup::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+  return false;
+}
+
 bool DrawableGroup::RemoveAllDrawables()
 {
   return false;
index ba8623d..dbfd0fd 100644 (file)
@@ -59,6 +59,11 @@ public:
   virtual bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable);
 
   /**
+   * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+   */
+  virtual bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable);
+
+  /**
    * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
    */
   virtual bool RemoveAllDrawables();
index f4a0628..4c22519 100644 (file)
@@ -20,7 +20,6 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/base-object.h>
-#include <dali/public-api/signals/connection-tracker.h>
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/canvas-renderer-gradient.h>
index 55ecb7d..d2de436 100644 (file)
@@ -57,6 +57,11 @@ bool DrawableGroupGeneric::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
   return false;
 }
 
+bool DrawableGroupGeneric::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+  return false;
+}
+
 bool DrawableGroupGeneric::RemoveAllDrawables()
 {
   return false;
index 677b1d2..d14a676 100644 (file)
@@ -49,6 +49,11 @@ public:
   bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
 
   /**
+   * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+   */
+  bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+  /**
    * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
    */
   bool RemoveAllDrawables() override;
index 5f8acb5..52a6eba 100644 (file)
@@ -20,7 +20,6 @@
 
 // EXTERNAL INCLUDES
 #include <dali/public-api/object/base-object.h>
-#include <dali/public-api/signals/connection-tracker.h>
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/canvas-renderer-shape.h>
index 0ced4f1..44f8794 100644 (file)
@@ -101,6 +101,26 @@ bool DrawableGroupTizen::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
 #endif
 }
 
+bool DrawableGroupTizen::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+#ifdef THORVG_SUPPORT
+  DrawableGroup::DrawableVector::iterator it = std::find(mDrawables.begin(), mDrawables.end(), drawable);
+  if(it != mDrawables.end())
+  {
+    Internal::Adaptor::Drawable& drawableImpl = Dali::GetImplementation(*it);
+    drawableImpl.SetAdded(false);
+
+    mDrawables.erase(it);
+
+    Drawable::SetChanged(true);
+
+    return true;
+  }
+
+#endif
+  return false;
+}
+
 bool DrawableGroupTizen::RemoveAllDrawables()
 {
 #ifdef THORVG_SUPPORT
index a403cbc..fccc857 100644 (file)
@@ -53,6 +53,11 @@ public:
   bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
 
   /**
+   * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+   */
+  bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+  /**
    * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
    */
   bool RemoveAllDrawables() override;
index 28026e5..a5c8dc4 100644 (file)
@@ -23,7 +23,6 @@
 #include <thorvg.h>
 #endif
 #include <dali/public-api/object/base-object.h>
-#include <dali/public-api/signals/connection-tracker.h>
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/canvas-renderer-shape.h>
index ccc590c..0bed4a6 100644 (file)
@@ -101,6 +101,26 @@ bool DrawableGroupUbuntu::AddDrawable(Dali::CanvasRenderer::Drawable& drawable)
 #endif
 }
 
+bool DrawableGroupUbuntu::RemoveDrawable(Dali::CanvasRenderer::Drawable drawable)
+{
+#ifdef THORVG_SUPPORT
+  DrawableGroup::DrawableVector::iterator it = std::find(mDrawables.begin(), mDrawables.end(), drawable);
+  if(it != mDrawables.end())
+  {
+    Internal::Adaptor::Drawable& drawableImpl = Dali::GetImplementation(*it);
+    drawableImpl.SetAdded(false);
+
+    mDrawables.erase(it);
+
+    Drawable::SetChanged(true);
+
+    return true;
+  }
+
+#endif
+  return false;
+}
+
 bool DrawableGroupUbuntu::RemoveAllDrawables()
 {
 #ifdef THORVG_SUPPORT
index 52c9608..5652501 100644 (file)
@@ -53,6 +53,11 @@ public:
   bool AddDrawable(Dali::CanvasRenderer::Drawable& drawable) override;
 
   /**
+   * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveDrawable()
+   */
+  bool RemoveDrawable(Dali::CanvasRenderer::Drawable drawable) override;
+
+  /**
    * @copydoc Dali::CanvasRenderer::DrawableGroup::RemoveAllDrawables()
    */
   bool RemoveAllDrawables() override;
index de0be0a..6efe304 100644 (file)
@@ -23,7 +23,6 @@
 #include <thorvg.h>
 #endif
 #include <dali/public-api/object/base-object.h>
-#include <dali/public-api/signals/connection-tracker.h>
 
 // INTERNAL INCLUDES
 #include <dali/devel-api/adaptor-framework/canvas-renderer-shape.h>
index 8fec77f..6de61e0 100644 (file)
@@ -238,6 +238,7 @@ EnvironmentOptions::EnvironmentOptions()
   mRotationMinimumTouchEvents(-1),
   mRotationMinimumTouchEventsAfterStart(-1),
   mLongPressMinimumHoldingTime(-1),
+  mTapMaximumAllowedTime(-1),
   mGlesCallTime(0),
   mMultiSamplingLevel(DEFAULT_MULTI_SAMPLING_LEVEL),
   mThreadingMode(ThreadingMode::COMBINED_UPDATE_RENDER),
@@ -433,6 +434,11 @@ int EnvironmentOptions::GetLongPressMinimumHoldingTime() const
   return mLongPressMinimumHoldingTime;
 }
 
+int EnvironmentOptions::GetTapMaximumAllowedTime() const
+{
+  return mTapMaximumAllowedTime;
+}
+
 unsigned int EnvironmentOptions::GetWindowWidth() const
 {
   return mWindowWidth;
@@ -556,6 +562,7 @@ void EnvironmentOptions::ParseEnvironmentOptions()
   SetFromEnvironmentVariable(DALI_ENV_ROTATION_MINIMUM_TOUCH_EVENTS_AFTER_START, mRotationMinimumTouchEventsAfterStart);
 
   SetFromEnvironmentVariable(DALI_ENV_LONG_PRESS_MINIMUM_HOLDING_TIME, mLongPressMinimumHoldingTime);
+  SetFromEnvironmentVariable(DALI_ENV_TAP_MAXIMUM_ALLOWED_TIME, mTapMaximumAllowedTime);
 
   SetFromEnvironmentVariable(DALI_GLES_CALL_TIME, mGlesCallTime);
   SetFromEnvironmentVariable<int>(DALI_GLES_CALL_ACCUMULATE, [&](int glesCallAccumulate) { mGlesCallAccumulate = glesCallAccumulate != 0; });
index 0b4e44c..4ba290c 100644 (file)
@@ -244,6 +244,11 @@ public:
   int GetLongPressMinimumHoldingTime() const;
 
   /**
+   * @return The maximum allowed time required to be recognized as a multi tap gesture (millisecond)
+   */
+  int GetTapMaximumAllowedTime() const;
+
+  /**
    * @return The width of the window
    */
   unsigned int GetWindowWidth() const;
@@ -382,6 +387,7 @@ private: // Data
   int   mRotationMinimumTouchEvents;            ///< minimum events required before a rotation starts
   int   mRotationMinimumTouchEventsAfterStart;  ///< minimum events required after a rotation started
   int   mLongPressMinimumHoldingTime;           ///< minimum holding time required to be recognized as a long press gesture (millisecond)
+  int   mTapMaximumAllowedTime;                 ///< maximum allowed time required to be recognized as a multi tap gesture (millisecond)
   int   mGlesCallTime;                          ///< time in seconds between status updates
   int   mMultiSamplingLevel;                    ///< The number of samples required in multisample buffers
 
index ab3f1b9..f4b661a 100644 (file)
@@ -95,6 +95,9 @@ namespace Adaptor
  */
 #define DALI_ENV_LONG_PRESS_MINIMUM_HOLDING_TIME "DALI_LONG_PRESS_MINIMUM_HOLDING_TIME"
 
+// Tap-Gesture maximum allowed time required to be recognized as a multi tap gesture (millisecond)
+#define DALI_ENV_TAP_MAXIMUM_ALLOWED_TIME "DALI_TAP_MAXIMUM_ALLOWED_TIME"
+
 #define DALI_GLES_CALL_TIME "DALI_GLES_CALL_TIME"
 
 #define DALI_GLES_CALL_ACCUMULATE "DALI_GLES_CALL_ACCUMULATE"
index 1d040b8..01aa1c8 100644 (file)
@@ -27,7 +27,7 @@ namespace Dali
 {
 const unsigned int ADAPTOR_MAJOR_VERSION = 2;
 const unsigned int ADAPTOR_MINOR_VERSION = 0;
-const unsigned int ADAPTOR_MICRO_VERSION = 37;
+const unsigned int ADAPTOR_MICRO_VERSION = 38;
 const char* const  ADAPTOR_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 55e7c3c..ce18a66 100644 (file)
@@ -17,7 +17,7 @@
 
 Name:       dali2-adaptor
 Summary:    The DALi Tizen Adaptor
-Version:    2.0.37
+Version:    2.0.38
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT