svga-web
Version:
A SVGA player for modern Web.
50 lines (42 loc) • 1.2 kB
text/typescript
import { IParseStyles } from '../../parser'
import { com } from '../../proto/svga'
import svga = com.opensource.svga
export function resetShapeStyles(
context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
styles?: IParseStyles,
): void {
if (!styles) {
return
}
context.strokeStyle = styles?.strokeStr || 'transparent'
if (styles) {
context.lineWidth = styles.strokeWidth
context.lineCap = styles.lineCapStr
context.lineJoin = styles.lineJoinStr
context.miterLimit = styles.miterLimit
}
context.fillStyle = styles?.fillStr || 'transparent'
if (styles.lineDashI || styles.lineDashII || styles.lineDashIII) {
context.setLineDash([
styles.lineDashI ? styles.lineDashI : 0,
styles.lineDashII ? styles.lineDashII : 0,
styles.lineDashIII ? styles.lineDashIII : 0,
])
}
}
export function applyTransform(
context: CanvasRenderingContext2D | OffscreenCanvasRenderingContext2D,
transform?: svga.Transform,
): void {
if (!transform) {
return
}
context.transform(
transform.a || 1.0,
transform.b || 0,
transform.c || 0,
transform.d || 1.0,
transform.tx || 0,
transform.ty || 0,
)
}