Canvas与自定义渲染
# 09.Canvas与自定义渲染
当标准控件不够用时——QML Canvas 绘制引擎、QQuickPaintedItem 与 Scene Graph 自定义节点的原理与选择。
# 目录
- 1. 案例引入:仪表盘指针用 Canvas vs Shape 性能差 3 倍
- 2. Canvas 2D 绘制引擎
- Context2D API 与 Web Canvas 的异同
- 绘制流程与帧管理(requestPaint/markDirty)
- Canvas 的渲染层级(FBO 离屏缓冲)
- 3. Canvas 性能特性
- 缓存策略(canvas缓存/renderStrategy)
- 何时用 Canvas vs 何时用 Shape vs 何时用 QQuickPaintedItem
- 4. Shape 矢量路径
- ShapePath/PathArc/PathCurve
- GPU 加速的矢量渲染 vs Canvas CPU 绘制
- 5. QQuickPaintedItem(C++自定义渲染)
- QPainter 命令式绘制
- 性能对比:QQuickPaintedItem vs QSGNode
- 6. 自定义 QQuickItem + QSGNode
- 直接控制 Scene Graph 节点
- 零拷贝纹理上传
- 适合:视频渲染/摄像头预览/实时图表
- 7. 实战:实时心电图绘制(200Hz)
- 8. 速查表
📝 基于原有 06.Canvas绘制.md 升级,补充渲染后端对比 + 自定义QSGNode
上次更新: 2026/06/25, 10:11:58