i.drawable->mFlag = VDrawable::DirtyState::None;
i.paintNodeRef->updateRenderNode(i.pathNodeRef, i.drawable,
i.sameGroup);
- if (mPathChanged) {
- i.drawable->mPath = mFinalPath;
+ if (mPathChanged)
i.drawable->mFlag |= VDrawable::DirtyState::Path;
- }
+
+ if (i.drawable->mFlag & VDrawable::DirtyState::Path)
+ i.drawable->mPath = mFinalPath;
}
}
return receiver;
}
- std::future<VRle> strokeRle(const VPath &&path, VRle &&rle, CapStyle cap, JoinStyle join,
+ std::future<VRle> strokeRle(VPath &&path, VRle &&rle, CapStyle cap, JoinStyle join,
float width, float meterLimit)
{
RleTask *task = new RleTask();
return async(task);
}
- std::future<VRle> fillRle(const VPath &&path, VRle &&rle, FillRule fillRule)
+ std::future<VRle> fillRle(VPath &&path, VRle &&rle, FillRule fillRule)
{
RleTask *task = new RleTask();
task->path = std::move(path);
VRaster::~VRaster() {}
-std::future<VRle> VRaster::generateFillInfo(const VPath &&path, VRle &&rle,
+std::future<VRle> VRaster::generateFillInfo(VPath &&path, VRle &&rle,
FillRule fillRule)
{
if (path.isEmpty()) {
return raster_scheduler.fillRle(std::move(path), std::move(rle), fillRule);
}
-std::future<VRle> VRaster::generateStrokeInfo(const VPath &&path, VRle &&rle, CapStyle cap,
+std::future<VRle> VRaster::generateStrokeInfo(VPath &&path, VRle &&rle, CapStyle cap,
JoinStyle join, float width,
float meterLimit)
{
VRaster &operator=(VRaster const &) = delete;
VRaster &operator=(VRaster &&) = delete;
- std::future<VRle> generateFillInfo(const VPath &&path, VRle &&rle,
+ std::future<VRle> generateFillInfo(VPath &&path, VRle &&rle,
FillRule fillRule = FillRule::Winding);
- std::future<VRle> generateStrokeInfo(const VPath &&path, VRle &&rle, CapStyle cap,
+ std::future<VRle> generateStrokeInfo(VPath &&path, VRle &&rle, CapStyle cap,
JoinStyle join, float width,
float meterLimit);