Merge branch 'devel/master' into tizen
authorJoogab Yun <joogab.yun@samsung.com>
Mon, 24 Aug 2020 05:04:01 +0000 (14:04 +0900)
committerJoogab Yun <joogab.yun@samsung.com>
Mon, 24 Aug 2020 05:04:01 +0000 (14:04 +0900)
36 files changed:
README.md
automated-tests/src/dali-adaptor/dali-test-suite-utils/dali-test-suite-utils.h
build/tizen/CMakeLists.txt
dali/devel-api/adaptor-framework/accessibility-action-handler.h
dali/devel-api/adaptor-framework/accessibility-adaptor.cpp
dali/devel-api/adaptor-framework/accessibility-adaptor.h
dali/devel-api/adaptor-framework/event-feeder.h
dali/devel-api/adaptor-framework/window-devel.cpp
dali/devel-api/adaptor-framework/window-devel.h
dali/integration-api/adaptor-framework/adaptor.h
dali/integration-api/adaptor-framework/scene-holder-impl.h
dali/integration-api/adaptor-framework/scene-holder.cpp
dali/integration-api/adaptor-framework/scene-holder.h
dali/internal/accessibility/common/accessibility-adaptor-impl.cpp
dali/internal/accessibility/common/accessibility-adaptor-impl.h
dali/internal/adaptor/common/adaptor-impl.cpp
dali/internal/adaptor/common/adaptor-impl.h
dali/internal/adaptor/common/adaptor.cpp
dali/internal/input/windows/virtual-keyboard-impl-win.cpp [changed mode: 0755->0644]
dali/internal/system/common/capture-impl.cpp
dali/internal/system/common/capture-impl.h
dali/internal/window-system/common/event-handler.cpp
dali/internal/window-system/common/event-handler.h
dali/internal/window-system/common/window-base.h
dali/internal/window-system/common/window-render-surface.cpp
dali/internal/window-system/common/window-render-surface.h
dali/internal/window-system/tizen-wayland/ecore-wl/window-base-ecore-wl.cpp
dali/internal/window-system/tizen-wayland/ecore-wl2/window-base-ecore-wl2.cpp
dali/internal/window-system/ubuntu-x11/window-base-ecore-x.cpp
dali/internal/window-system/windows/window-base-win.cpp
dali/public-api/adaptor-framework/input-method.h
dali/public-api/adaptor-framework/window.cpp
dali/public-api/capture/capture.cpp
dali/public-api/capture/capture.h
dali/public-api/dali-adaptor-version.cpp
packaging/dali-adaptor.spec

index b43261f..e3bed27 100644 (file)
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@
  - Ubuntu 16.04 or later
  - Environment created using dali_env script in dali-core repository
  - GCC version 9
+ - Cmake version 3.8.2 or later
 
 DALi requires a compiler supporting C++17 features.
 
index 0c5efa3..ac9b214 100644 (file)
@@ -305,6 +305,17 @@ void DALI_TEST_EQUALS( const std::string &str1, const char* str2, const char* lo
 void DALI_TEST_EQUALS( const char* str1, const std::string &str2, const char* location);
 
 /**
+ * Test if a property value type is equal to a trivial type.
+ */
+template<typename Type>
+inline void DALI_TEST_VALUE_EQUALS( Property::Value&& value1, Type value2, float epsilon, const char* location)
+{
+  Property::Value value2b(value2);
+  DALI_TEST_EQUALS(value1, value2b, epsilon, location);
+}
+
+
+/**
  * Test whether one unsigned integer value is greater than another.
  * Test succeeds if value1 > value2
  * @param[in] value1 The first value
index be96e15..3ece9fd 100644 (file)
@@ -1,7 +1,8 @@
-CMAKE_MINIMUM_REQUIRED(VERSION 3.1)
+CMAKE_MINIMUM_REQUIRED(VERSION 3.8.2)
 CMAKE_POLICY(SET CMP0012 NEW) # Prevent dereferencing of OFF/ON as variables
 
 SET(CMAKE_C_STANDARD 99)
+SET(CMAKE_CXX_STANDARD 17)
 PROJECT(${name} CXX)
 SET(PKG_NAME ${name})
 
@@ -105,14 +106,12 @@ ENDIF()
 
 # Set up compiler flags and warnings
 IF( UNIX )
-  ADD_COMPILE_OPTIONS( -std=c++17 )                     # c++17 support
   ADD_COMPILE_OPTIONS( -Wall ${DALI_CFLAGS} )# -Wextra -Wno-unused-parameter )# -Wfloat-equal )
 ELSEIF( WIN32 ) # WIN32 includes x64 as well according to the cmake doc.
   ADD_COMPILE_OPTIONS( /FIdali-windows-dependencies.h ) #
   ADD_COMPILE_OPTIONS( /FIextern-definitions.h )        # Adds missing definitions.
   ADD_COMPILE_OPTIONS( /FIpreprocessor-definitions.h )  #
   ADD_COMPILE_OPTIONS( /vmg )                           # Avoids a 'reinterpret_cast' compile error while compiling signals and callbacks.
-  ADD_COMPILE_OPTIONS( /std:c++17 )                     # c++17 support
   ADD_COMPILE_OPTIONS( /wd4251 )                        # Ignores warning C4251: "'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'"
 ENDIF()
 
index 8bc2ac8..4a9e233 100644 (file)
@@ -198,13 +198,6 @@ public:
    */
   virtual bool AccessibilityActionStartStop() = 0;
 
-  /**
-   * Perform the accessibility action to mouse move (by one finger tap & hold and move).
-   * @param touch touch data
-   * @return whether the accessibility action is performed or not.
-   */
-  virtual bool AccessibilityActionTouch(const Dali::TouchEvent& touch) = 0;
-
 }; // class AccessibilityActionHandler
 
 } // namespace Dali
index f635aba..f487c03 100644 (file)
@@ -107,11 +107,6 @@ bool AccessibilityAdaptor::HandleActionScrollEvent(const TouchPoint& point, unsi
   return Internal::Adaptor::AccessibilityAdaptor::GetImplementation(*this).HandleActionScrollEvent(point, timeStamp);
 }
 
-bool AccessibilityAdaptor::HandleActionTouchEvent(const TouchPoint& point, unsigned long timeStamp)
-{
-  return Internal::Adaptor::AccessibilityAdaptor::GetImplementation(*this).HandleActionTouchEvent(point, timeStamp);
-}
-
 bool AccessibilityAdaptor::HandleActionBackEvent()
 {
   return Internal::Adaptor::AccessibilityAdaptor::GetImplementation(*this).HandleActionBackEvent();
index 14b856b..9be2483 100755 (executable)
@@ -188,16 +188,6 @@ public:
   bool HandleActionScrollEvent(const TouchPoint& point, unsigned long timeStamp);
 
   /**
-   * @brief Handle the accessibility action to move for the current focused actor
-   * (by 1 finger tap & hold and move).
-   *
-   * @param[in]  point      The touch point information.
-   * @param[in]  timeStamp  The time the touch occurred.
-   * @return Whether the action is performed successfully or not.
-   */
-  bool HandleActionTouchEvent(const TouchPoint& point, unsigned long timeStamp);
-
-  /**
    * @brief Handle the accessibility action to navigate back (by two fingers circle draw).
    * @return Whether the action is performed successfully or not.
    */
index bffbcd4..e1648a6 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_EVENT_FEEDER_H
 
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -24,8 +24,8 @@
 namespace Dali
 {
 
+class WheelEvent;
 struct KeyEvent;
-struct WheelEvent;
 struct TouchPoint;
 
 namespace EventFeeder
index c3c8c18..0a65690 100644 (file)
@@ -55,7 +55,7 @@ Window New(Any surface, PositionSize windowPosition, const std::string& name, co
     if (isAdaptorAvailable)
     {
       Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get();
-      Internal::Adaptor::Adaptor::GetImplementation(adaptor).AddWindow(sceneHolder, name, className, isTransparent);
+      Internal::Adaptor::Adaptor::GetImplementation(adaptor).AddWindow(sceneHolder);
     }
     newWindow = Window(window);
   }
index fd1a95e..4e14202 100644 (file)
@@ -29,7 +29,7 @@ namespace Dali
 {
 struct KeyEvent;
 class TouchEvent;
-struct WheelEvent;
+class WheelEvent;
 class RenderTaskList;
 
 namespace DevelWindow
index 94c5f81..834f25c 100644 (file)
@@ -254,14 +254,8 @@ public:
    * @brief Adds a new Window instance to the Adaptor
    *
    * @param[in]  childWindow The child window instance
-   * @param[in]  childWindowName The child window title/name
-   * @param[in]  childWindowClassName The class name that the child window belongs to
-   * @param[in]  childWindowMode The mode of the child window
-   */
-  bool AddWindow( Dali::Integration::SceneHolder childWindow,
-                  const std::string& childWindowName,
-                  const std::string& childWindowClassName,
-                  bool childWindowMode );
+   */
+  bool AddWindow( Dali::Integration::SceneHolder childWindow );
 
   /**
    * @brief Removes a previously added @p callback.
index 9b14bfc..b7bd53b 100644 (file)
@@ -41,8 +41,8 @@ class Any;
 class Adaptor;
 class Actor;
 class Layer;
+class WheelEvent;
 struct TouchPoint;
-struct WheelEvent;
 struct KeyEvent;
 
 namespace Integration
index a51a38d..d7b1514 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -96,7 +96,7 @@ void SceneHolder::FeedTouchPoint( Dali::TouchPoint& point, int timeStamp )
 
 void SceneHolder::FeedWheelEvent( Dali::WheelEvent& wheelEvent )
 {
-  Integration::WheelEvent event( static_cast< Integration::WheelEvent::Type >(wheelEvent.type), wheelEvent.direction, wheelEvent.modifiers, wheelEvent.point, wheelEvent.z, wheelEvent.timeStamp );
+  Integration::WheelEvent event( static_cast< Integration::WheelEvent::Type >( wheelEvent.GetType() ), wheelEvent.GetDirection(), wheelEvent.GetModifiers(), wheelEvent.GetPoint(), wheelEvent.GetDelta(), wheelEvent.GetTime() );
   GetImplementation(*this).FeedWheelEvent( event );
 }
 
index ee29a4d..2026e19 100644 (file)
@@ -31,8 +31,8 @@ class Actor;
 class Layer;
 class Any;
 class TouchEvent;
+class WheelEvent;
 struct TouchPoint;
-struct WheelEvent;
 struct KeyEvent;
 
 namespace Internal DALI_INTERNAL
index 3f877f1..5700fce 100644 (file)
@@ -270,19 +270,6 @@ bool AccessibilityAdaptor::HandleActionScrollEvent(const TouchPoint& point, uint
   return ret;
 }
 
-bool AccessibilityAdaptor::HandleActionTouchEvent(const TouchPoint& point, uint32_t timeStamp)
-{
-  bool ret = false;
-
-  Dali::TouchEvent touch = Integration::NewTouchEvent( timeStamp, point );
-
-  if( mActionHandler )
-  {
-    ret = mActionHandler->AccessibilityActionTouch( touch );
-  }
-  return ret;
-}
-
 bool AccessibilityAdaptor::HandleActionBackEvent()
 {
   bool ret = false;
index d59f69f..2e1511e 100644 (file)
@@ -144,11 +144,6 @@ public:
   bool HandleActionScrollEvent(const TouchPoint& point, uint32_t timeStamp);
 
   /**
-   * @copydoc Dali::AccessibilityAdaptor::HandleActionTouchEvent()
-   */
-  bool HandleActionTouchEvent(const TouchPoint& point, uint32_t timeStamp);
-
-  /**
    * @copydoc Dali::AccessibilityAdaptor::HandleActionBackEvent()
    */
   bool HandleActionBackEvent();
index b598079..c496606 100644 (file)
@@ -27,6 +27,7 @@
 #include <dali/public-api/actors/layer.h>
 #include <dali/public-api/object/any.h>
 #include <dali/public-api/object/object-registry.h>
+#include <dali/public-api/events/wheel-event.h>
 #include <dali/devel-api/actors/actor-devel.h>
 #include <dali/integration-api/debug.h>
 #include <dali/integration-api/core.h>
@@ -553,9 +554,9 @@ void Adaptor::FeedTouchPoint( TouchPoint& point, int timeStamp )
   mWindows.front()->FeedTouchPoint( convertedPoint, timeStamp );
 }
 
-void Adaptor::FeedWheelEvent( WheelEvent& wheelEvent )
+void Adaptor::FeedWheelEvent( Dali::WheelEvent& wheelEvent )
 {
-  Integration::WheelEvent event( static_cast< Integration::WheelEvent::Type >(wheelEvent.type), wheelEvent.direction, wheelEvent.modifiers, wheelEvent.point, wheelEvent.z, wheelEvent.timeStamp );
+  Integration::WheelEvent event( static_cast< Integration::WheelEvent::Type >( wheelEvent.GetType() ), wheelEvent.GetDirection(), wheelEvent.GetModifiers(), wheelEvent.GetPoint(), wheelEvent.GetDelta(), wheelEvent.GetTime() );
   mWindows.front()->FeedWheelEvent( event );
 }
 
@@ -647,7 +648,7 @@ void Adaptor::SetPreRenderCallback( CallbackBase* callback )
   mThreadController->SetPreRenderCallback( callback );
 }
 
-bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow, const std::string& childWindowName, const std::string& childWindowClassName, bool childWindowMode )
+bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow )
 {
   Internal::Adaptor::SceneHolder& windowImpl = Dali::GetImplementation( childWindow );
   windowImpl.SetAdaptor( Get() );
index 7cb94dd..29d8620 100644 (file)
@@ -212,7 +212,7 @@ public: // AdaptorInternalServices implementation
   /**
    * @copydoc Dali::EventFeeder::FeedWheelEvent()
    */
-  virtual void FeedWheelEvent( WheelEvent& wheelEvent );
+  virtual void FeedWheelEvent( Dali::WheelEvent& wheelEvent );
 
   /**
    * @copydoc Dali::EventFeeder::FeedKeyEvent()
@@ -249,14 +249,8 @@ public: // AdaptorInternalServices implementation
   /**
    * Adds a new Window instance to the Adaptor
    * @param[in]  childWindow The child window instance
-   * @param[in]  childWindowName The child window title/name
-   * @param[in]  childWindowClassName The class name that the child window belongs to
-   * @param[in]  childWindowMode The mode of the child window
-   */
-  virtual bool AddWindow( Dali::Integration::SceneHolder childWindow,
-                          const std::string& childWindowName,
-                          const std::string& childWindowClassName,
-                          bool childWindowMode );
+   */
+  virtual bool AddWindow( Dali::Integration::SceneHolder childWindow );
 
   /**
    * Removes an existing Window instance from the Adaptor
index cbb3d19..add3245 100644 (file)
@@ -112,10 +112,10 @@ bool Adaptor::AddIdle( CallbackBase* callback, bool hasReturnValue )
   return mImpl->AddIdle( callback, hasReturnValue, false );
 }
 
-bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow, const std::string& childWindowName, const std::string& childWindowClassName, bool childWindowMode )
+bool Adaptor::AddWindow( Dali::Integration::SceneHolder childWindow )
 {
   DALI_ASSERT_ALWAYS( IsAvailable() && "Adaptor not instantiated" );
-  return mImpl->AddWindow( childWindow, childWindowName, childWindowClassName, childWindowMode );
+  return mImpl->AddWindow( childWindow );
 }
 
 void Adaptor::RemoveIdle( CallbackBase* callback )
old mode 100755 (executable)
new mode 100644 (file)
index 8d4eb0a..e833efa
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -87,9 +87,6 @@ Dali::VirtualKeyboard::TextDirection GetTextDirection()
   return Dali::VirtualKeyboard::LeftToRight;
 }
 
-Dali::InputMethod::ActionButton gActionButtonFunction = Dali::InputMethod::ACTION_DEFAULT;
-
-
 void RotateTo(int angle)
 {
 }
index 49dae75..7f0fa9b 100644 (file)
@@ -21,7 +21,6 @@
 // EXTERNAL INCLUDES
 #include <fstream>
 #include <string.h>
-#include <dali/devel-api/common/stage.h>
 #include <dali/public-api/common/vector-wrapper.h>
 #include <dali/public-api/render-tasks/render-task-list.h>
 #include <dali/integration-api/debug.h>
@@ -29,6 +28,7 @@
 // INTERNAL INCLUDES
 #include <dali/integration-api/adaptor-framework/adaptor.h>
 #include <dali/devel-api/adaptor-framework/native-image-source-devel.h>
+#include <dali/devel-api/adaptor-framework/window-devel.h>
 
 namespace
 {
@@ -82,13 +82,13 @@ CapturePtr Capture::New( Dali::CameraActor cameraActor )
   return pWorker;
 }
 
-void Capture::Start( Dali::Actor source, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor, const uint32_t quality )
+void Capture::Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor, const uint32_t quality )
 {
   mQuality = quality;
-  Start( source, size, path, clearColor );
+  Start( source, position, size, path, clearColor );
 }
 
-void Capture::Start( Dali::Actor source, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor )
+void Capture::Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor )
 {
   DALI_ASSERT_ALWAYS(path.size() > 4 && "Path is invalid.");
 
@@ -104,7 +104,12 @@ void Capture::Start( Dali::Actor source, const Dali::Vector2& size, const std::s
   DALI_ASSERT_ALWAYS(source && "Source is NULL.");
 
   UnsetResources();
-  SetupResources( size, clearColor, source );
+  SetupResources( position, size, clearColor, source );
+}
+
+void Capture::SetImageQuality( uint32_t quality )
+{
+  mQuality = quality;
 }
 
 Dali::NativeImageSourcePtr Capture::GetNativeImageSource() const
@@ -166,35 +171,38 @@ bool Capture::IsFrameBufferCreated()
   return mFrameBuffer;
 }
 
-void Capture::SetupRenderTask( Dali::Actor source, const Dali::Vector4& clearColor )
+void Capture::SetupRenderTask( const Dali::Vector2& position, const Dali::Vector2& size, Dali::Actor source, const Dali::Vector4& clearColor )
 {
   DALI_ASSERT_ALWAYS(source && "Source is empty.");
 
-  mSource = source;
-
-  // Check the original parent about source.
-  mParent = mSource.GetParent();
-
-  Dali::Stage stage = Dali::Stage::GetCurrent();
-  Dali::Size stageSize = stage.GetSize();
+  Dali::Window window = DevelWindow::Get( source );
+  if( !window )
+  {
+    DALI_LOG_ERROR("The source is not added on the window\n");
+    return;
+  }
 
-  // Add to stage for rendering the source. If source isn't on the stage then it never be rendered.
-  stage.Add( mSource );
+  mSource = source;
 
   if( !mCameraActor )
   {
-    mCameraActor = Dali::CameraActor::New( stageSize );
-    mCameraActor.SetProperty( Dali::Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
+    mCameraActor = Dali::CameraActor::New( size );
+    // Because input position and size are for 2 dimentional area,
+    // default z-directional position of the camera is required to be used for the new camera position.
+    float cameraDefaultZPosition = mCameraActor.GetProperty<float>( Dali::Actor::Property::POSITION_Z );
+    Vector2 positionTransition = position + size / 2;
+    mCameraActor.SetProperty( Dali::Actor::Property::POSITION, Vector3( positionTransition.x, positionTransition.y, cameraDefaultZPosition ) );
+    mCameraActor.SetProperty( Dali::Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_LEFT );
     mCameraActor.SetProperty( Dali::Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
   }
 
-  stage.Add( mCameraActor );
+  window.Add( mCameraActor );
 
   DALI_ASSERT_ALWAYS(mFrameBuffer && "Framebuffer is NULL.");
 
   DALI_ASSERT_ALWAYS(!mRenderTask && "RenderTask is already created.");
 
-  Dali::RenderTaskList taskList = stage.GetRenderTaskList();
+  Dali::RenderTaskList taskList = window.GetRenderTaskList();
   mRenderTask = taskList.CreateTask();
   mRenderTask.SetRefreshRate( Dali::RenderTask::REFRESH_ONCE );
   mRenderTask.SetSourceActor( source );
@@ -216,19 +224,6 @@ void Capture::UnsetRenderTask()
 {
   DALI_ASSERT_ALWAYS(mCameraActor && "CameraActor is NULL.");
 
-  if( mParent )
-  {
-    // Restore the parent of source.
-    mParent.Add( mSource );
-    mParent.Reset();
-  }
-  else
-  {
-    mSource.Unparent();
-  }
-
-  mSource.Reset();
-
   mTimer.Reset();
 
   mCameraActor.Unparent();
@@ -236,9 +231,11 @@ void Capture::UnsetRenderTask()
 
   DALI_ASSERT_ALWAYS( mRenderTask && "RenderTask is NULL." );
 
-  Dali::RenderTaskList taskList = Dali::Stage::GetCurrent().GetRenderTaskList();
+  Dali::Window window = DevelWindow::Get( mSource );
+  Dali::RenderTaskList taskList = window.GetRenderTaskList();
   taskList.RemoveTask( mRenderTask );
   mRenderTask.Reset();
+  mSource.Reset();
 }
 
 bool Capture::IsRenderTaskSetup()
@@ -246,13 +243,13 @@ bool Capture::IsRenderTaskSetup()
   return mCameraActor && mRenderTask;
 }
 
-void Capture::SetupResources( const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source )
+void Capture::SetupResources( const Dali::Vector2& position, const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source )
 {
   CreateNativeImageSource( size );
 
   CreateFrameBuffer();
 
-  SetupRenderTask( source, clearColor );
+  SetupRenderTask( position, size, source, clearColor );
 }
 
 void Capture::UnsetResources()
index 11c29e9..00281e1 100644 (file)
@@ -71,12 +71,17 @@ public:
   /**
    * @copydoc Dali::Capture::Start
    */
-  void Start( Dali::Actor source, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor, const uint32_t quality );
+  void Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor, const uint32_t quality );
 
   /**
    * @copydoc Dali::Capture::Start
    */
-  void Start( Dali::Actor source, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor );
+  void Start( Dali::Actor source, const Dali::Vector2& position, const Dali::Vector2& size, const std::string &path, const Dali::Vector4& clearColor );
+
+  /**
+   * @copydoc Dali::Capture::SetImageQuality
+   */
+  void SetImageQuality( uint32_t quality );
 
   /**
    * @copydoc Dali::Capture::GetNativeImageSource
@@ -133,10 +138,13 @@ private:
   /**
    * @brief Setup render task.
    *
-   * @param[in] source is captured.
+   * @param[in] position top-left position of area to be captured
+   *            this position is defined in the window.
+   * @param[in] size two dimensional size of area to be captured
+   * @param[in] source sub-scene tree to be captured.
    * @param[in] clearColor background color
    */
-  void SetupRenderTask( Dali::Actor source, const Dali::Vector4& clearColor );
+  void SetupRenderTask( const Dali::Vector2& position, const Dali::Vector2& size, Dali::Actor source, const Dali::Vector4& clearColor );
 
   /**
    * @brief Unset render task.
@@ -153,11 +161,13 @@ private:
   /**
    * @brief Setup resources for capture.
    *
-   * @param[in] size is surface size.
-   * @param[in] clearColor is clear color of surface.
-   * @param[in] source is captured.
+   * @param[in] position top-left position of area to be captured
+   *            this position is defined in the window.
+   * @param[in] size two dimensional size of area to be captured
+   * @param[in] clearColor color to clear background surface.
+   * @param[in] source sub-scene tree to be captured.
    */
-  void SetupResources( const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source );
+  void SetupResources( const Dali::Vector2& position, const Dali::Vector2& size, const Dali::Vector4& clearColor, Dali::Actor source );
 
   /**
    * @brief Unset resources for capture.
@@ -198,7 +208,6 @@ private:
   Dali::Texture                               mNativeTexture;
   Dali::FrameBuffer                           mFrameBuffer;
   Dali::RenderTask                            mRenderTask;
-  Dali::Actor                                 mParent;
   Dali::Actor                                 mSource;
   Dali::CameraActor                           mCameraActor;
   Dali::Timer                                 mTimer;           ///< For timeout.
index 99f1796..cf8720a 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -154,13 +154,11 @@ void EventHandler::OnTouchEvent( Integration::Point& point, uint32_t timeStamp )
   }
 }
 
-void EventHandler::OnWheelEvent( WheelEvent& wheelEvent )
+void EventHandler::OnWheelEvent( Integration::WheelEvent& wheelEvent )
 {
-  Integration::WheelEvent event( static_cast< Integration::WheelEvent::Type >(wheelEvent.type), wheelEvent.direction, wheelEvent.modifiers, wheelEvent.point, wheelEvent.z, wheelEvent.timeStamp );
-
   for ( ObserverContainer::iterator iter = mObservers.begin(), endIter = mObservers.end(); iter != endIter; ++iter )
   {
-    (*iter)->OnWheelEvent( event );
+    (*iter)->OnWheelEvent( wheelEvent );
   }
 }
 
index 795a919..2516234 100755 (executable)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_EVENT_HANDLER_H
 
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -166,7 +166,7 @@ private:
   /**
    * Called when a mouse wheel is received.
    */
-  void OnWheelEvent( WheelEvent& wheelEvent );
+  void OnWheelEvent( Integration::WheelEvent& wheelEvent );
 
   /**
    * Called when a key event is received.
index 0857c8b..a055c59 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_WINDOWSYSTEM_COMMON_WINDOW_BASE_H
 
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -21,7 +21,7 @@
 // EXTERNAL INCLUDES
 #include <dali/integration-api/events/key-event-integ.h>
 #include <dali/integration-api/events/point.h>
-#include <dali/public-api/events/wheel-event.h>
+#include <dali/integration-api/events/wheel-event-integ.h>
 #include <string>
 #include <vector>
 #include <cstdint>
@@ -75,7 +75,7 @@ public:
 
   // Input events
   typedef Signal< void ( Integration::Point&, uint32_t ) > TouchEventSignalType;
-  typedef Signal< void ( WheelEvent& ) > WheelEventSignalType;
+  typedef Signal< void ( Integration::WheelEvent& ) > WheelEventSignalType;
   typedef Signal< void( Integration::KeyEvent& ) > KeyEventSignalType;
 
   // Clipboard
index 509c174..7326047 100644 (file)
@@ -67,6 +67,7 @@ WindowRenderSurface::WindowRenderSurface( Dali::PositionSize positionSize, Any s
   mColorDepth( isTransparent ? COLOR_DEPTH_32 : COLOR_DEPTH_24 ),
   mOutputTransformedSignal(),
   mFrameCallbackInfoContainer(),
+  mMutex(),
   mRotationAngle( 0 ),
   mScreenRotationAngle( 0 ),
   mOwnSurface( false ),
@@ -361,22 +362,21 @@ bool WindowRenderSurface::PreRender( bool resizingSurface, const std::vector<Rec
   Dali::Integration::Scene scene = mScene.GetHandle();
   if( scene )
   {
+    bool needFrameRenderedTrigger = false;
+
     scene.GetFrameRenderedCallback( callbacks );
     if( !callbacks.empty() )
     {
       int frameRenderedSync = mWindowBase->CreateFrameRenderedSyncFence();
       if( frameRenderedSync != -1 )
       {
+        Dali::Mutex::ScopedLock lock( mMutex );
+
         DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::PreRender: CreateFrameRenderedSyncFence [%d]\n", frameRenderedSync );
 
         mFrameCallbackInfoContainer.push_back( std::unique_ptr< FrameCallbackInfo >( new FrameCallbackInfo( callbacks, frameRenderedSync ) ) );
 
-        if( !mFrameRenderedTrigger )
-        {
-          mFrameRenderedTrigger = std::unique_ptr< TriggerEventInterface >( TriggerEventFactory::CreateTriggerEvent( MakeCallback( this, &WindowRenderSurface::ProcessFrameCallback ),
-                                                                                                                     TriggerEventInterface::KEEP_ALIVE_AFTER_TRIGGER ) );
-        }
-        mFrameRenderedTrigger->Trigger();
+        needFrameRenderedTrigger = true;
       }
       else
       {
@@ -393,16 +393,13 @@ bool WindowRenderSurface::PreRender( bool resizingSurface, const std::vector<Rec
       int framePresentedSync = mWindowBase->CreateFramePresentedSyncFence();
       if( framePresentedSync != -1 )
       {
+        Dali::Mutex::ScopedLock lock( mMutex );
+
         DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::PreRender: CreateFramePresentedSyncFence [%d]\n", framePresentedSync );
 
         mFrameCallbackInfoContainer.push_back( std::unique_ptr< FrameCallbackInfo >( new FrameCallbackInfo( callbacks, framePresentedSync ) ) );
 
-        if( !mFrameRenderedTrigger )
-        {
-          mFrameRenderedTrigger = std::unique_ptr< TriggerEventInterface >( TriggerEventFactory::CreateTriggerEvent( MakeCallback( this, &WindowRenderSurface::ProcessFrameCallback ),
-                                                                                                                     TriggerEventInterface::KEEP_ALIVE_AFTER_TRIGGER ) );
-        }
-        mFrameRenderedTrigger->Trigger();
+        needFrameRenderedTrigger = true;
       }
       else
       {
@@ -412,6 +409,16 @@ bool WindowRenderSurface::PreRender( bool resizingSurface, const std::vector<Rec
       // Clear callbacks
       callbacks.clear();
     }
+
+    if( needFrameRenderedTrigger )
+    {
+      if( !mFrameRenderedTrigger )
+      {
+        mFrameRenderedTrigger = std::unique_ptr< TriggerEventInterface >( TriggerEventFactory::CreateTriggerEvent( MakeCallback( this, &WindowRenderSurface::ProcessFrameCallback ),
+                                                                                                                   TriggerEventInterface::KEEP_ALIVE_AFTER_TRIGGER ) );
+      }
+      mFrameRenderedTrigger->Trigger();
+    }
   }
 
   MakeContextCurrent();
@@ -588,6 +595,8 @@ void WindowRenderSurface::ProcessRotationRequest()
 
 void WindowRenderSurface::ProcessFrameCallback()
 {
+  Dali::Mutex::ScopedLock lock( mMutex );
+
   for( auto&& iter : mFrameCallbackInfoContainer )
   {
     if( !iter->fileDescriptorMonitor )
@@ -611,19 +620,29 @@ void WindowRenderSurface::OnFileDescriptorEventDispatched( FileDescriptorMonitor
 
   DALI_LOG_INFO( gWindowRenderSurfaceLogFilter, Debug::Verbose, "WindowRenderSurface::OnFileDescriptorEventDispatched: Frame rendered [%d]\n", fileDescriptor );
 
-  auto frameCallbackInfo = std::find_if( mFrameCallbackInfoContainer.begin(), mFrameCallbackInfoContainer.end(),
-                                    [fileDescriptor]( std::unique_ptr< FrameCallbackInfo >& callbackInfo )
-                                    {
-                                      return callbackInfo->fileDescriptor == fileDescriptor;
-                                    } );
-  if( frameCallbackInfo != mFrameCallbackInfoContainer.end() )
+  std::unique_ptr< FrameCallbackInfo > callbackInfo;
+  {
+    Dali::Mutex::ScopedLock lock( mMutex );
+    auto frameCallbackInfo = std::find_if( mFrameCallbackInfoContainer.begin(), mFrameCallbackInfoContainer.end(),
+                                      [fileDescriptor]( std::unique_ptr< FrameCallbackInfo >& callbackInfo )
+                                      {
+                                        return callbackInfo->fileDescriptor == fileDescriptor;
+                                      } );
+    if( frameCallbackInfo != mFrameCallbackInfoContainer.end() )
+    {
+      callbackInfo = std::move( *frameCallbackInfo );
+
+      mFrameCallbackInfoContainer.erase( frameCallbackInfo );
+    }
+  }
+
+  // Call the connected callback
+  if( callbackInfo )
   {
-    // Call the connected callback
-    for( auto&& iter : ( *frameCallbackInfo )->callbacks )
+    for( auto&& iter : ( callbackInfo )->callbacks )
     {
       CallbackBase::Execute( *( iter.first ), iter.second );
     }
-    mFrameCallbackInfoContainer.erase( frameCallbackInfo );
   }
 }
 
index 6f982e4..6b72a55 100644 (file)
@@ -21,6 +21,7 @@
 // EXTERNAL INCLUDES
 #include <dali/public-api/signals/connection-tracker.h>
 #include <dali/public-api/signals/dali-signal.h>
+#include <dali/devel-api/threading/mutex.h>
 #include <dali/integration-api/scene.h>
 #include <unistd.h>
 
@@ -284,6 +285,7 @@ private: // Data
   ColorDepth                      mColorDepth;         ///< Color depth of surface (32 bit or 24 bit)
   OutputSignalType                mOutputTransformedSignal;
   FrameCallbackInfoContainer      mFrameCallbackInfoContainer;
+  Dali::Mutex                     mMutex;
   int                             mRotationAngle;
   int                             mScreenRotationAngle;
   bool                            mOwnSurface;         ///< Whether we own the surface (responsible for deleting it)
index e4b610d..520dce0 100644 (file)
@@ -944,7 +944,7 @@ void WindowBaseEcoreWl::OnMouseWheel( void* data, int type, void* event )
   {
     DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseEcoreWl::OnMouseWheel: direction: %d, modifiers: %d, x: %d, y: %d, z: %d\n", mouseWheelEvent->direction, mouseWheelEvent->modifiers, mouseWheelEvent->x, mouseWheelEvent->y, mouseWheelEvent->z );
 
-    WheelEvent wheelEvent( WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
+    Integration::WheelEvent wheelEvent( Integration::WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
 
     mWheelEventSignal.Emit( wheelEvent );
   }
@@ -959,7 +959,7 @@ void WindowBaseEcoreWl::OnDetentRotation( void* data, int type, void* event )
   int direction = ( detentEvent->direction == ECORE_DETENT_DIRECTION_CLOCKWISE ) ? 1 : -1;
   int timeStamp = detentEvent->timestamp;
 
-  WheelEvent wheelEvent( WheelEvent::CUSTOM_WHEEL, 0, 0, Vector2( 0.0f, 0.0f ), direction, timeStamp );
+  Integration::WheelEvent wheelEvent( Integration::WheelEvent::CUSTOM_WHEEL, 0, 0, Vector2( 0.0f, 0.0f ), direction, timeStamp );
 
   mWheelEventSignal.Emit( wheelEvent );
 }
index a258f6c..ad452fa 100755 (executable)
@@ -1108,7 +1108,7 @@ void WindowBaseEcoreWl2::OnMouseWheel( void* data, int type, void* event )
   {
     DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseEcoreWl::OnMouseWheel: direction: %d, modifiers: %d, x: %d, y: %d, z: %d\n", mouseWheelEvent->direction, mouseWheelEvent->modifiers, mouseWheelEvent->x, mouseWheelEvent->y, mouseWheelEvent->z );
 
-    WheelEvent wheelEvent( WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
+    Integration::WheelEvent wheelEvent( Integration::WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( mouseWheelEvent->x, mouseWheelEvent->y ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
 
     mWheelEventSignal.Emit( wheelEvent );
   }
@@ -1123,7 +1123,7 @@ void WindowBaseEcoreWl2::OnDetentRotation( void* data, int type, void* event )
   int direction = ( detentEvent->direction == ECORE_DETENT_DIRECTION_CLOCKWISE ) ? 1 : -1;
   int timeStamp = detentEvent->timestamp;
 
-  WheelEvent wheelEvent( WheelEvent::CUSTOM_WHEEL, direction, 0, Vector2( 0.0f, 0.0f ), 0, timeStamp );
+  Integration::WheelEvent wheelEvent( Integration::WheelEvent::CUSTOM_WHEEL, direction, 0, Vector2( 0.0f, 0.0f ), 0, timeStamp );
 
   mWheelEventSignal.Emit( wheelEvent );
 }
index ecc9e07..326d16f 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -505,7 +505,7 @@ void WindowBaseEcoreX::OnMouseWheel( void* data, int type, void* event )
   {
     DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseEcoreX::OnMouseWheel: direction: %d, modifiers: %d, x: %d, y: %d, z: %d\n", mouseWheelEvent->direction, mouseWheelEvent->modifiers, mouseWheelEvent->x, mouseWheelEvent->y, mouseWheelEvent->z );
 
-    WheelEvent wheelEvent( WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( static_cast<float>( mouseWheelEvent->x ), static_cast<float>( mouseWheelEvent->y ) ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
+    Integration::WheelEvent wheelEvent( Integration::WheelEvent::MOUSE_WHEEL, mouseWheelEvent->direction, mouseWheelEvent->modifiers, Vector2( static_cast<float>( mouseWheelEvent->x ), static_cast<float>( mouseWheelEvent->y ) ), mouseWheelEvent->z, mouseWheelEvent->timestamp );
 
     mWheelEventSignal.Emit( wheelEvent );
   }
index 7697790..86994da 100755 (executable)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
@@ -192,7 +192,7 @@ void WindowBaseWin::OnMouseWheel( int type, TWinEventInfo *event )
   {
     DALI_LOG_INFO( gWindowBaseLogFilter, Debug::General, "WindowBaseWin::OnMouseWheel: direction: %d, modifiers: %d, x: %d, y: %d, z: %d\n", mouseWheelEvent.direction, mouseWheelEvent.modifiers, mouseWheelEvent.x, mouseWheelEvent.y, mouseWheelEvent.z );
 
-    WheelEvent wheelEvent( WheelEvent::MOUSE_WHEEL, mouseWheelEvent.direction, mouseWheelEvent.modifiers, Vector2( mouseWheelEvent.x, mouseWheelEvent.y ), mouseWheelEvent.z, mouseWheelEvent.timestamp );
+    Integration::WheelEvent wheelEvent( Integration::WheelEvent::MOUSE_WHEEL, mouseWheelEvent.direction, mouseWheelEvent.modifiers, Vector2( mouseWheelEvent.x, mouseWheelEvent.y ), mouseWheelEvent.z, mouseWheelEvent.timestamp );
 
     mWheelEventSignal.Emit( wheelEvent );
   }
index f1fd42f..78fc5a9 100644 (file)
@@ -222,34 +222,6 @@ enum Type
 
 } // namespace PasswordLayout
 
-
-/**
- * @DEPRECATED_1_3.20 Use ButtonAction instead.
- * @brief Enumeration for specifying what the Input Method "action" button functionality is set to.
- *
- * The 'Action' button is traditionally the [RETURN] or [DONE] button.
- *
- * Not all these actions are supported by all systems.
- *
- * Setting a custom label will still require one of these actions to be set.
- * @SINCE_1_0.0
- */
-enum ActionButton
-{
-  ACTION_DEFAULT,       ///< Default action @SINCE_1_0.0
-  ACTION_DONE,          ///< Done @SINCE_1_0.0
-  ACTION_GO,            ///< Go action @SINCE_1_0.0
-  ACTION_JOIN,          ///< Join action @SINCE_1_0.0
-  ACTION_LOGIN,         ///< Login action @SINCE_1_0.0
-  ACTION_NEXT,          ///< Next action @SINCE_1_0.0
-  ACTION_PREVIOUS,      ///< Previous action @SINCE_1_0.0
-  ACTION_SEARCH,        ///< Search action @SINCE_1_0.0
-  ACTION_SEND,          ///< Send action @SINCE_1_0.0
-  ACTION_SIGNIN,        ///< Sign in action @SINCE_1_0.0
-  ACTION_UNSPECIFIED,   ///< Unspecified action @SINCE_1_0.0
-  ACTION_NONE           ///< Nothing to do @SINCE_1_0.0
-};
-
 } // namespace InputMethod
 
 /**
index 8a15192..000f350 100644 (file)
@@ -56,7 +56,7 @@ Window Window::New(PositionSize posSize, const std::string& name, const std::str
     if (isAdaptorAvailable)
     {
       Dali::Adaptor& adaptor = Internal::Adaptor::Adaptor::Get();
-      Internal::Adaptor::Adaptor::GetImplementation(adaptor).AddWindow(sceneHolder, name, className, isTransparent);
+      Internal::Adaptor::Adaptor::GetImplementation(adaptor).AddWindow(sceneHolder);
     }
     newWindow = Window(window);
   }
index 9d288e8..60dbc4a 100644 (file)
@@ -59,19 +59,29 @@ Capture::Capture( Capture&& rhs ) = default;
 
 Capture& Capture::operator=( Capture&& rhs ) = default;
 
+void Capture::Start( Actor source, const Vector2& position, const Vector2& size, const std::string &path, const Vector4& clearColor )
+{
+  GetImpl( *this ).Start( source, position, size, path, clearColor );
+}
+
 void Capture::Start( Actor source, const Vector2& size, const std::string &path, const Vector4& clearColor, const uint32_t quality )
 {
-  GetImpl( *this ).Start( source, size, path, clearColor, quality );
+  GetImpl( *this ).Start( source, Vector2::ZERO, size, path, clearColor, quality );
 }
 
 void Capture::Start( Actor source, const Vector2& size, const std::string &path, const Vector4& clearColor )
 {
-  GetImpl( *this ).Start( source, size, path, clearColor );
+  GetImpl( *this ).Start( source, Vector2::ZERO, size, path, clearColor );
 }
 
 void Capture::Start( Actor source, const Vector2& size, const std::string &path )
 {
-  GetImpl( *this ).Start( source, size, path, Dali::Color::TRANSPARENT );
+  GetImpl( *this ).Start( source, Vector2::ZERO, size, path, Dali::Color::TRANSPARENT );
+}
+
+void Capture::SetImageQuality( uint32_t quality )
+{
+  return GetImpl( *this ).SetImageQuality( quality );
 }
 
 Dali::NativeImageSourcePtr Capture::GetNativeImageSource() const
index 7113eee..5a6a049 100755 (executable)
@@ -188,9 +188,28 @@ public:
   /**
    * @brief Start capture and save the image as a file.
    *
+   * @SINCE_1_9.27
+   * @param[in] source source actor to be used for capture.
+   *            This source must be added on the window in advance.
+   * @param[in] position top-left position of area to be captured
+   *            this position is defined in the window.
+   * @param[in] size captured size.
+   * @param[in] path image file path to be saved as a file.
+   *            If path is empty string, the captured result is not be saved as a file.
+   * @param[in] clearColor background color of captured scene
+   * @note suppose that we want to capture actor 'A'. And, the actor 'A' is overlapped by another actor 'B' that is not a child of 'A'.
+   *       in this case, if source is root of scene, the captured image includes a part of actor 'B' on the 'A'.
+   *       however, if source is just actor 'A', the result includes only 'A'.
+   */
+  void Start( Actor source, const Vector2& position, const Vector2& size, const std::string &path, const Vector4& clearColor );
+
+  /**
+   * @brief Start capture and save the image as a file.
+   *
    * @SINCE_1_9.12
    *
    * @param[in] source source actor to be used for capture.
+   *            This source must be added on the window in advance.
    * @param[in] size captured size.
    * @param[in] path image file path to be saved as a file.
    *            If path is empty string, the captured result is not be saved as a file.
@@ -205,6 +224,7 @@ public:
    * @SINCE_1_3_4
    *
    * @param[in] source source actor to be used for capture.
+   *            This source must be added on the window in advance.
    * @param[in] size captured size.
    * @param[in] path image file path to be saved as a file.
    *            If path is empty string, the captured result is not be saved as a file.
@@ -218,6 +238,7 @@ public:
    * @SINCE_1_3_4
    *
    * @param[in] source source actor to be used for capture.
+   *            This source must be added on the window in advance.
    * @param[in] size captured size.
    * @param[in] path image file path to be saved as a file.
    *            If path is empty string, the captured result is not be saved as a file.
@@ -226,6 +247,13 @@ public:
   void Start( Actor source, const Vector2& size, const std::string &path );
 
   /**
+   * @brief Set result image quality in case of jpeg
+   *
+   * @param[in] quality The value to control image quality for jpeg file format in the range [1, 100]
+   */
+  void SetImageQuality( uint32_t quality );
+
+  /**
    * @brief Get NativeImageSourcePtr that is saved captured image.
    *
    * @SINCE_1_9.10
index f5001f3..263b4c6 100644 (file)
@@ -28,7 +28,7 @@ namespace Dali
 
 const unsigned int ADAPTOR_MAJOR_VERSION = 1;
 const unsigned int ADAPTOR_MINOR_VERSION = 9;
-const unsigned int ADAPTOR_MICRO_VERSION = 25;
+const unsigned int ADAPTOR_MICRO_VERSION = 26;
 const char * const ADAPTOR_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index 68a4f56..0813d0c 100644 (file)
@@ -17,7 +17,7 @@
 
 Name:       dali2-adaptor
 Summary:    The DALi Tizen Adaptor
-Version:    1.9.25
+Version:    1.9.26
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT