载入中...
搜索中...
未找到
InitFlow.h
浏览该文件的文档.
1#pragma once
2
5
6#include <cstdint>
7#include <string>
8#include <utility>
9
10namespace eve::graphics::webgpu {
11
12// Stage objects are produced in a strict order: each request consumes the
13// previous stage and yields the next one, so calling a later step without the
14// earlier one (or out of order) is a compile error — the vk-bootstrap principle
15// applied to WebGPU's async initialization.
16
19 wgpu::Instance instance;
20};
21
24 wgpu::Instance instance;
25 wgpu::Adapter adapter;
26};
27
29struct DeviceDone {
30 wgpu::Instance instance;
31 wgpu::Adapter adapter;
32 wgpu::Device device;
33 wgpu::Queue queue;
35};
36
45class InitFlow {
46public:
49
56 static AdapterDone requestAdapter(InstanceDone &&prev, const wgpu::Surface &compatibleSurface);
57
63};
64
65} // namespace eve::graphics::webgpu
Read-only snapshot of WebGPU adapter/device limits and surface capabilities, queried once after devic...
Typed, blocking WebGPU initialization flow.
Definition InitFlow.h:45
static DeviceDone requestDevice(AdapterDone &&prev)
Blocking device request (plus queue + capability capture). Throws eve::graphics::Exception on failure...
Definition InitFlow.cpp:76
static InstanceDone createInstance()
Create a wgpu Instance (native requests the TimedWaitAny feature).
Definition InitFlow.cpp:15
static AdapterDone requestAdapter(InstanceDone &&prev, const wgpu::Surface &compatibleSurface)
Blocking adapter request. Drives ProcessEvents until the callback fires; throws eve::graphics::Except...
Definition InitFlow.cpp:32
Instance + adapter resolved.
Definition InitFlow.h:23
Instance + adapter + device + queue + capability snapshot.
Definition InitFlow.h:29
Instance created, no adapter yet.
Definition InitFlow.h:18