Lines Matching refs:layer
153 void LottieBuilder::updateTransform(LottieLayer* layer, float frameNo) in updateTransform() argument
155 if (!layer || tvg::equal(layer->cache.frameNo, frameNo)) return; in updateTransform()
157 auto transform = layer->transform; in updateTransform()
158 auto parent = layer->parent; in updateTransform()
162 auto& matrix = layer->cache.matrix; in updateTransform()
164 _updateTransform(transform, frameNo, layer->autoOrient, matrix, layer->cache.opacity, exps); in updateTransform()
168 if (identity((const Matrix*) &matrix)) layer->cache.matrix = parent->cache.matrix; in updateTransform()
169 else layer->cache.matrix = parent->cache.matrix * matrix; in updateTransform()
172 layer->cache.frameNo = frameNo; in updateTransform()
973 void LottieBuilder::updateSolid(LottieLayer* layer) in updateSolid() argument
975 auto solidFill = layer->statical.pooling(true); in updateSolid()
976 solidFill->opacity(layer->cache.opacity); in updateSolid()
977 layer->scene->push(cast(solidFill)); in updateSolid()
981 void LottieBuilder::updateImage(LottieGroup* layer) in updateImage() argument
983 auto image = static_cast<LottieImage*>(layer->children.first()); in updateImage()
984 layer->scene->push(tvg::cast(image->pooling(true))); in updateImage()
988 void LottieBuilder::updateText(LottieLayer* layer, float frameNo) in updateText() argument
990 auto text = static_cast<LottieText*>(layer->children.first()); in updateText()
1023 layer->scene->push(std::move(scene)); in updateText()
1133 void LottieBuilder::updateMaskings(LottieLayer* layer, float frameNo) in updateMaskings() argument
1135 if (layer->masks.count == 0) return; in updateMaskings()
1138 auto pMask = static_cast<LottieMask*>(layer->masks[0]); in updateMaskings()
1143 auto pShape = layer->pooling(); in updateMaskings()
1146 pShape->transform(layer->cache.matrix); in updateMaskings()
1160 if (layer->masks.count == 1 && compMethod == CompositeMethod::AlphaMask && opacity == 255) { in updateMaskings()
1161 layer->scene->clip(tvg::cast(pShape)); in updateMaskings()
1166 if (layer->matteTarget) { in updateMaskings()
1168 scene->push(cast(layer->scene)); in updateMaskings()
1169 layer->scene = scene; in updateMaskings()
1172 layer->scene->composite(tvg::cast(pShape), compMethod); in updateMaskings()
1175 for (auto m = layer->masks.begin() + 1; m < layer->masks.end(); ++m) { in updateMaskings()
1185 auto shape = layer->pooling(); in updateMaskings()
1188 shape->transform(layer->cache.matrix); in updateMaskings()
1198 …ottieBuilder::updateMatte(LottieComposition* comp, float frameNo, Scene* scene, LottieLayer* layer) in updateMatte() argument
1200 auto target = layer->matteTarget; in updateMatte()
1206 layer->scene->composite(cast(target->scene), layer->matteType); in updateMatte()
1207 …} else if (layer->matteType == CompositeMethod::AlphaMask || layer->matteType == CompositeMethod::… in updateMatte()
1209 delete(layer->scene); in updateMatte()
1210 layer->scene = nullptr; in updateMatte()
1217 void LottieBuilder::updateEffect(LottieLayer* layer, float frameNo) in updateEffect() argument
1219 if (layer->effects.count == 0) return; in updateEffect()
1221 for (auto ef = layer->effects.begin(); ef < layer->effects.end(); ++ef) { in updateEffect()
1226 …layer->scene->push(SceneEffect::GaussianBlur, sqrt(effect->blurness(frameNo)), effect->direction(f… in updateEffect()
1235 void LottieBuilder::updateLayer(LottieComposition* comp, Scene* scene, LottieLayer* layer, float fr… in updateLayer() argument
1237 layer->scene = nullptr; in updateLayer()
1240 if (frameNo < layer->inFrame || frameNo >= layer->outFrame) return; in updateLayer()
1242 updateTransform(layer, frameNo); in updateLayer()
1245 if (layer->type != LottieLayer::Null && layer->cache.opacity == 0) return; in updateLayer()
1248 layer->scene = Scene::gen().release(); in updateLayer()
1249 layer->scene->id = layer->id; in updateLayer()
1252 if (layer->type != LottieLayer::Null) layer->scene->opacity(layer->cache.opacity); in updateLayer()
1254 layer->scene->transform(layer->cache.matrix); in updateLayer()
1256 if (!updateMatte(comp, frameNo, scene, layer)) return; in updateLayer()
1258 switch (layer->type) { in updateLayer()
1260 updatePrecomp(comp, layer, frameNo); in updateLayer()
1264 updateSolid(layer); in updateLayer()
1268 updateImage(layer); in updateLayer()
1272 updateText(layer, frameNo); in updateLayer()
1276 if (!layer->children.empty()) { in updateLayer()
1278 contexts.back(new RenderContext(layer->pooling())); in updateLayer()
1279 updateChildren(layer, frameNo, contexts); in updateLayer()
1286 updateMaskings(layer, frameNo); in updateLayer()
1288 layer->scene->blend(layer->blendMethod); in updateLayer()
1290 updateEffect(layer, frameNo); in updateLayer()
1293 if (!layer->matteSrc) scene->push(cast(layer->scene)); in updateLayer()
1297 static void _buildReference(LottieComposition* comp, LottieLayer* layer) in _buildReference() argument
1300 if (layer->rid != (*asset)->id) continue; in _buildReference()
1301 if (layer->type == LottieLayer::Precomp) { in _buildReference()
1304 layer->children = assetLayer->children; in _buildReference()
1305 layer->reqFragment = assetLayer->reqFragment; in _buildReference()
1307 } else if (layer->type == LottieLayer::Image) { in _buildReference()
1308 layer->children.push(*asset); in _buildReference()
1415 auto layer = static_cast<LottieLayer*>(*child); in update() local
1416 if (!layer->matteSrc) updateLayer(comp, root->scene, layer, frameNo); in update()