#define DALI_TOOLKIT_VECTOR_ANIMATION_TASK_H
/*
- * Copyright (c) 2023 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2024 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.
// EXTERNAL INCLUDES
#include <dali/devel-api/adaptor-framework/event-thread-callback.h>
#include <dali/devel-api/adaptor-framework/vector-animation-renderer.h>
-#include <dali/devel-api/threading/conditional-wait.h>
+#include <dali/devel-api/threading/mutex.h>
#include <dali/public-api/adaptor-framework/async-task-manager.h>
#include <dali/public-api/adaptor-framework/encoded-image-buffer.h>
#include <dali/public-api/common/vector-wrapper.h>
currentFrame(0),
width(0),
height(0),
- loopCount(-1)
+ loopCount(-1),
+ playStateId(0)
{
}
width = rhs.width;
height = rhs.height;
loopCount = rhs.loopCount;
+ playStateId = rhs.playStateId;
dynamicProperties.insert(dynamicProperties.end(), rhs.dynamicProperties.begin(), rhs.dynamicProperties.end());
return *this;
}
uint32_t width;
uint32_t height;
int32_t loopCount;
+ uint32_t playStateId;
};
/**
return "VectorAnimationTask";
}
+ void KeepRasterizedBuffer(bool enableFrameCache)
+ {
+ mEnableFrameCache = enableFrameCache;
+ }
+
+ bool IsKeptRasterizedBuffer()
+ {
+ return mEnableFrameCache;
+ }
+
private:
/**
* @brief Loads the animation file.
/**
* @brief Event callback from rasterize thread. This is called when the file loading is completed.
*/
- void OnLoadCompleted();
+ void OnLoadCompleted(uint32_t argument);
// Undefined
VectorAnimationTask(const VectorAnimationTask& task) = delete;
VectorAnimationRenderer mVectorRenderer;
std::vector<AnimationData> mAnimationData[2];
VectorAnimationThread& mVectorAnimationThread;
- ConditionalWait mConditionalWait;
+ Mutex mMutex;
ResourceReadySignalType mResourceReadySignal;
std::unique_ptr<CallbackBase> mAnimationFinishedCallback{};
std::unique_ptr<CallbackBase> mLoadCompletedCallback{};
uint32_t mWidth;
uint32_t mHeight;
uint32_t mAnimationDataIndex;
+ uint32_t mAppliedPlayStateId;
int32_t mLoopCount;
int32_t mCurrentLoop;
bool mForward : 1;
bool mKeepAnimation : 1;
mutable bool mLayerInfoCached : 1;
mutable bool mMarkerInfoCached : 1;
+ bool mEnableFrameCache : 1;
+ bool mSizeUpdated : 1;
};
} // namespace Internal