gpu: add basic Device implementation
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
32de278709
commit
93d6e5dedf
1 changed files with 55 additions and 35 deletions
|
|
@ -6,11 +6,17 @@
|
||||||
//!
|
//!
|
||||||
//! https://gpuweb.github.io/gpuweb/#devices
|
//! https://gpuweb.github.io/gpuweb/#devices
|
||||||
//! https://gpuweb.github.io/gpuweb/#gpuadapter
|
//! https://gpuweb.github.io/gpuweb/#gpuadapter
|
||||||
|
const FeatureName = @import("feature_name.zig").FeatureName;
|
||||||
|
|
||||||
|
const Device = @This();
|
||||||
|
|
||||||
|
/// The type erased pointer to the Device implementation
|
||||||
|
/// Equal to c.WGPUDevice for NativeInstance.
|
||||||
|
ptr: *anyopaque,
|
||||||
|
vtable: *const VTable,
|
||||||
|
|
||||||
|
pub const VTable = struct {
|
||||||
// TODO:
|
// TODO:
|
||||||
// typedef struct WGPUDeviceImpl* WGPUDevice;
|
|
||||||
|
|
||||||
// Methods of Device
|
|
||||||
// WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor);
|
// WGPU_EXPORT WGPUBindGroup wgpuDeviceCreateBindGroup(WGPUDevice device, WGPUBindGroupDescriptor const * descriptor);
|
||||||
// WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor);
|
// WGPU_EXPORT WGPUBindGroupLayout wgpuDeviceCreateBindGroupLayout(WGPUDevice device, WGPUBindGroupLayoutDescriptor const * descriptor);
|
||||||
// WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor);
|
// WGPU_EXPORT WGPUBuffer wgpuDeviceCreateBuffer(WGPUDevice device, WGPUBufferDescriptor const * descriptor);
|
||||||
|
|
@ -41,5 +47,19 @@
|
||||||
// WGPU_EXPORT void wgpuDeviceSetLoggingCallback(WGPUDevice device, WGPULoggingCallback callback, void * userdata);
|
// WGPU_EXPORT void wgpuDeviceSetLoggingCallback(WGPUDevice device, WGPULoggingCallback callback, void * userdata);
|
||||||
// WGPU_EXPORT void wgpuDeviceSetUncapturedErrorCallback(WGPUDevice device, WGPUErrorCallback callback, void * userdata);
|
// WGPU_EXPORT void wgpuDeviceSetUncapturedErrorCallback(WGPUDevice device, WGPUErrorCallback callback, void * userdata);
|
||||||
// WGPU_EXPORT void wgpuDeviceTick(WGPUDevice device);
|
// WGPU_EXPORT void wgpuDeviceTick(WGPUDevice device);
|
||||||
// WGPU_EXPORT void wgpuDeviceReference(WGPUDevice device);
|
|
||||||
// WGPU_EXPORT void wgpuDeviceRelease(WGPUDevice device);
|
reference: fn (ptr: *anyopaque) void,
|
||||||
|
release: fn (ptr: *anyopaque) void,
|
||||||
|
};
|
||||||
|
|
||||||
|
pub const Descriptor = struct {
|
||||||
|
label: ?[]const u8 = null,
|
||||||
|
required_features: ?[]FeatureName = null,
|
||||||
|
// TODO:
|
||||||
|
//required_limits: ?RequiredLimits = null,
|
||||||
|
};
|
||||||
|
|
||||||
|
test "syntax" {
|
||||||
|
_ = VTable;
|
||||||
|
_ = Descriptor;
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue