Lines Matching +full:- +full:o

2  * Copyright (c) 2023 - 2024 the ThorVG project. All rights reserved.
42 if (!comp->expressions) comp->expressions = true; in _expression()
45 inst->code = code; in _expression()
46 inst->comp = comp; in _expression()
47 inst->layer = layer; in _expression()
48 inst->object = object; in _expression()
49 inst->property = property; in _expression()
196 else if (KEY_AS("o")) getValue(outs); in getValue()
233 outPts.push(*(pt - 1) + *(out - 1)); in getValue()
260 …if (!color.input) color.input = new Array<float>(static_cast<LottieGradient*>(context.parent)->col… in getValue()
261 else color.input->clear(); in getValue()
263 while (nextArrayValue()) color.input->push(getFloat()); in getValue()
403 for (auto i = comp->interpolators.begin(); i < comp->interpolators.end(); ++i) { in getInterpolator()
404 if (!strncmp((*i)->key, key, sizeof(buf))) interpolator = *i; in getInterpolator()
410 interpolator->set(key, in, out); in getInterpolator()
411 comp->interpolators.push(interpolator); in getInterpolator()
432 } else if (KEY_AS("o")) { in parseKeyFrame()
500 for (auto slot = comp->slots.begin(); slot < comp->slots.end(); ++slot) { in parseProperty()
501 if (strcmp((*slot)->sid, sid)) continue; in parseProperty()
502 (*slot)->pairs.push({obj, 0}); in parseProperty()
505 comp->slots.push(new LottieSlot(sid, obj, type)); in parseProperty()
519 obj->id = djb2Encode(getString()); in parseCommon()
522 obj->hidden = getBool(); in parseCommon()
532 shape->clockwise = false; //default is true in parseDirection()
548 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Point>(rect->size); in parseRect()
549 else if (KEY_AS("p")) parseProperty<LottieProperty::Type::Position>(rect->position); in parseRect()
550 else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(rect->radius); in parseRect()
554 rect->prepare(); in parseRect()
567 else if (KEY_AS("p")) parseProperty<LottieProperty::Type::Position>(ellipse->position); in parseEllipse()
568 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Point>(ellipse->size); in parseEllipse()
572 ellipse->prepare(); in parseEllipse()
584 transform->rotationEx = new LottieTransform::RotationEx; in parseTransform()
594 if (KEY_AS("k")) parsePropertyInternal(transform->position); in parseTransform()
595 … else if (KEY_AS("s") && getBool()) transform->coords = new LottieTransform::SeparateCoord; in parseTransform()
597 …else if (transform->coords && KEY_AS("x")) parseProperty<LottieProperty::Type::Float>(transform->c… in parseTransform()
598 …else if (transform->coords && KEY_AS("y")) parseProperty<LottieProperty::Type::Float>(transform->c… in parseTransform()
599 …se if (KEY_AS("x")) transform->position.exp = _expression(getStringCopy(), comp, context.layer, co… in parseTransform()
602 transform->position.type = LottieProperty::Type::Position; in parseTransform()
604 else if (KEY_AS("a")) parseProperty<LottieProperty::Type::Point>(transform->anchor); in parseTransform()
605 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Point>(transform->scale); in parseTransform()
606 else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(transform->rotation); in parseTransform()
607 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(transform->opacity); in parseTransform()
608 …else if (transform->rotationEx && KEY_AS("rx")) parseProperty<LottieProperty::Type::Float>(transfo… in parseTransform()
609 …else if (transform->rotationEx && KEY_AS("ry")) parseProperty<LottieProperty::Type::Float>(transfo… in parseTransform()
610 …else if (transform->rotationEx && KEY_AS("rz")) parseProperty<LottieProperty::Type::Float>(transfo… in parseTransform()
611 else if (KEY_AS("sk")) parseProperty<LottieProperty::Type::Float>(transform->skewAngle); in parseTransform()
612 else if (KEY_AS("sa")) parseProperty<LottieProperty::Type::Float>(transform->skewAxis); in parseTransform()
615 transform->prepare(); in parseTransform()
628 else if (KEY_AS("c")) parseProperty<LottieProperty::Type::Color>(fill->color, fill); in parseSolidFill()
629 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(fill->opacity, fill); in parseSolidFill()
630 else if (KEY_AS("fillEnabled")) fill->hidden |= !getBool(); in parseSolidFill()
631 else if (KEY_AS("r")) fill->rule = getFillRule(); in parseSolidFill()
634 fill->prepare(); in parseSolidFill()
648 if (!strcmp("o", style)) idx = 0; //offset in parseStrokeDash()
652 parseProperty<LottieProperty::Type::Float>(stroke->dash(idx)); in parseStrokeDash()
667 else if (KEY_AS("c")) parseProperty<LottieProperty::Type::Color>(stroke->color, stroke); in parseSolidStroke()
668 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(stroke->opacity, stroke); in parseSolidStroke()
669 else if (KEY_AS("w")) parseProperty<LottieProperty::Type::Float>(stroke->width, stroke); in parseSolidStroke()
670 else if (KEY_AS("lc")) stroke->cap = getStrokeCap(); in parseSolidStroke()
671 else if (KEY_AS("lj")) stroke->join = getStrokeJoin(); in parseSolidStroke()
672 else if (KEY_AS("ml")) stroke->miterLimit = getFloat(); in parseSolidStroke()
673 else if (KEY_AS("fillEnabled")) stroke->hidden |= !getBool(); in parseSolidStroke()
677 stroke->prepare(); in parseSolidStroke()
707 else if (KEY_AS("ks")) getPathSet(path->pathset); in parsePath()
711 path->prepare(); in parsePath()
724 else if (KEY_AS("p")) parseProperty<LottieProperty::Type::Position>(star->position); in parsePolyStar()
725 else if (KEY_AS("pt")) parseProperty<LottieProperty::Type::Float>(star->ptsCnt); in parsePolyStar()
726 else if (KEY_AS("ir")) parseProperty<LottieProperty::Type::Float>(star->innerRadius); in parsePolyStar()
727 else if (KEY_AS("is")) parseProperty<LottieProperty::Type::Float>(star->innerRoundness); in parsePolyStar()
728 else if (KEY_AS("or")) parseProperty<LottieProperty::Type::Float>(star->outerRadius); in parsePolyStar()
729 else if (KEY_AS("os")) parseProperty<LottieProperty::Type::Float>(star->outerRoundness); in parsePolyStar()
730 else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(star->rotation); in parsePolyStar()
731 else if (KEY_AS("sy")) star->type = (LottiePolyStar::Type) getInt(); in parsePolyStar()
735 star->prepare(); in parsePolyStar()
748 else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(corner->radius); in parseRoundedCorner()
751 corner->prepare(); in parseRoundedCorner()
758 if (KEY_AS("t")) gradient->id = getInt(); in parseGradient()
759 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(gradient->opacity, gradient); in parseGradient()
764 if (KEY_AS("p")) gradient->colorStops.count = getInt(); in parseGradient()
765 …else if (KEY_AS("k")) parseProperty<LottieProperty::Type::ColorStop>(gradient->colorStops, gradien… in parseGradient()
769 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Point>(gradient->start, gradient); in parseGradient()
770 else if (KEY_AS("e")) parseProperty<LottieProperty::Type::Point>(gradient->end, gradient); in parseGradient()
771 else if (KEY_AS("h")) parseProperty<LottieProperty::Type::Float>(gradient->height, gradient); in parseGradient()
772 else if (KEY_AS("a")) parseProperty<LottieProperty::Type::Float>(gradient->angle, gradient); in parseGradient()
785 else if (KEY_AS("r")) fill->rule = getFillRule(); in parseGradientFill()
789 fill->prepare(); in parseGradientFill()
803 else if (KEY_AS("lc")) stroke->cap = getStrokeCap(); in parseGradientStroke()
804 else if (KEY_AS("lj")) stroke->join = getStrokeJoin(); in parseGradientStroke()
805 else if (KEY_AS("ml")) stroke->miterLimit = getFloat(); in parseGradientStroke()
806 else if (KEY_AS("w")) parseProperty<LottieProperty::Type::Float>(stroke->width); in parseGradientStroke()
810 stroke->prepare(); in parseGradientStroke()
824 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Float>(trim->start); in parseTrimpath()
825 else if (KEY_AS("e")) parseProperty<LottieProperty::Type::Float>(trim->end); in parseTrimpath()
826 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Float>(trim->offset); in parseTrimpath()
827 else if (KEY_AS("m")) trim->type = static_cast<LottieTrimpath::Type>(getInt()); in parseTrimpath()
830 trim->prepare(); in parseTrimpath()
844 else if (KEY_AS("c")) parseProperty<LottieProperty::Type::Float>(repeater->copies); in parseRepeater()
845 else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Float>(repeater->offset); in parseRepeater()
846 else if (KEY_AS("m")) repeater->inorder = getInt() == 2; in parseRepeater()
851 if (KEY_AS("a")) parseProperty<LottieProperty::Type::Point>(repeater->anchor); in parseRepeater()
852 … else if (KEY_AS("p")) parseProperty<LottieProperty::Type::Position>(repeater->position); in parseRepeater()
853 … else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(repeater->rotation); in parseRepeater()
854 else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Point>(repeater->scale); in parseRepeater()
855 … else if (KEY_AS("so")) parseProperty<LottieProperty::Type::Opacity>(repeater->startOpacity); in parseRepeater()
856 … else if (KEY_AS("eo")) parseProperty<LottieProperty::Type::Opacity>(repeater->endOpacity); in parseRepeater()
862 repeater->prepare(); in parseRepeater()
876 else if (KEY_AS("a")) parseProperty<LottieProperty::Type::Float>(offsetPath->offset); in parseOffsetPath()
877 else if (KEY_AS("lj")) offsetPath->join = getStrokeJoin(); in parseOffsetPath()
878 else if (KEY_AS("ml")) parseProperty<LottieProperty::Type::Float>(offsetPath->miterLimit); in parseOffsetPath()
881 offsetPath->prepare(); in parseOffsetPath()
920 if (child->hidden) delete(child); in parseObject()
939 image->mimeType = strDuplicate(mimeType, needle - mimeType); in parseImage()
942 size_t length = strlen(data) - (b64Data - data); in parseImage()
943 image->size = b64Decode(b64Data, length, &image->b64Data); in parseImage()
947 image->path = static_cast<char*>(malloc(len)); in parseImage()
948 snprintf(image->path, len, "%s%s%s", dirName, subPath, data); in parseImage()
951 image->width = width; in parseImage()
952 image->height = height; in parseImage()
953 image->prepare(); in parseImage()
982 else if (KEY_AS("layers")) obj = parseLayers(comp->root); in parseAsset()
991 if (obj) obj->id = id; in parseAsset()
1003 if (KEY_AS("fName")) font->name = getStringCopy(); in parseFont()
1004 else if (KEY_AS("fFamily")) font->family = getStringCopy(); in parseFont()
1005 else if (KEY_AS("fStyle")) font->style = getStringCopy(); in parseFont()
1006 else if (KEY_AS("ascent")) font->ascent = getFloat(); in parseFont()
1007 else if (KEY_AS("origin")) font->origin = (LottieFont::Origin) getInt(); in parseFont()
1019 if (asset) comp->assets.push(asset); in parseAssets()
1031 if (KEY_AS("cm")) marker->name = getStringCopy(); in parseMarker()
1032 else if (KEY_AS("tm")) marker->time = getFloat(); in parseMarker()
1033 else if (KEY_AS("dr")) marker->duration = getFloat(); in parseMarker()
1044 comp->markers.push(parseMarker()); in parseMarkers()
1056 if (KEY_AS("ch")) glyph->code = getStringCopy(); in parseChars()
1057 else if (KEY_AS("size")) glyph->size = static_cast<uint16_t>(getFloat()); in parseChars()
1058 else if (KEY_AS("style")) glyph->style = getStringCopy(); in parseChars()
1059 else if (KEY_AS("w")) glyph->width = getFloat(); in parseChars()
1060 else if (KEY_AS("fFamily")) glyph->family = getStringCopy(); in parseChars()
1065 if (KEY_AS("shapes")) parseShapes(glyph->children); in parseChars()
1069 glyph->prepare(); in parseChars()
1081 comp->fonts.push(parseFont()); in parseFonts()
1096 while (nextArrayValue()) parseObject(group->children); in parseGroup()
1099 if (group->children.empty()) { in parseGroup()
1103 group->prepare(); in parseGroup()
1111 parseProperty<LottieProperty::Type::Float>(layer->timeRemap); in parseTimeRemap()
1126 if (child->hidden) delete(child); in parseShapes()
1147 if (KEY_AS("t")) selector->expressible = (bool) getInt(); in parseTextRange()
1148 … else if (KEY_AS("xe")) parseProperty<LottieProperty::Type::Float>(selector->maxEase); in parseTextRange()
1149 … else if (KEY_AS("ne")) parseProperty<LottieProperty::Type::Float>(selector->minEase); in parseTextRange()
1150 … else if (KEY_AS("a")) parseProperty<LottieProperty::Type::Float>(selector->maxAmount); in parseTextRange()
1151 else if (KEY_AS("b")) selector->based = (LottieTextRange::Based) getInt(); in parseTextRange()
1152 else if (KEY_AS("rn")) selector->random = getInt() ? rand() : 0; in parseTextRange()
1153 else if (KEY_AS("sh")) selector->shape = (LottieTextRange::Shape) getInt(); in parseTextRange()
1154 … else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Float>(selector->offset); in parseTextRange()
1155 else if (KEY_AS("r")) selector->rangeUnit = (LottieTextRange::Unit) getInt(); in parseTextRange()
1156 … else if (KEY_AS("sm")) parseProperty<LottieProperty::Type::Float>(selector->smoothness); in parseTextRange()
1157 … else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Float>(selector->start); in parseTextRange()
1158 else if (KEY_AS("e")) parseProperty<LottieProperty::Type::Float>(selector->end); in parseTextRange()
1164 … if (KEY_AS("t")) parseProperty<LottieProperty::Type::Float>(selector->style.letterSpacing); in parseTextRange()
1165 … else if (KEY_AS("ls")) parseProperty<LottieProperty::Type::Color>(selector->style.lineSpacing); in parseTextRange()
1166 … else if (KEY_AS("fc")) parseProperty<LottieProperty::Type::Color>(selector->style.fillColor); in parseTextRange()
1167 … else if (KEY_AS("fo")) parseProperty<LottieProperty::Type::Color>(selector->style.fillOpacity); in parseTextRange()
1168 … else if (KEY_AS("sw")) parseProperty<LottieProperty::Type::Float>(selector->style.strokeWidth); in parseTextRange()
1169 … else if (KEY_AS("sc")) parseProperty<LottieProperty::Type::Color>(selector->style.strokeColor); in parseTextRange()
1170 …else if (KEY_AS("so")) parseProperty<LottieProperty::Type::Opacity>(selector->style.strokeOpacity); in parseTextRange()
1171 … else if (KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(selector->style.opacity); in parseTextRange()
1172 … else if (KEY_AS("p")) parseProperty<LottieProperty::Type::Position>(selector->style.position); in parseTextRange()
1173 … else if (KEY_AS("s")) parseProperty<LottieProperty::Type::Position>(selector->style.scale); in parseTextRange()
1174 … else if (KEY_AS("r")) parseProperty<LottieProperty::Type::Float>(selector->style.rotation); in parseTextRange()
1180 text->ranges.push(selector); in parseTextRange()
1192 if (KEY_AS("d")) parseProperty<LottieProperty::Type::TextDoc>(text->doc, text); in parseText()
1207 text->prepare(); in parseText()
1231 if (KEY_AS("inv")) mask->inverse = getBool(); in parseMask()
1234 mask->method = getMaskMethod(mask->inverse); in parseMask()
1235 if (mask->method == CompositeMethod::None) valid = false; in parseMask()
1237 else if (valid && KEY_AS("pt")) getPathSet(mask->pathset); in parseMask()
1238 else if (valid && KEY_AS("o")) parseProperty<LottieProperty::Type::Opacity>(mask->opacity); in parseMask()
1239 else if (valid && KEY_AS("x")) parseProperty<LottieProperty::Type::Float>(mask->expand); in parseMask()
1257 layer->masks.push(mask); in parseMasks()
1265 int idx = 0; //blurness -> direction -> wrap in parseGaussianBlur()
1274 if (idx == 0) parsePropertyInternal(effect->blurness); in parseGaussianBlur()
1275 else if (idx == 1) parsePropertyInternal(effect->direction); in parseGaussianBlur()
1276 else if (idx == 2) parsePropertyInternal(effect->wrap); in parseGaussianBlur()
1289 switch (effect->type) { in parseEffect()
1315 else if (effect && KEY_AS("en")) effect->enable = getInt(); in parseEffects()
1321 TVGLOG("LOTTIE", "Not supported Layer Effect = %d", effect ? (int)effect->type : -1); in parseEffects()
1323 } else layer->effects.push(effect); in parseEffects()
1332 layer->comp = precomp; in parseLayer()
1343 layer->name = getStringCopy(); in parseLayer()
1344 layer->id = djb2Encode(layer->name); in parseLayer()
1347 else if (KEY_AS("ind")) layer->idx = getInt(); in parseLayer()
1348 else if (KEY_AS("ty")) layer->type = (LottieLayer::Type) getInt(); in parseLayer()
1349 else if (KEY_AS("sr")) layer->timeStretch = getFloat(); in parseLayer()
1353 layer->transform = parseTransform(ddd); in parseLayer()
1355 else if (KEY_AS("ao")) layer->autoOrient = getInt(); in parseLayer()
1356 else if (KEY_AS("shapes")) parseShapes(layer->children); in parseLayer()
1357 else if (KEY_AS("ip")) layer->inFrame = getFloat(); in parseLayer()
1358 else if (KEY_AS("op")) layer->outFrame = getFloat(); in parseLayer()
1359 else if (KEY_AS("st")) layer->startFrame = getFloat(); in parseLayer()
1360 else if (KEY_AS("bm")) layer->blendMethod = (BlendMethod) getInt(); in parseLayer()
1361 else if (KEY_AS("parent")) layer->pidx = getInt(); in parseLayer()
1363 else if (KEY_AS("w") || KEY_AS("sw")) getLayerSize(layer->w); in parseLayer()
1364 else if (KEY_AS("h") || KEY_AS("sh")) getLayerSize(layer->h); in parseLayer()
1366 else if (KEY_AS("tt")) layer->matteType = getMatteType(); in parseLayer()
1367 else if (KEY_AS("tp")) layer->mid = getInt(); in parseLayer()
1369 else if (KEY_AS("hd")) layer->hidden = getBool(); in parseLayer()
1370 else if (KEY_AS("refId")) layer->rid = djb2Encode(getString()); in parseLayer()
1371 else if (KEY_AS("td")) layer->matteSrc = getInt(); //used for matte layer in parseLayer()
1372 else if (KEY_AS("t")) parseText(layer->children); in parseLayer()
1377 layer->prepare(&color); in parseLayer()
1387 precomp->type = LottieLayer::Precomp; in parseLayers()
1388 precomp->comp = root; in parseLayers()
1392 precomp->children.push(parseLayer(precomp)); in parseLayers()
1395 precomp->prepare(); in parseLayers()
1405 for (uint32_t i = 0; i < comp->fonts.count; ++i) { in postProcess()
1406 auto& font = comp->fonts[i]; in postProcess()
1407 if (!strcmp(font->family, glyph->family) && !strcmp(font->style, glyph->style)) { in postProcess()
1408 font->chars.push(glyph); in postProcess()
1409 free(glyph->family); in postProcess()
1410 free(glyph->style); in postProcess()
1440 switch (slot->type) { in apply()
1444 … parseSlotProperty<LottieProperty::Type::ColorStop>(static_cast<LottieGradient*>(obj)->colorStops); in apply()
1450 parseSlotProperty<LottieProperty::Type::Color>(static_cast<LottieSolid*>(obj)->color); in apply()
1456 parseSlotProperty<LottieProperty::Type::TextDoc>(static_cast<LottieText*>(obj)->doc); in apply()
1464 slot->assign(obj); in apply()
1488 if (KEY_AS("v")) comp->version = getStringCopy(); in parse()
1489 else if (KEY_AS("fr")) comp->frameRate = getFloat(); in parse()
1492 else if (KEY_AS("w")) comp->w = getFloat(); in parse()
1493 else if (KEY_AS("h")) comp->h = getFloat(); in parse()
1494 else if (KEY_AS("nm")) comp->name = getStringCopy(); in parse()
1496 else if (KEY_AS("layers")) comp->root = parseLayers(comp->root); in parse()
1503 if (Invalid() || !comp->root) { in parse()
1508 comp->root->inFrame = startFrame; in parse()
1509 comp->root->outFrame = endFrame; in parse()