渲染
__render(canvas: ILeaferCanvas, options: IRenderOptions): void
完全重写渲染方法。
以下为默认的渲染函数:首先会检测是否需要绘制,再设置画布的 transform, 之后调用 __draw()方法进行本地绘制
__render(canvas: ILeaferCanvas, options: IRenderOptions): void {
if (this.__worldOpacity) { // 通过 opacity、visible 自动计算的结果
canvas.setWorld(this.__world, options.matrix)
canvas.opacity = this.__worldOpacity
this.__draw(canvas, options) // canvas.context
}
}
可通过 canvas.context
直接访问 canvas 2D 的 上下文
__draw(canvas: ILeaferCanvas, options: IRenderOptions): void
仅重写绘制方法,基于本地坐标绘制。
以下为绘制函数示例:先绘制路径,之后再填充、描边。
__draw(canvas: ILeaferCanvas, options: IRenderOptions): void {
this.__drawRenderPath(canvas)
const { fill, stroke } = this.__
if (fill) Paint.fill(this, canvas, fill)
if (stroke) Paint.stroke(this, canvas, stroke)
}