绘制API工程
把 CanvasRenderingContext2D 当成 绑定在一张表面上的光栅器,而不是一堆散落的全局 setter。
文档清单
| 文档 | 解决的问题 |
|---|---|
| Context 生命周期与读回 | getContext 单例、hint 一旦定死、willReadFrequently |
| 路径文字图片与合成 | Path2D、text metrics、ImageBitmap、composite |
| clip 遮罩与合成层 | clip vs GCO、开洞、alpha mask |
| 路径布尔运算 | Canvas 没有 path boolean;evenodd vs 像素 vs 多边形库 |
| 渐变 Pattern 线型与滤镜 | 渐变坐标系、虚线相位、blur 成本 |
| ImageData 与像素管线 | 读回坐标、处理表面、预乘 |
| 多行文字与度量 | 折行、CJK/emoji、IME 为什么要 DOM |
封装底线
- 业务层不读「当前 path」,只传
Path2D。 - 样式修改必须落在
save/restore或等价 RAII 里。 - 读像素是显式能力,不是随手
getImageData。