std::atomic<bool> mRenderInProgress;
private:
- float mPos;
+ float mPos = 0.0;
+ bool mChanged = true;
};
void LOTPlayerPrivate::setSize(const VSize &sz)
{
- mSize = sz;
+ if (mSize != sz) {
+ mChanged = true;
+ mSize = sz;
+ }
}
VSize LOTPlayerPrivate::size() const
if (pos > 1.0) pos = 1.0;
if (pos < 0) pos = 0;
+ if (!vCompare(pos, mPos)) mChanged = true;
+
mPos = pos;
return true;
bool LOTPlayerPrivate::update(float pos)
{
+ //Nothing updated, skip it.
+ if (!mChanged) return true;
+
mCompItem->resize(mSize);
this->setPos(pos);
if (!mCompItem->update(frameNumber)) return false;
+ mChanged = false;
+
return true;
}
return result;
}
-LOTPlayerPrivate::LOTPlayerPrivate() : mRenderInProgress(false), mPos(0) {}
+LOTPlayerPrivate::LOTPlayerPrivate() : mRenderInProgress(false) {}
bool LOTPlayerPrivate::setFilePath(std::string path)
{