1717#include < emscripten/html5.h>
1818#include < emscripten/html5_webgpu.h>
1919
20- void GetDevice (void (*callback)(wgpu::Device)) {
21- // Left as null (until supported in Emscripten)
22- static const WGPUInstance instance = nullptr ;
20+ static const wgpu::Instance instance = wgpuCreateInstance(nullptr );
2321
24- wgpuInstanceRequestAdapter (instance, nullptr , [](WGPURequestAdapterStatus status, WGPUAdapter adapter, const char * message, void * userdata) {
22+ void GetDevice (void (*callback)(wgpu::Device)) {
23+ instance.RequestAdapter (nullptr , [](WGPURequestAdapterStatus status, WGPUAdapter cAdapter, const char * message, void * userdata) {
2524 if (message) {
26- printf (" wgpuInstanceRequestAdapter : %s\n " , message);
25+ printf (" RequestAdapter : %s\n " , message);
2726 }
2827 if (status == WGPURequestAdapterStatus_Unavailable) {
2928 printf (" WebGPU unavailable; exiting cleanly\n " );
@@ -32,13 +31,14 @@ void GetDevice(void (*callback)(wgpu::Device)) {
3231 }
3332 assert (status == WGPURequestAdapterStatus_Success);
3433
35- wgpuAdapterRequestDevice (adapter, nullptr , [](WGPURequestDeviceStatus status, WGPUDevice dev, const char * message, void * userdata) {
34+ wgpu::Adapter adapter = wgpu::Adapter::Acquire (cAdapter);
35+ adapter.RequestDevice (nullptr , [](WGPURequestDeviceStatus status, WGPUDevice cDevice, const char * message, void * userdata) {
3636 if (message) {
37- printf (" wgpuAdapterRequestDevice : %s\n " , message);
37+ printf (" RequestDevice : %s\n " , message);
3838 }
3939 assert (status == WGPURequestDeviceStatus_Success);
4040
41- wgpu::Device device = wgpu::Device::Acquire (dev );
41+ wgpu::Device device = wgpu::Device::Acquire (cDevice );
4242 reinterpret_cast <void (*)(wgpu::Device)>(userdata)(device);
4343 }, userdata);
4444 }, reinterpret_cast <void *>(callback));
@@ -377,7 +377,6 @@ void run() {
377377
378378 wgpu::SurfaceDescriptor surfDesc{};
379379 surfDesc.nextInChain = &canvasDesc;
380- wgpu::Instance instance{}; // null instance
381380 wgpu::Surface surface = instance.CreateSurface (&surfDesc);
382381
383382 wgpu::SwapChainDescriptor scDesc{};
0 commit comments