merge static method
Will merge two DrawablePaints, preferring properties defined in a
if they're not null.
If a
is identical
with DrawablePaint.empty, b
will be ignored.
Implementation
static DrawablePaint? merge(DrawablePaint? a, DrawablePaint? b) {
if (a == null && b == null) {
return null;
}
if (b == null && a != null) {
return a;
}
if (identical(a, DrawablePaint.empty) ||
identical(b, DrawablePaint.empty)) {
return a ?? b;
}
if (a == null) {
return b;
}
// If we got here, the styles should not be null.
assert(a.style == b!.style,
'Cannot merge Paints with different PaintStyles; got:\na: $a\nb: $b.');
return DrawablePaint(
a.style ?? b!.style,
color: a.color ?? b!.color,
shader: a.shader ?? b!.shader,
blendMode: a.blendMode ?? b!.blendMode,
colorFilter: a.colorFilter ?? b!.colorFilter,
isAntiAlias: a.isAntiAlias ?? b!.isAntiAlias,
filterQuality: a.filterQuality ?? b!.filterQuality,
maskFilter: a.maskFilter ?? b!.maskFilter,
strokeCap: a.strokeCap ?? b!.strokeCap,
strokeJoin: a.strokeJoin ?? b!.strokeJoin,
strokeMiterLimit: a.strokeMiterLimit ?? b!.strokeMiterLimit,
strokeWidth: a.strokeWidth ?? b!.strokeWidth,
);
}