gpu: begin implementing Surface

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2022-03-06 20:44:38 -07:00 committed by Stephen Gutekanst
parent 64e023c992
commit 89b1f31de8
4 changed files with 96 additions and 86 deletions

View file

@ -37,8 +37,67 @@ pub fn interface(native: *const NativeInstance) Interface {
}
pub fn createSurface(native: *const NativeInstance, descriptor: *const Surface.Descriptor) Surface {
// typedef enum WGPUSType {
// WGPUSType_Invalid = 0x00000000,
// WGPUSType_SurfaceDescriptorFromMetalLayer = 0x00000001,
// WGPUSType_SurfaceDescriptorFromWindowsHWND = 0x00000002,
// WGPUSType_SurfaceDescriptorFromXlibWindow = 0x00000003,
// WGPUSType_SurfaceDescriptorFromCanvasHTMLSelector = 0x00000004,
// WGPUSType_SurfaceDescriptorFromWindowsCoreWindow = 0x00000008,
// WGPUSType_SurfaceDescriptorFromWindowsSwapChainPanel = 0x0000000B,
// typedef struct WGPUSurfaceDescriptor {
// WGPUChainedStruct const * nextInChain;
// char const * label;
// } WGPUSurfaceDescriptor;
// typedef struct WGPUSurfaceDescriptorFromCanvasHTMLSelector {
// WGPUChainedStruct chain;
// char const * selector;
// } WGPUSurfaceDescriptorFromCanvasHTMLSelector;
// typedef struct WGPUSurfaceDescriptorFromMetalLayer {
// WGPUChainedStruct chain;
// void * layer;
// } WGPUSurfaceDescriptorFromMetalLayer;
// typedef struct WGPUSurfaceDescriptorFromWindowsCoreWindow {
// WGPUChainedStruct chain;
// void * coreWindow;
// } WGPUSurfaceDescriptorFromWindowsCoreWindow;
// typedef struct WGPUSurfaceDescriptorFromWindowsHWND {
// WGPUChainedStruct chain;
// void * hinstance;
// void * hwnd;
// } WGPUSurfaceDescriptorFromWindowsHWND;
// typedef struct WGPUSurfaceDescriptorFromWindowsSwapChainPanel {
// WGPUChainedStruct chain;
// void * swapChainPanel;
// } WGPUSurfaceDescriptorFromWindowsSwapChainPanel;
// typedef struct WGPUSurfaceDescriptorFromXlibWindow {
// WGPUChainedStruct chain;
// void * display;
// uint32_t window;
// } WGPUSurfaceDescriptorFromXlibWindow;
//c.wgpuInstanceCreateSurface(native.instance, )
_ = native;
_ = descriptor;
// TODO:
// WGPU_EXPORT WGPUSurface wgpuInstanceCreateSurface(WGPUInstance instance, WGPUSurfaceDescriptor const * descriptor);
}
// var desc: c.WGPUSurfaceDescriptorFromWindowsHWND = undefined;
// desc.chain.next = null;
// desc.chain.sType = c.WGPUSType_SurfaceDescriptorFromWindowsHWND;
// desc.hinstance = std.os.windows.kernel32.GetModuleHandleW(null);
// desc.hwnd = glfw_native.getWin32Window(window);
// var descriptor: c.WGPUSurfaceDescriptor = undefined;
// descriptor.nextInChain = @ptrCast(*c.WGPUChainedStruct, &desc);
// descriptor.label = "basic surface";
// return c.wgpuInstanceCreateSurface(instance, &descriptor);