From 6b0129f590b2068c4aa72917659ed14ed1fed157 Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 5 Dec 2021 04:23:06 +0000 Subject: [PATCH] gpu: implement OpenGL / OpenGL ES adapter discovery in example Signed-off-by: Stephen Gutekanst --- gpu/src/dawn/sample_utils.zig | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gpu/src/dawn/sample_utils.zig b/gpu/src/dawn/sample_utils.zig index 9ec28fb8..6719dc3e 100644 --- a/gpu/src/dawn/sample_utils.zig +++ b/gpu/src/dawn/sample_utils.zig @@ -189,18 +189,18 @@ fn glfwWindowHintsForBackend(backend: c.WGPUBackendType) glfw.Window.Hints { } fn discoverAdapter(instance: c.MachDawnNativeInstance, window: glfw.Window, typ: c.WGPUBackendType) !void { - if (typ == c.WGPUBackendType_OpenGL or typ == c.WGPUBackendType_OpenGLES) { + if (typ == c.WGPUBackendType_OpenGL) { try glfw.makeContextCurrent(window); - // auto getProc = reinterpret_cast(glfwGetProcAddress); - // if (type == wgpu::BackendType::OpenGL) { - // dawn_native::opengl::AdapterDiscoveryOptions adapterOptions; - // adapterOptions.getProc = getProc; - // instance->DiscoverAdapters(&adapterOptions); - // } else { - // dawn_native::opengl::AdapterDiscoveryOptionsES adapterOptions; - // adapterOptions.getProc = getProc; - // instance->DiscoverAdapters(&adapterOptions); - // } + const adapter_options = c.MachDawnNativeAdapterDiscoveryOptions_OpenGL{ + .getProc = @ptrCast(fn ([*c]const u8) callconv(.C) ?*c_void, glfw.getProcAddress), + }; + _ = c.machDawnNativeInstance_discoverAdapters(instance, typ, &adapter_options); + } else if (typ == c.WGPUBackendType_OpenGLES) { + try glfw.makeContextCurrent(window); + const adapter_options = c.MachDawnNativeAdapterDiscoveryOptions_OpenGLES{ + .getProc = @ptrCast(fn ([*c]const u8) callconv(.C) ?*c_void, glfw.getProcAddress), + }; + _ = c.machDawnNativeInstance_discoverAdapters(instance, typ, &adapter_options); } else { c.machDawnNativeInstance_discoverDefaultAdapters(instance); }