summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
3c6245a)
Change-Id: I145d138f6a6a16e425dae577d2ecc88fd2dbfcbb
bool VectorAnimationTask::Rasterize()
{
bool stopped = false;
bool VectorAnimationTask::Rasterize()
{
bool stopped = false;
- uint32_t currentFrame, droppedFrames = 0;
{
ConditionalWait::ScopedLock lock(mConditionalWait);
{
ConditionalWait::ScopedLock lock(mConditionalWait);
// The task will be destroyed. We don't need rasterization.
return false;
}
// The task will be destroyed. We don't need rasterization.
return false;
}
- droppedFrames = mDroppedFrames;
}
ApplyAnimationData();
if(mPlayState == PlayState::PLAYING && mUpdateFrameNumber)
{
}
ApplyAnimationData();
if(mPlayState == PlayState::PLAYING && mUpdateFrameNumber)
{
- mCurrentFrame = mForward ? mCurrentFrame + droppedFrames + 1 : mCurrentFrame - droppedFrames - 1;
+ mCurrentFrame = mForward ? mCurrentFrame + mDroppedFrames + 1 : mCurrentFrame - mDroppedFrames - 1;
Dali::ClampInPlace(mCurrentFrame, mStartFrame, mEndFrame);
}
Dali::ClampInPlace(mCurrentFrame, mStartFrame, mEndFrame);
}
VectorAnimationTask::TimePoint VectorAnimationTask::CalculateNextFrameTime(bool renderNow)
{
VectorAnimationTask::TimePoint VectorAnimationTask::CalculateNextFrameTime(bool renderNow)
{
- uint32_t droppedFrames = 0;
-
// std::chrono::time_point template has second parameter duration which defaults to the std::chrono::system_clock supported
// duration. In some C++11 implementations it is a milliseconds duration, so it fails to compile unless mNextFrameStartTime
// is casted to use the default duration.
// std::chrono::time_point template has second parameter duration which defaults to the std::chrono::system_clock supported
// duration. In some C++11 implementations it is a milliseconds duration, so it fails to compile unless mNextFrameStartTime
// is casted to use the default duration.
if(renderNow)
{
mNextFrameStartTime = current;
if(renderNow)
{
mNextFrameStartTime = current;
}
else if(mNextFrameStartTime < current)
{
}
else if(mNextFrameStartTime < current)
{
+ uint32_t droppedFrames = 0;
+
while(current > std::chrono::time_point_cast<TimePoint::duration>(mNextFrameStartTime + std::chrono::microseconds(mFrameDurationMicroSeconds)))
{
droppedFrames++;
mNextFrameStartTime = std::chrono::time_point_cast<TimePoint::duration>(mNextFrameStartTime + std::chrono::microseconds(mFrameDurationMicroSeconds));
}
while(current > std::chrono::time_point_cast<TimePoint::duration>(mNextFrameStartTime + std::chrono::microseconds(mFrameDurationMicroSeconds)))
{
droppedFrames++;
mNextFrameStartTime = std::chrono::time_point_cast<TimePoint::duration>(mNextFrameStartTime + std::chrono::microseconds(mFrameDurationMicroSeconds));
}
- {
- ConditionalWait::ScopedLock lock(mConditionalWait);
- mDroppedFrames = droppedFrames;
- }
-
mNextFrameStartTime = current;
mNextFrameStartTime = current;
+ mDroppedFrames = droppedFrames;
}
return mNextFrameStartTime;
}
return mNextFrameStartTime;