[dali_1.5.0] Merge branch 'devel/master' 39/224939/1
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 14 Feb 2020 07:31:00 +0000 (07:31 +0000)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Fri, 14 Feb 2020 07:31:00 +0000 (07:31 +0000)
Change-Id: I3e36eb9ee3937e3aa6dd96b781ff825dd53bfe0f

25 files changed:
automated-tests/patch-coverage.pl
automated-tests/src/dali/dali-test-suite-utils/test-application.cpp
automated-tests/src/dali/dali-test-suite-utils/test-application.h
automated-tests/src/dali/utc-Dali-FrameBuffer.cpp
automated-tests/src/dali/utc-Dali-PropertyNotification.cpp
automated-tests/src/dali/utc-Dali-Texture.cpp
dali/integration-api/core.cpp
dali/integration-api/core.h
dali/integration-api/resource-policies.h
dali/internal/common/core-impl.cpp
dali/internal/common/core-impl.h
dali/internal/event/common/property-notification-impl.cpp
dali/internal/event/common/property-notification-impl.h
dali/internal/event/common/scene-impl.h
dali/internal/event/events/gesture-recognizer.h
dali/internal/event/events/rotation-gesture/rotation-gesture-detector-impl.h
dali/internal/update/common/property-condition-step-functions.cpp
dali/internal/update/common/property-condition-step-functions.h
dali/internal/update/common/scene-graph-property-notification.cpp
dali/internal/update/common/scene-graph-property-notification.h
dali/public-api/common/dali-common.h
dali/public-api/dali-core-version.cpp
dali/public-api/math/math-utils.h
dali/public-api/object/type-registry.h
packaging/dali.spec

index 5e5e164..c5d9083 100755 (executable)
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 #
-# Copyright (c) 2016 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.
@@ -266,6 +266,12 @@ sub get_coverage
                 if(index( $source_file, $file ) > 0 )
                 {
                     $gcovfile = $coverage_file;
+                    # Some header files do not produce an equivalent gcov file so we shouldn't parse them
+                    if(($source_file =~ /\.h$/) && (! -e $gcovfile))
+                    {
+                        print "Omitting Header: $source_file\n" if $debug;
+                        $gcovfile = ""
+                    }
                     last;
                 }
             }
index 44b4964..f5d670d 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.
@@ -26,7 +26,6 @@ TestApplication::TestApplication( uint32_t surfaceWidth,
                                   uint32_t surfaceHeight,
                                   uint32_t  horizontalDpi,
                                   uint32_t  verticalDpi,
-                                  ResourcePolicy::DataRetention policy,
                                   bool initialize )
 : mRenderSurface( NULL ),
   mCore( NULL ),
@@ -34,8 +33,7 @@ TestApplication::TestApplication( uint32_t surfaceWidth,
   mSurfaceHeight( surfaceHeight ),
   mFrame( 0u ),
   mDpi{ horizontalDpi, verticalDpi },
-  mLastVSyncTime(0u),
-  mDataRetentionPolicy( policy )
+  mLastVSyncTime(0u)
 {
   if( initialize )
   {
@@ -60,7 +58,6 @@ void TestApplication::CreateCore()
                                         mGlAbstraction,
                                         mGlSyncAbstraction,
                                         mGlContextHelperAbstraction,
-                                        mDataRetentionPolicy,
                                         Integration::RenderToFrameBuffer::FALSE,
                                         Integration::DepthBufferAvailable::TRUE,
                                         Integration::StencilBufferAvailable::TRUE );
index cc694df..2606a56 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TEST_APPLICATION_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.
@@ -52,7 +52,6 @@ public:
                    uint32_t surfaceHeight = DEFAULT_SURFACE_HEIGHT,
                    uint32_t horizontalDpi = DEFAULT_HORIZONTAL_DPI,
                    uint32_t verticalDpi   = DEFAULT_VERTICAL_DPI,
-                   ResourcePolicy::DataRetention policy = ResourcePolicy::DALI_DISCARDS_ALL_DATA,
                    bool initialize = true );
 
   void Initialize();
@@ -110,7 +109,6 @@ protected:
 
   struct { uint32_t x; uint32_t y; } mDpi;
   uint32_t mLastVSyncTime;
-  ResourcePolicy::DataRetention mDataRetentionPolicy;
   static bool mLoggingEnabled;
 };
 
index 5a9a0fc..e19e645 100644 (file)
@@ -468,7 +468,7 @@ int UtcDaliFrameBufferGetColorTexture04(void)
 int UtcDaliFramebufferContextLoss(void)
 {
   tet_infoline("UtcDaliFramebufferContextLoss\n");
-  TestApplication application; // Default config: DALI_DISCARDS_ALL_DATA
+  TestApplication application;
 
   //Create the texture
   unsigned int width(64);
index 23f575d..522ddb9 100644 (file)
@@ -168,7 +168,9 @@ int UtcDaliAddPropertyNotification(void)
   Actor actor = Actor::New();
 
   PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::POSITION_X, GreaterThanCondition(100.0f));
+  PropertyNotification notification2 = actor.AddPropertyNotification(Actor::Property::SIZE, StepCondition( 1.0f, 1.0f ));
   DALI_TEST_CHECK( notification );
+  DALI_TEST_CHECK( notification2 );
   END_TEST;
 }
 
@@ -282,6 +284,18 @@ int UtcDaliAddPropertyNotificationEventSidePropertyN(void)
   END_TEST;
 }
 
+int UtcDaliAddPropertyNotificationSize(void)
+{
+  TestApplication application;
+  tet_infoline(" UtcDaliAddPropertyNotificationSize");
+
+  Actor actor = Actor::New();
+
+  PropertyNotification notification = actor.AddPropertyNotification(Actor::Property::SIZE, StepCondition( 1.0f, 1.0f ));
+  DALI_TEST_CHECK( notification );
+  END_TEST;
+}
+
 int UtcDaliPropertyNotificationGetCondition(void)
 {
   TestApplication application;
@@ -747,6 +761,46 @@ int UtcDaliPropertyNotificationVectorComponentOutside(void)
   END_TEST;
 }
 
+int UtcDaliPropertyNotificationSetSizeResultP(void)
+{
+  TestApplication application;
+  bool notifyResult;
+  tet_infoline(" UtcDaliPropertyNotificationSetSizeResultP");
+
+  Actor actor = Actor::New();
+
+  PropertyNotification notification = actor.AddPropertyNotification( Actor::Property::SIZE, StepCondition( 1.0f, 1.0f ) );
+  notification.SetNotifyMode(PropertyNotification::NotifyOnChanged);
+  gCallBackCalled = false;
+  notification.NotifySignal().Connect( &TestCallback );
+
+  actor.SetSize(100.0f, 100.0f);
+
+  application.Render(RENDER_FRAME_INTERVAL);
+  application.SendNotification();
+  application.Render(RENDER_FRAME_INTERVAL);
+  application.SendNotification();
+
+  notifyResult = notification.GetNotifyResult();
+
+  DALI_TEST_EQUALS( notifyResult, true, TEST_LOCATION );
+
+  gCallBackCalled = false;
+
+  actor.SetSize(200.0f, 200.0f);
+
+  application.Render(RENDER_FRAME_INTERVAL);
+  application.SendNotification();
+  application.Render(RENDER_FRAME_INTERVAL);
+  application.SendNotification();
+
+  notifyResult = notification.GetNotifyResult();
+
+  DALI_TEST_EQUALS( notifyResult, true, TEST_LOCATION );
+
+  END_TEST;
+}
+
 int UtcDaliPropertyConditionGetArguments(void)
 {
   TestApplication application;
index 7b2152b..0222064 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2017 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.
@@ -720,7 +720,7 @@ int UtcDaliTextureGetHeight(void)
 int UtcDaliTextureContextLoss(void)
 {
   tet_infoline("UtcDaliTextureContextLoss\n");
-  TestApplication application; // Default config: DALI_DISCARDS_ALL_DATA
+  TestApplication application;
 
   //Create the texture
   unsigned int width(64);
index d154574..30e1cba 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.
@@ -40,7 +40,6 @@ Core* Core::New( RenderController& renderController,
                  GlAbstraction& glAbstraction,
                  GlSyncAbstraction& glSyncAbstraction,
                  GlContextHelperAbstraction& glContextHelperAbstraction,
-                 ResourcePolicy::DataRetention policy,
                  RenderToFrameBuffer renderToFboEnabled,
                  DepthBufferAvailable depthBufferAvailable,
                  StencilBufferAvailable stencilBufferAvailable )
@@ -51,7 +50,6 @@ Core* Core::New( RenderController& renderController,
                                         glAbstraction,
                                         glSyncAbstraction,
                                         glContextHelperAbstraction,
-                                        policy,
                                         renderToFboEnabled,
                                         depthBufferAvailable,
                                         stencilBufferAvailable );
index e7644af..e242cfe 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTEGRATION_CORE_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.
@@ -25,7 +25,6 @@
 #include <dali/public-api/common/dali-common.h>
 #include <dali/integration-api/context-notifier.h>
 #include <dali/integration-api/core-enumerations.h>
-#include <dali/integration-api/resource-policies.h>
 
 namespace Dali
 {
@@ -226,9 +225,6 @@ public:
    * @param[in] glAbstraction The interface providing OpenGL services.
    * @param[in] glSyncAbstraction The interface providing OpenGL sync objects.
    * @param[in] glContextHelperAbstraction The interface providing OpenGL context helper objects.
-   * @param[in] policy The data retention policy. This depends on application setting
-   * and platform support. Dali should honour this policy when deciding to discard
-   * intermediate resource data.
    * @param[in] renderToFboEnabled Whether rendering into the Frame Buffer Object is enabled.
    * @param[in] depthBufferAvailable Whether the depth buffer is available
    * @param[in] stencilBufferAvailable Whether the stencil buffer is available
@@ -239,7 +235,6 @@ public:
                     GlAbstraction& glAbstraction,
                     GlSyncAbstraction& glSyncAbstraction,
                     GlContextHelperAbstraction& glContextHelperAbstraction,
-                    ResourcePolicy::DataRetention policy,
                     RenderToFrameBuffer renderToFboEnabled,
                     DepthBufferAvailable depthBufferAvailable,
                     StencilBufferAvailable stencilBufferAvailable );
index 65c936a..c9e864a 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTEGRATION_RESOURCE_POLICIES_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.
@@ -23,15 +23,6 @@ namespace ResourcePolicy
 {
 
 /**
- * The data retention policy describes how dali should retain resource data.
- */
-enum DataRetention
-{
-  DALI_RETAINS_ALL_DATA,  // retains all data e.g. bitmaps
-  DALI_DISCARDS_ALL_DATA, // discards all data (expects application to regenerate UI on context loss)
-};
-
-/**
  * The discardable policy determines if a resource can be discarded.
  * Discarded means that it can be released after uploading to GPU.
  */
index b78b515..ac0c500 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.
@@ -86,7 +86,6 @@ Core::Core( RenderController& renderController,
             GlAbstraction& glAbstraction,
             GlSyncAbstraction& glSyncAbstraction,
             GlContextHelperAbstraction& glContextHelperAbstraction,
-            ResourcePolicy::DataRetention dataRetentionPolicy,
             Integration::RenderToFrameBuffer renderToFboEnabled,
             Integration::DepthBufferAvailable depthBufferAvailable,
             Integration::StencilBufferAvailable stencilBufferAvailable )
index 4f137a5..ba38092 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_INTERNAL_CORE_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.
@@ -85,7 +85,6 @@ public:
         Integration::GlAbstraction& glAbstraction,
         Integration::GlSyncAbstraction& glSyncAbstraction,
         Integration::GlContextHelperAbstraction& glContextHelperAbstraction,
-        ResourcePolicy::DataRetention dataRetentionPolicy,
         Integration::RenderToFrameBuffer renderToFboEnabled,
         Integration::DepthBufferAvailable depthBufferAvailable,
         Integration::StencilBufferAvailable stencilBufferAvailable );
index 7e407ca..ab1260e 100644 (file)
@@ -22,6 +22,7 @@
 #include <dali/public-api/common/dali-common.h>
 #include <dali/public-api/math/vector2.h>
 #include <dali/public-api/math/radian.h>
+#include <dali/public-api/actors/actor.h>
 #include <dali/internal/event/actors/actor-impl.h>
 #include <dali/internal/event/common/property-notification-manager.h>
 #include <dali/internal/event/common/object-impl.h>
@@ -68,7 +69,8 @@ PropertyNotification::PropertyNotification( UpdateManager& updateManager,
   mComponentIndex( componentIndex ),
   mCondition( condition ),
   mNotifyMode( Dali::PropertyNotification::NotifyOnTrue ),
-  mNotifyResult( false )
+  mNotifyResult( false ),
+  mCompare( false )
 {
   const Internal::PropertyCondition& conditionImpl = GetImplementation( condition );
 
@@ -101,6 +103,18 @@ PropertyNotification::PropertyNotification( UpdateManager& updateManager,
       }
     }
 
+  // In Size Property case, swapping components occurs sometimes.
+  // To cover swapping components, previous and current components should be compared.
+  if( mObjectPropertyIndex == Dali::Actor::Property::SIZE
+      && mObject->GetPropertyType(mObjectPropertyIndex) == Property::VECTOR3 )
+  {
+    mCompare = true;
+    for( int i = 0; i < 3; ++i )
+    {
+      mRawConditionArgs.PushBack( 0.0f );
+    }
+  }
+
     // all objects always have scene object
     CreateSceneObject();
   }
@@ -206,7 +220,8 @@ void PropertyNotification::CreateSceneObject()
                                                                    mComponentIndex,
                                                                    GetImplementation( mCondition ).type,
                                                                    mRawConditionArgs,
-                                                                   mNotifyMode );
+                                                                   mNotifyMode,
+                                                                   mCompare );
     OwnerPointer< SceneGraph::PropertyNotification > transferOwnership( const_cast<SceneGraph::PropertyNotification*>( mPropertyNotification ) );
     AddPropertyNotificationMessage( mUpdateManager, transferOwnership );
   }
index 6810b4f..79ccb07 100644 (file)
@@ -196,6 +196,7 @@ private:
   RawArgumentContainer         mRawConditionArgs;             ///< The Raw Condition args. (float type)
   NotifyMode                   mNotifyMode;                   ///< The current notification mode.
   bool                         mNotifyResult;                 ///< The result of the last condition check that caused a signal emit
+  bool                         mCompare;                      ///< The flag of comparing previous property's raw value and current.
 };
 
 } // namespace Internal
index f9db963..01766df 100644 (file)
@@ -35,7 +35,7 @@ namespace Dali
 namespace Integration
 {
 
-class Event;
+struct Event;
 
 }
 
index 3c99c3e..8505191 100644 (file)
@@ -36,7 +36,7 @@ struct TouchEvent;
 
 namespace Internal
 {
-class GestureRequest;
+struct GestureRequest;
 class Scene;
 
 template< typename T>
index e305d42..78cc111 100644 (file)
@@ -37,6 +37,9 @@ namespace
 const int32_t ARGINDEX_REF_VALUE = 0;
 const int32_t ARGINDEX_STEP_SIZE = 1;
 const int32_t ARGINDEX_CURRENT_STEP = 2;
+const int32_t ARGINDEX_FIRST_VALUE = 3;
+const int32_t ARGINDEX_SECOND_VALUE = 4;
+const int32_t ARGINDEX_THIRD_VALUE = 5;
 
 } // namespace
 
@@ -81,6 +84,21 @@ ConditionFunction Step::GetFunction(Property::Type valueType)
   return function;
 }
 
+ConditionFunction Step::GetCompareFunction( Property::Type valueType )
+{
+    ConditionFunction function = NULL;
+    if( valueType == Property::VECTOR3 )
+    {
+      function = EvalAndCompareVector3;
+    }
+    else
+    {
+      function = GetFunction( valueType );
+    }
+
+    return function;
+}
+
 bool Step::Evaluate( const float propertyValue, PropertyNotification::RawArgumentContainer& arg )
 {
   const float refValue = arg[ARGINDEX_REF_VALUE];
@@ -111,6 +129,7 @@ bool Step::EvalFloat( const Dali::PropertyInput& value, PropertyNotification::Ra
   const float propertyValue = value.GetFloat();
   return Evaluate( propertyValue, arg );
 }
+
 bool Step::EvalVector2( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg )
 {
   const float propertyValue = value.GetVector2().LengthSquared();
@@ -123,7 +142,26 @@ bool Step::EvalVector3( const Dali::PropertyInput& value, PropertyNotification::
   return Evaluate( propertyValue, arg );
 }
 
-bool Step::EvalVector4( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg )
+bool Step::EvalAndCompareVector3( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg )
+{
+  float propertyValue = value.GetVector3().LengthSquared();
+  bool result = Evaluate( propertyValue, arg );
+  if( result == false )
+  {
+    if( ( fabsf( arg[ARGINDEX_FIRST_VALUE] - value.GetVector3().x ) > Math::MACHINE_EPSILON_1 )
+        || ( fabsf( arg[ARGINDEX_SECOND_VALUE] - value.GetVector3().y ) > Math::MACHINE_EPSILON_1 )
+        || ( fabsf( arg[ARGINDEX_THIRD_VALUE] - value.GetVector3().z ) > Math::MACHINE_EPSILON_1 ) )
+    {
+      result = true;
+    }
+  }
+  arg[ARGINDEX_FIRST_VALUE] = value.GetVector3().x;
+  arg[ARGINDEX_SECOND_VALUE] = value.GetVector3().y;
+  arg[ARGINDEX_THIRD_VALUE] = value.GetVector3().z;
+  return result;
+}
+
+bool Step::EvalVector4( const  Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg )
 {
   const float propertyValue = value.GetVector4().LengthSquared();
   return Evaluate( propertyValue, arg );
index c500b8e..c7a801a 100644 (file)
@@ -55,6 +55,14 @@ public:
    */
   static ConditionFunction GetFunction( Property::Type valueType );
 
+  /**
+   * @return function pointer to the correct condition function, based on
+   * the type of value being examined.
+   *
+   * This function pointer is to compare previous and current components for the swapping case.
+   */
+  static ConditionFunction GetCompareFunction( Property::Type valueType );
+
 private:
 
   static bool Evaluate( const float propertyValue, PropertyNotification::RawArgumentContainer& arg );
@@ -92,6 +100,17 @@ private:
   static bool EvalVector3( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg );
 
   /**
+   * Checks if Vector3.Length() is Outside
+   *
+   * If previous Vector3.Lenght() and current are same, the raw datas are checked with comparing these values.
+   *
+   * @param[in] value The value being examined.
+   * @param[in] arg The supplied arguments for the condition.
+   * @return Condition result (true if condition met, false if not)
+   */
+  static bool EvalAndCompareVector3( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg );
+
+  /**
    * Checks if Vector4.Length() is Outside
    * @param[in] value The value being examined.
    * @param[in] arg The supplied arguments for the condition.
@@ -106,7 +125,6 @@ private:
    * @return Condition result (true if condition met, false if not)
    */
   static bool EvalDefault( const Dali::PropertyInput& value, PropertyNotification::RawArgumentContainer& arg );
-
 };
 
 } // namespace SceneGraph
index 82464fc..57a78eb 100644 (file)
@@ -39,9 +39,10 @@ PropertyNotification* PropertyNotification::New(Object& object,
                                                 int componentIndex,
                                                 ConditionType condition,
                                                 RawArgumentContainer& arguments,
-                                                NotifyMode notifyMode)
+                                                NotifyMode notifyMode,
+                                                bool compare)
 {
-  return new PropertyNotification( object, propertyIndex, propertyType, componentIndex, condition, arguments, notifyMode );
+  return new PropertyNotification( object, propertyIndex, propertyType, componentIndex, condition, arguments, notifyMode, compare );
 }
 
 
@@ -51,7 +52,8 @@ PropertyNotification::PropertyNotification(Object& object,
                                            int componentIndex,
                                            ConditionType condition,
                                            RawArgumentContainer& arguments,
-                                           NotifyMode notifyMode)
+                                           NotifyMode notifyMode,
+                                           bool compare)
 : mObject(&object),
   mPropertyIndex(propertyIndex),
   mPropertyType(propertyType),
@@ -89,7 +91,14 @@ PropertyNotification::PropertyNotification(Object& object,
     }
     case PropertyCondition::Step:
     {
-      mConditionFunction = Step::GetFunction(mPropertyType);
+      if( compare == true )
+      {
+        mConditionFunction = Step::GetCompareFunction(mPropertyType);
+      }
+      else
+      {
+        mConditionFunction = Step::GetFunction(mPropertyType);
+      }
       break;
     }
     case PropertyCondition::VariableStep:
@@ -147,8 +156,8 @@ bool PropertyNotification::Check( BufferIndex bufferIndex )
   }
 
   if( mValid != currentValid
-      || (currentValid && ((mConditionType == PropertyCondition::Step)
-                        || (mConditionType == PropertyCondition::VariableStep))) )
+      || ( currentValid && ( ( mConditionType == PropertyCondition::Step )
+                        || ( mConditionType == PropertyCondition::VariableStep ) ) ) )
   {
     mValid = currentValid;
     //  means don't notify so notifyRequired stays false
index 5f124b9..9bc139c 100644 (file)
@@ -65,6 +65,7 @@ public:
    * @param[in] condition The condition type (e.g. LessThan, GreaterThan...)
    * @param[in] arguments The arguments which accompany the condition.
    * @param[in] notifyMode The notification mode setting
+   * @param[in] compare The flag of comparing the previous and current data.
    * @return A new PropertyNotification object.
    */
   static PropertyNotification* New(Object& object,
@@ -73,7 +74,8 @@ public:
                                    int componentIndex,
                                    ConditionType condition,
                                    RawArgumentContainer& arguments,
-                                   NotifyMode notifyMode);
+                                   NotifyMode notifyMode,
+                                   bool compare);
 
   /**
    * Virtual destructor
@@ -121,7 +123,8 @@ protected:
                        int componentIndex,
                        ConditionType condition,
                        RawArgumentContainer& arguments,
-                       NotifyMode notifyMode);
+                       NotifyMode notifyMode,
+                       bool compare);
 
 private:
 
index d5424f8..5b668f5 100755 (executable)
@@ -204,10 +204,12 @@ public:
 #endif
 
 /// Use DALI_FALLTHROUGH in switch statements where one case is supposed to fall through into another case
+#define DALI_FALLTHROUGH
+#if __GNUC__
 #if __has_cpp_attribute(fallthrough)
+#undef DALI_FALLTHROUGH
 #define DALI_FALLTHROUGH [[fallthrough]]
-#else
-#define DALI_FALLTHROUGH
+#endif
 #endif
 
 #endif // DALI_COMMON_H
index 6df1435..a4f6de2 100644 (file)
@@ -27,8 +27,8 @@ namespace Dali
 {
 
 const uint32_t CORE_MAJOR_VERSION = 1;
-const uint32_t CORE_MINOR_VERSION = 4;
-const uint32_t CORE_MICRO_VERSION = 57;
+const uint32_t CORE_MINOR_VERSION = 5;
+const uint32_t CORE_MICRO_VERSION = 0;
 const char * const CORE_BUILD_DATE    = __DATE__ " " __TIME__;
 
 #ifdef DEBUG_ENABLED
index d91c198..55024c7 100644 (file)
@@ -167,13 +167,17 @@ inline float GetRangedEpsilon( float a, float b )
  * @param[in] value the value to compare
  * @return true if the value is equal to zero
  */
+#if __GNUC__
 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wfloat-equal"
+#endif
 inline bool EqualsZero( float value )
 {
   return value == 0.0f;
 }
+#if __GNUC__
 #pragma GCC diagnostic pop
+#endif
 
 /**
  * @brief Helper function to compare equality of two floating point values.
index cb84ba2..4964048 100644 (file)
@@ -37,7 +37,7 @@ namespace Internal DALI_INTERNAL
 {
 class TypeRegistry;
 }
-class DefaultPropertyMetadata;
+struct DefaultPropertyMetadata;
 
 /**
  * @brief The TypeRegistry allows registration of type instance creation functions.
index a9645cf..cc4a55e 100644 (file)
@@ -1,6 +1,6 @@
 Name:       dali
 Summary:    DALi 3D Engine
-Version:    1.4.57
+Version:    1.5.0
 Release:    1
 Group:      System/Libraries
 License:    Apache-2.0 and BSD-3-Clause and MIT