在 skia 官网找到了 CanvasKit 的 API。但是目前 skia 的官网需要特殊方法才能访问,稍微有点不方便。因此 Copy 了一份到语雀里。地址如下:⬇️
CanvasKit API 文档
CanvasKit 包含了几个核心类: SkCanvas、SkColor、SkFont、SkImage、SkRect、SkPath、SkRegion,以目前我能相当的分别对应了Sketch 里的画板、颜色、字体、图像、矩形、路径(直线)、区域(切片)对象。至于具体是否是,后续研究到了再说。
所有 API 文档在 这里 可以查到。
总览(Overview)翻译
Skia 组织在 SkCanvas 对象里,承载了很多 “draw” 的方法:drawRect、drawPath、drawText等。每个 “draw” 方法 都要传两个参数:一个是相应的对象本身,另外一个是样式(颜色)参数,对应的类是SkPaint:
canvas.drawRect(rect, paint);
SkPaint 保存了描述矩形 (在这种情况下) 是如何绘制的大部分状态: 颜色、填充或描边等,以及它应该如何与之前绘制的内容进行融合。
画布的状态相对较少。 It points to the actual pixels being drawn, and it maintains a stack of matrices and clips. (不太懂,不翻译)
因此,在上述调用中,当前矩阵可以变换矩形的坐标(平移、旋转、倾斜、透视), 并且画布的当前 clips 可能会限制在画布上绘制矩形的位置, 但是绘图的所有其他风格属性都由 paint 控制。
给我的感受就是 Paint 类就是 Sketch 里的 Style 对象
