wgpu 在window上的绘制流程

79 阅读1分钟

window 运行流程

graph TD
event_loop.run_app --> resumed --> 判断是否窗口已创建

判断是否窗口已创建 --否--> 创建窗口
判断是否窗口已创建 --是--> window_event

创建窗口 --> 初始化wgpu -->

window_event --循环监听--> window_event

window_event --> 窗口重绘
window_event --> 窗口尺寸 --发生变化--> 窗口重绘
window_event --> 鼠标点击 --> wgpu.eventDraw

窗口重绘 --> wgpu.draw

wgpu 运行流程

graph TD

wgpu初始化流程 
    --> 创建wgpu实例
    --> 用实例基于window来初始化一个画布
    --> 获取当前系统的适配器
    获取当前系统的适配器 --> 逻辑设备
    获取当前系统的适配器 --> 命令队列
    
    逻辑设备 --> 创建渲染管线
    逻辑设备 --> 创建顶点缓存器
    逻辑设备 --> 创建顶点索引缓存器
    
    创建渲染管线 --> 配置Shader.wgsl
    创建顶点缓存器 --> 写入顶点Buffer
    创建顶点索引缓存器 --> 写入顶点索引Buffer
    
    配置Shader.wgsl --> 配置纹理
    --> 创建编码器 --> 配置渲染通道 --> 使用渲染通道设置渲染管线、顶点缓存器
    
    渲染通道 --> 设置渲染管线
    渲染通道 --> 顶点缓存器
    渲染通道 --> 顶点索引缓存器
    渲染通道 --> drawIndex
    渲染通道 --> 队列提交