bool renderer::Layer::visible() const
{
return (frameNo() >= mLayerData->inFrame() &&
- frameNo() < mLayerData->outFrame());
+ frameNo() <= mLayerData->outFrame());
}
void renderer::Layer::preprocess(const VRect &clip)
{
return long(frameAtPos(timeInSec / duration()));
}
- size_t totalFrame() const { return mEndFrame - mStartFrame; }
- long frameDuration() const { return mEndFrame - mStartFrame - 1; }
+ size_t totalFrame() const { return mEndFrame - mStartFrame + 1; }
+ long frameDuration() const { return mEndFrame - mStartFrame; }
float frameRate() const { return mFrameRate; }
size_t startFrame() const { return mStartFrame; }
size_t endFrame() const { return mEndFrame; }
} else if (0 == strcmp(key, "h")) {
comp->mSize.setHeight(GetInt());
} else if (0 == strcmp(key, "ip")) {
- comp->mStartFrame = GetDouble();
+ comp->mStartFrame = std::lround(GetDouble());
} else if (0 == strcmp(key, "op")) {
- comp->mEndFrame = GetDouble();
+ comp->mEndFrame = std::lround(GetDouble());
} else if (0 == strcmp(key, "fr")) {
comp->mFrameRate = GetDouble();
} else if (0 == strcmp(key, "assets")) {