Skip to content

Commit 5de7cc5

Browse files
committed
Merge remote-tracking branch 'GH/master' into 1.5.0
# Conflicts: # library/src/main/java/com/opensource/svgaplayer/SVGACanvasDrawer.kt
2 parents 3326058 + b64f41d commit 5de7cc5

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

library/src/main/java/com/opensource/svgaplayer/SVGACanvasDrawer.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ class SVGACanvasDrawer(videoItem: SVGAVideoEntity, val dynamicItem: SVGADynamicE
1212

1313
private val sharedPaint = Paint()
1414
private val sharedPath = Path()
15+
private val sharedPath2 = Path()
1516
private val sharedContentTransform = Matrix()
1617

1718
override fun drawFrame(frameIndex: Int, scaleType: ImageView.ScaleType) {
@@ -191,15 +192,31 @@ class SVGACanvasDrawer(videoItem: SVGAVideoEntity, val dynamicItem: SVGADynamicE
191192
sharedPaint.color = it
192193
sharedPaint.alpha = (sprite.frameEntity.alpha * 255).toInt()
193194
sharedPaint.isAntiAlias = true
195+
if (sprite.frameEntity.maskPath !== null) canvas.save()
196+
sprite.frameEntity.maskPath?.let { maskPath ->
197+
sharedPath2.reset()
198+
maskPath.buildPath(sharedPath2)
199+
sharedPath2.transform(this.sharedContentTransform)
200+
canvas.clipPath(sharedPath2)
201+
}
194202
canvas.drawPath(sharedPath, sharedPaint)
203+
if (sprite.frameEntity.maskPath !== null) canvas.restore()
195204
}
196205
}
197206
shape.styles?.strokeWidth?.let {
198207
if (it > 0) {
199208
sharedPaint.reset()
200209
sharedPaint.alpha = (sprite.frameEntity.alpha * 255).toInt()
201210
resetShapeStrokePaint(shape)
211+
if (sprite.frameEntity.maskPath !== null) canvas.save()
212+
sprite.frameEntity.maskPath?.let { maskPath ->
213+
sharedPath2.reset()
214+
maskPath.buildPath(sharedPath2)
215+
sharedPath2.transform(this.sharedContentTransform)
216+
canvas.clipPath(sharedPath2)
217+
}
202218
canvas.drawPath(sharedPath, sharedPaint)
219+
if (sprite.frameEntity.maskPath !== null) canvas.restore()
203220
}
204221
}
205222
}

0 commit comments

Comments
 (0)