MCPcopy Create free account
hub / github.com/Samsung/rlottie / parseMaskObject

Method parseMaskObject

src/lottie/lottieparser.cpp:1107–1152  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1105}
1106
1107model::Mask *LottieParserImpl::parseMaskObject()
1108{
1109 auto obj = allocator().make<model::Mask>();
1110
1111 RAPIDJSON_ASSERT(PeekType() == kObjectType);
1112 EnterObject();
1113 while (const char *key = NextObjectKey()) {
1114 if (0 == strcmp(key, "inv")) {
1115 obj->mInv = GetBool();
1116 } else if (0 == strcmp(key, "mode")) {
1117 const char *str = GetString();
1118 if (!str) {
1119 obj->mMode = model::Mask::Mode::None;
1120 continue;
1121 }
1122 switch (str[0]) {
1123 case 'n':
1124 obj->mMode = model::Mask::Mode::None;
1125 break;
1126 case 'a':
1127 obj->mMode = model::Mask::Mode::Add;
1128 break;
1129 case 's':
1130 obj->mMode = model::Mask::Mode::Substarct;
1131 break;
1132 case 'i':
1133 obj->mMode = model::Mask::Mode::Intersect;
1134 break;
1135 case 'f':
1136 obj->mMode = model::Mask::Mode::Difference;
1137 break;
1138 default:
1139 obj->mMode = model::Mask::Mode::None;
1140 break;
1141 }
1142 } else if (0 == strcmp(key, "pt")) {
1143 parseShapeProperty(obj->mShape);
1144 } else if (0 == strcmp(key, "o")) {
1145 parseProperty(obj->mOpacity);
1146 } else {
1147 Skip(key);
1148 }
1149 }
1150 obj->mIsStatic = obj->mShape.isStatic() && obj->mOpacity.isStatic();
1151 return obj;
1152}
1153
1154void LottieParserImpl::parseShapesAttr(model::Layer *layer)
1155{

Callers

nothing calls this directly

Calls 3

GetBoolFunction · 0.85
GetStringFunction · 0.50
isStaticMethod · 0.45

Tested by

no test coverage detected