#include <VectorKeyframeAnimator.h>
Definition at line 31 of file VectorKeyframeAnimator.h.
◆ VectorDataParser
◆ VectorLenParser
◆ VectorAnimatorBuilder()
◆ makeFromExpression()
◆ makeFromKeyframes()
Implements skottie::internal::AnimatorBuilder.
Definition at line 197 of file VectorKeyframeAnimator.cpp.
198 {
200
201
203 if (!jkf0 || !fParseLen((*jkf0)["s"], &fVecLen)) {
204 return nullptr;
205 }
206
208
210
211
212 if (!safe || !SkTFitsIn<uint32_t>(
total_size)) {
213 return nullptr;
214 }
216
218 return nullptr;
219 }
220
221
223 fStorage.resize(fCurrentVec * fVecLen);
224 fStorage.shrink_to_fit();
225
227 new VectorKeyframeAnimator(std::move(
fKFs),
229 std::move(fStorage),
230 fVecLen,
231 fTarget));
232}
static size_t total_size(SkSBlockAllocator< N > &pool)
size_t mul(size_t x, size_t y)
std::vector< SkCubicMap > fCMs
bool parseKeyframes(const AnimationBuilder &, const skjson::ArrayValue &)
std::vector< Keyframe > fKFs
◆ parseKFValue()
Implements skottie::internal::AnimatorBuilder.
Definition at line 251 of file VectorKeyframeAnimator.cpp.
254 {
255 auto offset = fCurrentVec * fVecLen;
257
258 if (!fParseData(jv, fVecLen, fStorage.data() +
offset)) {
259 return false;
260 }
261
263
264 if (fCurrentVec > 0 && !memcmp(fStorage.data() +
offset,
265 fStorage.data() +
offset - fVecLen,
266 fVecLen * sizeof(float))) {
267
269 } else {
270
271 fCurrentVec += 1;
272 }
273
274
276
277 return true;
278}
constexpr uint32_t SkToU32(S x)
◆ parseValue()
The documentation for this class was generated from the following files: