[Tizen] Fixed Cache for AnimatedVectorImageVisual
[platform/core/uifw/dali-adaptor.git] / dali / internal / vector-animation / common / vector-animation-renderer-plugin-proxy.cpp
index 6eae9bf..6a3c015 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
 #include <dali/internal/vector-animation/common/vector-animation-renderer-plugin-proxy.h>
 
 // EXTERNAL INCLUDES
-#include <dlfcn.h>
 #include <dali/integration-api/debug.h>
+#include <dlfcn.h>
 
 namespace Dali
 {
-
 namespace Internal
 {
-
 namespace Adaptor
 {
-
 namespace
 {
-
 // The default plugin name
-const char* DEFAULT_OBJECT_NAME( "libdali-vector-animation-renderer-plugin.so" );
+const char* DEFAULT_OBJECT_NAME("libdali2-vector-animation-renderer-plugin.so");
 
-}
+} // namespace
 
-VectorAnimationRendererPluginProxy::VectorAnimationRendererPluginProxy( const std::string& sharedObjectName )
+VectorAnimationRendererPluginProxy::VectorAnimationRendererPluginProxy(const std::string& sharedObjectName)
 : mSharedObjectName(),
-  mLibHandle( NULL ),
-  mPlugin( NULL ),
-  mCreateVectorAnimationRendererPtr( NULL ),
+  mLibHandle(NULL),
+  mPlugin(NULL),
+  mCreateVectorAnimationRendererPtr(NULL),
   mDefaultSignal()
 {
-  if( !sharedObjectName.empty() )
+  if(!sharedObjectName.empty())
   {
     mSharedObjectName = sharedObjectName;
   }
@@ -60,92 +56,100 @@ VectorAnimationRendererPluginProxy::VectorAnimationRendererPluginProxy( const st
 
 VectorAnimationRendererPluginProxy::~VectorAnimationRendererPluginProxy()
 {
-  if( mPlugin )
+  if(mPlugin)
   {
     delete mPlugin;
     mPlugin = NULL;
 
-    if( mLibHandle && dlclose( mLibHandle ) )
+    if(mLibHandle && dlclose(mLibHandle))
     {
-      DALI_LOG_ERROR( "Error closing vector animation renderer plugin library: %s\n", dlerror() );
+      DALI_LOG_ERROR("Error closing vector animation renderer plugin library: %s\n", dlerror());
     }
   }
 }
 
 void VectorAnimationRendererPluginProxy::Initialize()
 {
-  mLibHandle = dlopen( mSharedObjectName.c_str(), RTLD_LAZY );
+  mLibHandle = dlopen(mSharedObjectName.c_str(), RTLD_LAZY);
 
   char* error = dlerror();
-  if( mLibHandle == NULL || error != NULL )
+  if(mLibHandle == NULL || error != NULL)
   {
-    DALI_LOG_ERROR( "VectorAnimationRendererPluginProxy::Initialize: dlopen error [%s]\n", error );
+    DALI_LOG_ERROR("VectorAnimationRendererPluginProxy::Initialize: dlopen error [%s]\n", error);
     return;
   }
 
   // load plugin
-  mCreateVectorAnimationRendererPtr = reinterpret_cast< CreateVectorAnimationRendererFunction >( dlsym( mLibHandle, "CreateVectorAnimationRendererPlugin" ) );
+  mCreateVectorAnimationRendererPtr = reinterpret_cast<CreateVectorAnimationRendererFunction>(dlsym(mLibHandle, "CreateVectorAnimationRendererPlugin"));
 
   error = dlerror();
-  if( mCreateVectorAnimationRendererPtr == NULL || error != NULL )
+  if(mCreateVectorAnimationRendererPtr == NULL || error != NULL)
   {
-    DALI_LOG_ERROR( "VectorAnimationRendererPluginProxy::Initialize: Cannot load symbol: %s\n", error );
+    DALI_LOG_ERROR("VectorAnimationRendererPluginProxy::Initialize: Cannot load symbol: %s\n", error);
     return;
   }
 
   mPlugin = mCreateVectorAnimationRendererPtr();
-  if( !mPlugin )
+  if(!mPlugin)
   {
     DALI_LOG_ERROR("VectorAnimationRendererPluginProxy::Initialize: Plugin creation failed\n");
     return;
   }
 }
 
-bool VectorAnimationRendererPluginProxy::Initialize( const std::string& url )
+void VectorAnimationRendererPluginProxy::Finalize()
+{
+  if(mPlugin)
+  {
+    mPlugin->Finalize();
+  }
+}
+
+bool VectorAnimationRendererPluginProxy::Load(const std::string& url)
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    return mPlugin->Initialize( url );
+    return mPlugin->Load(url);
   }
   return false;
 }
 
-void VectorAnimationRendererPluginProxy::Finalize()
+void VectorAnimationRendererPluginProxy::SetRenderer(Dali::Renderer renderer)
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    mPlugin->Finalize();
+    mPlugin->SetRenderer(renderer);
   }
 }
 
-void VectorAnimationRendererPluginProxy::SetRenderer( Dali::Renderer renderer )
+void VectorAnimationRendererPluginProxy::SetSize(uint32_t width, uint32_t height)
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    mPlugin->SetRenderer( renderer );
+    mPlugin->SetSize(width, height);
   }
 }
 
-void VectorAnimationRendererPluginProxy::SetSize( uint32_t width, uint32_t height )
+bool VectorAnimationRendererPluginProxy::Render(uint32_t frameNumber)
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    mPlugin->SetSize( width, height );
+    return mPlugin->Render(frameNumber);
   }
+  return false;
 }
 
-bool VectorAnimationRendererPluginProxy::Render( uint32_t frameNumber )
+void VectorAnimationRendererPluginProxy::RenderStopped()
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    return mPlugin->Render( frameNumber );
+    mPlugin->RenderStopped();
   }
-  return false;
 }
 
 uint32_t VectorAnimationRendererPluginProxy::GetTotalFrameNumber() const
 {
-  if( mPlugin )
+  if(mPlugin)
   {
     return mPlugin->GetTotalFrameNumber();
   }
@@ -154,41 +158,70 @@ uint32_t VectorAnimationRendererPluginProxy::GetTotalFrameNumber() const
 
 float VectorAnimationRendererPluginProxy::GetFrameRate() const
 {
-  if( mPlugin )
+  if(mPlugin)
   {
     return mPlugin->GetFrameRate();
   }
   return 0.0f;
 }
 
-void VectorAnimationRendererPluginProxy::GetDefaultSize( uint32_t& width, uint32_t& height ) const
+void VectorAnimationRendererPluginProxy::GetDefaultSize(uint32_t& width, uint32_t& height) const
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    mPlugin->GetDefaultSize( width, height );
+    mPlugin->GetDefaultSize(width, height);
+  }
+  else
+  {
+    width  = 0;
+    height = 0;
   }
 }
 
-void VectorAnimationRendererPluginProxy::GetLayerInfo( Property::Map& map ) const
+void VectorAnimationRendererPluginProxy::GetLayerInfo(Property::Map& map) const
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    mPlugin->GetLayerInfo( map );
+    mPlugin->GetLayerInfo(map);
   }
 }
 
-bool VectorAnimationRendererPluginProxy::GetMarkerInfo( const std::string& marker, uint32_t& startFrame, uint32_t& endFrame ) const
+bool VectorAnimationRendererPluginProxy::GetMarkerInfo(const std::string& marker, uint32_t& startFrame, uint32_t& endFrame) const
 {
-  if( mPlugin )
+  if(mPlugin)
   {
-    return mPlugin->GetMarkerInfo( marker, startFrame, endFrame );
+    return mPlugin->GetMarkerInfo(marker, startFrame, endFrame);
   }
   return false;
 }
 
+void VectorAnimationRendererPluginProxy::InvalidateBuffer()
+{
+  if(mPlugin)
+  {
+    mPlugin->InvalidateBuffer();
+  }
+}
+
+void VectorAnimationRendererPluginProxy::AddPropertyValueCallback(const std::string& keyPath, Dali::VectorAnimationRenderer::VectorProperty property, CallbackBase* callback, int32_t id)
+{
+  if(mPlugin)
+  {
+    mPlugin->AddPropertyValueCallback(keyPath, property, callback, id);
+  }
+}
+
+void VectorAnimationRendererPluginProxy::KeepRasterizedBuffer()
+{
+  if(mPlugin)
+  {
+    mPlugin->KeepRasterizedBuffer();
+  }
+}
+
 VectorAnimationRendererPlugin::UploadCompletedSignalType& VectorAnimationRendererPluginProxy::UploadCompletedSignal()
 {
-  if( mPlugin )
+  if(mPlugin)
   {
     return mPlugin->UploadCompletedSignal();
   }