In following cases,
```c++
animation->setValue<Property::FillColor>("**", red);
animation->render(0, surface);
// after render is finished
animation->setValue<Property::FillColor>("**", blue);
animation->render(0, surface);
```
Or
```c++
animation->setValue<Property::FillColor>("**", [&](const FrameInfo& info) {
return colors->getColor();
});
colors->setColor(red);
animation->render(0, surface);
// after render is finished
colors->setColor(blue);
animation->render(0, surface);
```
the second render request for both cases should not be ignored even if it's the same request as previous.
Change-Id: I0337e885e7d7623c01332415207829da8549ddce
Signed-off-by: Jiyun Yang <ji.yang@samsung.com>
void renderer::Composition::setValue(const std::string &keypath,
LOTVariant & value)
{
+ mHasDynamicValue = true;
LOTKeyPath key(keypath);
mRootLayer->resolveKeyPath(key, 0, value);
}
bool keepAspectRatio)
{
// check if cached frame is same as requested frame.
- if ((mViewSize == size) && (mCurFrameNo == frameNo) &&
+ if (!mHasDynamicValue && (mViewSize == size) && (mCurFrameNo == frameNo) &&
(mKeepAspectRatio == keepAspectRatio))
return false;
VArenaAlloc mAllocator{2048};
int mCurFrameNo;
bool mKeepAspectRatio{true};
+ bool mHasDynamicValue{false};
};
class Layer {