gpu: make Instance.requestAdapter friendlier
Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
parent
12e8bef9eb
commit
45b5e4ce23
1 changed files with 28 additions and 2 deletions
|
|
@ -15,8 +15,34 @@ pub const Instance = opaque {
|
||||||
return Impl.instanceCreateSurface(instance, descriptor);
|
return Impl.instanceCreateSurface(instance, descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub inline fn requestAdapter(instance: *Instance, options: *const RequestAdapterOptions, callback: RequestAdapterCallback, userdata: ?*anyopaque) void {
|
pub inline fn requestAdapter(
|
||||||
Impl.instanceRequestAdapter(instance, options, callback, userdata);
|
instance: *Instance,
|
||||||
|
options: *const RequestAdapterOptions,
|
||||||
|
comptime Context: type,
|
||||||
|
comptime callback: fn (
|
||||||
|
status: RequestAdapterStatus,
|
||||||
|
adapter: *Adapter,
|
||||||
|
message: ?[*:0]const u8,
|
||||||
|
ctx: Context,
|
||||||
|
) callconv(.Inline) void,
|
||||||
|
context: Context,
|
||||||
|
) void {
|
||||||
|
const Helper = struct {
|
||||||
|
pub fn callback(
|
||||||
|
status: RequestAdapterStatus,
|
||||||
|
adapter: *Adapter,
|
||||||
|
message: ?[*:0]const u8,
|
||||||
|
userdata: ?*anyopaque,
|
||||||
|
) callconv(.C) void {
|
||||||
|
callback(
|
||||||
|
status,
|
||||||
|
adapter,
|
||||||
|
message,
|
||||||
|
if (Context == void) {} orelse @ptrCast(Context, userdata),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Impl.instanceRequestAdapter(instance, options, Helper.callback, if (Context == void) null orelse context);
|
||||||
}
|
}
|
||||||
|
|
||||||
pub inline fn reference(instance: *Instance) void {
|
pub inline fn reference(instance: *Instance) void {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue