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);
|
||||
}
|
||||
|
||||
pub inline fn requestAdapter(instance: *Instance, options: *const RequestAdapterOptions, callback: RequestAdapterCallback, userdata: ?*anyopaque) void {
|
||||
Impl.instanceRequestAdapter(instance, options, callback, userdata);
|
||||
pub inline fn requestAdapter(
|
||||
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 {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue