Lines Matching refs:frames
186 uint32_t _bsearch(T* frames, float frameNo) in _bsearch() argument
189 int32_t high = int32_t(frames->count) - 1; in _bsearch()
193 auto frame = frames->data + mid; in _bsearch()
204 uint32_t _nearest(T* frames, float frameNo) in _nearest() argument
206 if (frames) { in _nearest()
207 auto key = _bsearch(frames, frameNo); in _nearest()
208 if (key == frames->count - 1) return key; in _nearest()
209 …return (fabsf(frames->data[key].no - frameNo) < fabsf(frames->data[key + 1].no - frameNo)) ? key :… in _nearest()
216 float _frameNo(T* frames, int32_t key) in _frameNo() argument
218 if (!frames) return 0.0f; in _frameNo()
220 if (key >= (int32_t) frames->count) key = (int32_t)(frames->count - 1); in _frameNo()
221 return (*frames)[key].no; in _frameNo()
226 float _loop(T* frames, float frameNo, LottieExpression* exp) in _loop() argument
228 …if (frameNo >= exp->loop.in || frameNo < frames->first().no || frameNo < frames->last().no) return… in _loop()
230 frameNo -= frames->first().no; in _loop()
234 … return fmodf(frameNo, frames->last().no - frames->first().no) + (*frames)[exp->loop.key].no; in _loop()
237 auto range = frames->last().no - (*frames)[exp->loop.key].no; in _loop()
240 return (forward ? frameNo : (range - frameNo)) + (*frames)[exp->loop.key].no; in _loop()
243 …return fmodf(frameNo, (*frames)[frames->count - 1 - exp->loop.key].no - frames->first().no) + fram… in _loop()
246 auto range = (*frames)[frames->count - 1 - exp->loop.key].no - frames->first().no; in _loop()
249 return (forward ? frameNo : (range - frameNo)) + frames->first().no; in _loop()
261 Array<LottieScalarFrame<T>>* frames = nullptr; member
274 delete(frames); in release()
275 frames = nullptr; in release()
284 return _nearest(frames, frameNo); in nearest()
289 return frames ? frames->count : 1; in frameCnt()
294 return _frameNo(frames, key); in frameNo()
299 if (!frames) frames = new Array<LottieScalarFrame<T>>; in newFrame()
300 if (frames->count + 1 >= frames->reserved) { in newFrame()
301 auto old = frames->reserved; in newFrame()
302 frames->grow(frames->count + 2); in newFrame()
303 …memset((void*)(frames->data + old), 0x00, sizeof(LottieScalarFrame<T>) * (frames->reserved - old)); in newFrame()
305 ++frames->count; in newFrame()
306 return frames->last(); in newFrame()
311 return (*frames)[frames->count]; in nextFrame()
316 if (!frames) return value; in operator()
317 if (frames->count == 1 || frameNo <= frames->first().no) return frames->first().value; in operator()
318 if (frameNo >= frames->last().no) return frames->last().value; in operator()
320 auto frame = frames->data + _bsearch(frames, frameNo); in operator()
329 … if (exp->loop.mode != LottieExpression::LoopMode::None) frameNo = _loop(frames, frameNo, exp); in operator()
338 if (other.frames) {
339 frames = other.frames;
340 const_cast<LottieGenericProperty<T>&>(other).frames = nullptr;
352 Array<LottieScalarFrame<PathSet>>* frames = nullptr; member
370 if (!frames) return; in release()
372 for (auto p = frames->begin(); p < frames->end(); ++p) { in release()
376 free(frames->data); in release()
377 free(frames); in release()
382 return _nearest(frames, frameNo); in nearest()
387 return frames ? frames->count : 1; in frameCnt()
392 return _frameNo(frames, key); in frameNo()
397 if (!frames) { in newFrame()
398 …frames = static_cast<Array<LottieScalarFrame<PathSet>>*>(calloc(1, sizeof(Array<LottieScalarFrame<… in newFrame()
400 if (frames->count + 1 >= frames->reserved) { in newFrame()
401 auto old = frames->reserved; in newFrame()
402 frames->grow(frames->count + 2); in newFrame()
403 …memset((void*)(frames->data + old), 0x00, sizeof(LottieScalarFrame<PathSet>) * (frames->reserved -… in newFrame()
405 ++frames->count; in newFrame()
406 return frames->last(); in newFrame()
411 return (*frames)[frames->count]; in nextFrame()
421 if (!frames) path = &value; in operator()
422 else if (frames->count == 1 || frameNo <= frames->first().no) path = &frames->first().value; in operator()
423 else if (frameNo >= frames->last().no) path = &frames->last().value; in operator()
425 frame = frames->data + _bsearch(frames, frameNo); in operator()
493 … if (exp->loop.mode != LottieExpression::LoopMode::None) frameNo = _loop(frames, frameNo, exp); in operator()
505 Array<LottieScalarFrame<ColorStop>>* frames = nullptr; member
527 if (!frames) return; in release()
529 for (auto p = frames->begin(); p < frames->end(); ++p) { in release()
532 free(frames->data); in release()
533 free(frames); in release()
534 frames = nullptr; in release()
539 return _nearest(frames, frameNo); in nearest()
544 return frames ? frames->count : 1; in frameCnt()
549 return _frameNo(frames, key); in frameNo()
554 if (!frames) { in newFrame()
555 …frames = static_cast<Array<LottieScalarFrame<ColorStop>>*>(calloc(1, sizeof(Array<LottieScalarFram… in newFrame()
557 if (frames->count + 1 >= frames->reserved) { in newFrame()
558 auto old = frames->reserved; in newFrame()
559 frames->grow(frames->count + 2); in newFrame()
560 …memset((void*)(frames->data + old), 0x00, sizeof(LottieScalarFrame<ColorStop>) * (frames->reserved… in newFrame()
562 ++frames->count; in newFrame()
563 return frames->last(); in newFrame()
568 return (*frames)[frames->count]; in nextFrame()
574 … if (exp->loop.mode != LottieExpression::LoopMode::None) frameNo = _loop(frames, frameNo, exp); in operator()
578 if (!frames) return fill->colorStops(value.data, count); in operator()
580 if (frames->count == 1 || frameNo <= frames->first().no) { in operator()
581 return fill->colorStops(frames->first().value.data, count); in operator()
584 if (frameNo >= frames->last().no) { in operator()
585 return fill->colorStops(frames->last().value.data, count); in operator()
588 auto frame = frames->data + _bsearch(frames, frameNo); in operator()
619 if (other.frames) {
620 frames = other.frames;
621 const_cast<LottieColorStop&>(other).frames = nullptr;
638 Array<LottieVectorFrame<Point>>* frames = nullptr; member
652 delete(frames); in release()
653 frames = nullptr; in release()
663 return _nearest(frames, frameNo); in nearest()
668 return frames ? frames->count : 1; in frameCnt()
673 return _frameNo(frames, key); in frameNo()
678 if (!frames) frames = new Array<LottieVectorFrame<Point>>; in newFrame()
679 if (frames->count + 1 >= frames->reserved) { in newFrame()
680 auto old = frames->reserved; in newFrame()
681 frames->grow(frames->count + 2); in newFrame()
682 …memset((void*)(frames->data + old), 0x00, sizeof(LottieVectorFrame<Point>) * (frames->reserved - o… in newFrame()
684 ++frames->count; in newFrame()
685 return frames->last(); in newFrame()
690 return (*frames)[frames->count]; in nextFrame()
695 if (!frames) return value; in operator()
696 if (frames->count == 1 || frameNo <= frames->first().no) return frames->first().value; in operator()
697 if (frameNo >= frames->last().no) return frames->last().value; in operator()
699 auto frame = frames->data + _bsearch(frames, frameNo); in operator()
708 … if (exp->loop.mode != LottieExpression::LoopMode::None) frameNo = _loop(frames, frameNo, exp); in operator()
716 if (!frames || frames->count == 1) return 0; in angle()
718 …if (frameNo <= frames->first().no) return frames->first().angle(frames->data + 1, frames->first().… in angle()
719 if (frameNo >= frames->last().no) { in angle()
720 auto frame = frames->data + frames->count - 2; in angle()
721 return frame->angle(frame + 1, frames->last().no); in angle()
724 auto frame = frames->data + _bsearch(frames, frameNo); in angle()
730 if (!frames || frames->count < 2) return; in prepare()
731 for (auto frame = frames->begin() + 1; frame < frames->end(); ++frame) { in prepare()
740 Array<LottieScalarFrame<TextDocument>>* frames = nullptr; member
764 if (!frames) return; in release()
766 for (auto p = frames->begin(); p < frames->end(); ++p) { in release()
770 delete(frames); in release()
771 frames = nullptr; in release()
776 return _nearest(frames, frameNo); in nearest()
781 return frames ? frames->count : 1; in frameCnt()
786 return _frameNo(frames, key); in frameNo()
791 if (!frames) frames = new Array<LottieScalarFrame<TextDocument>>; in newFrame()
792 if (frames->count + 1 >= frames->reserved) { in newFrame()
793 auto old = frames->reserved; in newFrame()
794 frames->grow(frames->count + 2); in newFrame()
795 …memset((void*)(frames->data + old), 0x00, sizeof(LottieScalarFrame<TextDocument>) * (frames->reser… in newFrame()
797 ++frames->count; in newFrame()
798 return frames->last(); in newFrame()
803 return (*frames)[frames->count]; in nextFrame()
808 if (!frames) return value; in operator()
809 if (frames->count == 1 || frameNo <= frames->first().no) return frames->first().value; in operator()
810 if (frameNo >= frames->last().no) return frames->last().value; in operator()
812 auto frame = frames->data + _bsearch(frames, frameNo); in operator()
819 if (other.frames) {
820 frames = other.frames;
821 const_cast<LottieTextDoc&>(other).frames = nullptr;