高清屏与布局
canvas.width / canvas.height 是 backing store 申请值。WebGL 真正的渲染目标尺寸是 drawingBufferWidth / drawingBufferHeight:实现可以给你一块更小的缓冲。CSS 宽高是布局。三套脱节,高分屏发糊,viewport 裁错,命中全偏。
用户空间约定与 Canvas DPR 相同:1 单位 = 1 CSS 像素。差别是 viewport 和 readPixels 跟 drawing buffer,不跟 clientWidth。
文档清单
| 文档 | 解决的问题 |
|---|---|
| DPR 与 drawingBuffer | css × dpr、viewport、ResizeObserver、drawing buffer 被缩小 |
这是 L2 硬门槛。03 的指针→NDC、08 的导出,都假设 resize 之后 viewport 已用 drawingBufferWidth。