gpu: implement Adapter.reference, Adapter.release
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
77b16a3671
commit
a1c9fe6897
2 changed files with 22 additions and 3 deletions
|
|
@ -51,10 +51,18 @@ pub const VTable = struct {
|
|||
// TODO:
|
||||
// WGPU_EXPORT void wgpuAdapterRequestDevice(WGPUAdapter adapter, WGPUDeviceDescriptor const * descriptor, WGPURequestDeviceCallback callback, void * userdata);
|
||||
// WGPU_EXPORT WGPUDevice wgpuAdapterCreateDevice(WGPUAdapter adapter, WGPUDeviceDescriptor const * descriptor);
|
||||
// WGPU_EXPORT void wgpuAdapterReference(WGPUAdapter adapter);
|
||||
// WGPU_EXPORT void wgpuAdapterRelease(WGPUAdapter adapter);
|
||||
reference: fn (ptr: *anyopaque) void,
|
||||
release: fn (ptr: *anyopaque) void,
|
||||
};
|
||||
|
||||
pub inline fn reference(adapter: Adapter) void {
|
||||
adapter.vtable.reference(adapter.ptr);
|
||||
}
|
||||
|
||||
pub inline fn release(adapter: Adapter) void {
|
||||
adapter.vtable.release(adapter.ptr);
|
||||
}
|
||||
|
||||
/// Tests of the given feature can be used to create devices on this adapter.
|
||||
pub fn hasFeature(adapter: Adapter, feature: FeatureName) bool {
|
||||
for (adapter.features) |f| {
|
||||
|
|
|
|||
|
|
@ -210,7 +210,18 @@ fn wrapAdapter(adapter: c.WGPUAdapter) Adapter {
|
|||
};
|
||||
}
|
||||
|
||||
const adapter_vtable = Adapter.VTable{};
|
||||
const adapter_vtable = Adapter.VTable{
|
||||
.reference = (struct {
|
||||
pub fn reference(ptr: *anyopaque) void {
|
||||
c.wgpuAdapterReference(@ptrCast(c.WGPUAdapter, ptr));
|
||||
}
|
||||
}).reference,
|
||||
.release = (struct {
|
||||
pub fn release(ptr: *anyopaque) void {
|
||||
c.wgpuAdapterRelease(@ptrCast(c.WGPUAdapter, ptr));
|
||||
}
|
||||
}).release,
|
||||
};
|
||||
|
||||
// TODO: implement Device interface
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue