computeMasks method
void
computeMasks()
Implementation
void computeMasks() {
_renderMasks.clear();
var masks =
parent!.children!.whereType<ActorMask>().toList(growable: false);
for (final mask in masks) {
var renderMask = ActorLayerEffectRendererMask(mask);
mask.source?.all((child) {
if (child == parent) {
// recursive mask was selected
return false;
}
if (child is ActorDrawable) {
if (child == this) {
return false;
} else if (child.layerEffect != null) {
// Layer effect is direct discendant of this layer, so we want to
// draw it with the other drawables in this layer.
renderMask.drawables.add(child.layerEffect!);
// Don't iterate if child has further layer effect
return false;
} else {
renderMask.drawables.add(child);
}
}
return true;
});
if (renderMask.drawables.isNotEmpty) {
_renderMasks.add(renderMask);
}
}
}