Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions src/adapter.zig
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ pub const RequestAdapterCallback = *const fn(
message: StringView,
userdata1: ?*anyopaque,
userdata2: ?*anyopaque,
) callconv(.C) void;
) callconv(.c) void;

pub const RequestAdapterResponse = struct {
status: RequestAdapterStatus,
Expand All @@ -119,7 +119,7 @@ pub const RequestAdapterResponse = struct {
};

pub const AdapterInfoProcs = struct {
pub const FreeMembers = *const fn(AdapterInfo) callconv(.C) void;
pub const FreeMembers = *const fn(AdapterInfo) callconv(.c) void;
};

extern fn wgpuAdapterInfoFreeMembers(adapter_info: AdapterInfo) void;
Expand All @@ -141,13 +141,13 @@ pub const AdapterInfo = extern struct {
};

pub const AdapterProcs = struct {
pub const GetFeatures = *const fn(*Adapter, *SupportedFeatures) callconv(.C) void;
pub const GetLimits = *const fn(*Adapter, *Limits) callconv(.C) Status;
pub const GetInfo = *const fn(*Adapter, *AdapterInfo) callconv(.C) Status;
pub const HasFeature = *const fn(*Adapter, FeatureName) callconv(.C) WGPUBool;
pub const RequestDevice = *const fn(*Adapter, ?*const DeviceDescriptor, RequestDeviceCallbackInfo) callconv(.C) Future;
pub const AddRef = *const fn(*Adapter) callconv(.C) void;
pub const Release = *const fn(*Adapter) callconv(.C) void;
pub const GetFeatures = *const fn(*Adapter, *SupportedFeatures) callconv(.c) void;
pub const GetLimits = *const fn(*Adapter, *Limits) callconv(.c) Status;
pub const GetInfo = *const fn(*Adapter, *AdapterInfo) callconv(.c) Status;
pub const HasFeature = *const fn(*Adapter, FeatureName) callconv(.c) WGPUBool;
pub const RequestDevice = *const fn(*Adapter, ?*const DeviceDescriptor, RequestDeviceCallbackInfo) callconv(.c) Future;
pub const AddRef = *const fn(*Adapter) callconv(.c) void;
pub const Release = *const fn(*Adapter) callconv(.c) void;
};

extern fn wgpuAdapterGetFeatures(adapter: *Adapter, features: *SupportedFeatures) void;
Expand All @@ -172,7 +172,7 @@ pub const Adapter = opaque{
return wgpuAdapterHasFeature(self, feature) != 0;
}

fn defaultDeviceCallback(status: RequestDeviceStatus, device: ?*Device, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void {
fn defaultDeviceCallback(status: RequestDeviceStatus, device: ?*Device, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void {
const ud_response: *RequestDeviceResponse = @ptrCast(@alignCast(userdata1));
ud_response.* = RequestDeviceResponse {
.status = status,
Expand Down Expand Up @@ -234,4 +234,4 @@ test "can request device" {
else => null
};
try testing.expect(device != null);
}
}
26 changes: 13 additions & 13 deletions src/buffer.zig
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ pub const BufferMapCallbackInfo = extern struct {
userdata2: ?*anyopaque = null,
};

pub const BufferMapCallback = *const fn(status: MapAsyncStatus, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void;
pub const BufferMapCallback = *const fn(status: MapAsyncStatus, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void;

pub const BufferDescriptor = extern struct {
next_in_chain: ?*const ChainedStruct = null,
Expand All @@ -86,17 +86,17 @@ pub const BufferDescriptor = extern struct {
};

pub const BufferProcs = struct {
pub const Destroy = *const fn(*Buffer) callconv(.C) void;
pub const GetConstMappedRange = *const fn(*Buffer, usize, usize) callconv(.C) ?*const anyopaque;
pub const GetMapState = *const fn(*Buffer) callconv(.C) BufferMapState;
pub const GetMappedRange = *const fn(*Buffer, usize, usize) callconv(.C) ?*anyopaque;
pub const GetSize = *const fn(*Buffer) callconv(.C) u64;
pub const GetUsage = *const fn(*Buffer) callconv(.C) BufferUsage;
pub const MapAsync = *const fn(*Buffer, MapMode, usize, usize, BufferMapCallbackInfo) callconv(.C) Future;
pub const SetLabel = *const fn(*Buffer, StringView) callconv(.C) void;
pub const Unmap = *const fn(*Buffer) callconv(.C) void;
pub const AddRef = *const fn(*Buffer) callconv(.C) void;
pub const Release = *const fn(*Buffer) callconv(.C) void;
pub const Destroy = *const fn(*Buffer) callconv(.c) void;
pub const GetConstMappedRange = *const fn(*Buffer, usize, usize) callconv(.c) ?*const anyopaque;
pub const GetMapState = *const fn(*Buffer) callconv(.c) BufferMapState;
pub const GetMappedRange = *const fn(*Buffer, usize, usize) callconv(.c) ?*anyopaque;
pub const GetSize = *const fn(*Buffer) callconv(.c) u64;
pub const GetUsage = *const fn(*Buffer) callconv(.c) BufferUsage;
pub const MapAsync = *const fn(*Buffer, MapMode, usize, usize, BufferMapCallbackInfo) callconv(.c) Future;
pub const SetLabel = *const fn(*Buffer, StringView) callconv(.c) void;
pub const Unmap = *const fn(*Buffer) callconv(.c) void;
pub const AddRef = *const fn(*Buffer) callconv(.c) void;
pub const Release = *const fn(*Buffer) callconv(.c) void;
};

extern fn wgpuBufferDestroy(buffer: *Buffer) void;
Expand Down Expand Up @@ -184,4 +184,4 @@ pub const Buffer = opaque {
pub inline fn release(self: *Buffer) void {
wgpuBufferRelease(self);
}
};
};
68 changes: 34 additions & 34 deletions src/device.zig
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ pub const DeviceLostCallbackInfo = extern struct {
};

// `device` is a reference to the device which was lost. If, and only if, the `reason` is DeviceLostReason.failed_creation, `device` is a non-null pointer to a null Device.
pub const DeviceLostCallback = *const fn(device: *const ?*Device, reason: DeviceLostReason, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void;
pub fn defaultDeviceLostCallback(device: *const ?*Device, reason: DeviceLostReason, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void {
pub const DeviceLostCallback = *const fn(device: *const ?*Device, reason: DeviceLostReason, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void;
pub fn defaultDeviceLostCallback(device: *const ?*Device, reason: DeviceLostReason, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void {
_ = device;
_ = userdata1;
_ = userdata2;
Expand All @@ -120,7 +120,7 @@ pub const ErrorType = enum(u32) {
unknown = 0x00000005,
};

pub const UncapturedErrorCallback = *const fn(device: ?*Device, error_type: ErrorType, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void;
pub const UncapturedErrorCallback = *const fn(device: ?*Device, error_type: ErrorType, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void;

pub const ErrorFilter = enum(u32) {
validation = 0x00000001,
Expand Down Expand Up @@ -168,7 +168,7 @@ pub const RequestDeviceCallback = *const fn(
message: StringView,
userdata1: ?*anyopaque,
userdata2: ?*anyopaque
) callconv(.C) void;
) callconv(.c) void;

pub const RequestDeviceResponse = struct {
status: RequestDeviceStatus,
Expand Down Expand Up @@ -210,7 +210,7 @@ pub const PopErrorScopeCallback = *const fn(
message: StringView,
userdata1: ?*anyopaque,
userdata2: ?*anyopaque,
) callconv(.C) void;
) callconv(.c) void;

pub const PopErrorScopeCallbackInfo = extern struct {
next_in_chain: ?*ChainedStruct = null,
Expand All @@ -224,36 +224,36 @@ pub const PopErrorScopeCallbackInfo = extern struct {
};

pub const DeviceProcs = struct {
pub const CreateBindGroup = *const fn(*Device, *const BindGroupDescriptor) callconv(.C) ?*BindGroup;
pub const CreateBindGroupLayout = *const fn(*Device, *const BindGroupLayoutDescriptor) callconv(.C) ?*BindGroupLayout;
pub const CreateBuffer = *const fn(*Device, *const BufferDescriptor) callconv(.C) ?*Buffer;
pub const CreateCommandEncoder = *const fn(*Device, *const CommandEncoderDescriptor) callconv(.C) ?*CommandEncoder;
pub const CreateComputePipeline = *const fn(*Device, *const ComputePipelineDescriptor) callconv(.C) ?*ComputePipeline;
pub const CreateComputePipelineAsync = *const fn(*Device, *const ComputePipelineDescriptor, CreateComputePipelineAsyncCallbackInfo) callconv(.C) Future;
pub const CreatePipelineLayout = *const fn(*Device, *const PipelineLayoutDescriptor) callconv(.C) ?*PipelineLayout;
pub const CreateQuerySet = *const fn(*Device, *const QuerySetDescriptor) callconv(.C) ?*QuerySet;
pub const CreateRenderBundleEncoder = *const fn(*Device, *const RenderBundleEncoderDescriptor) callconv(.C) ?*RenderBundleEncoder;
pub const CreateRenderPipeline = *const fn(*Device, *const RenderPipelineDescriptor) callconv(.C) ?*RenderPipeline;
pub const CreateRenderPipelineAsync = *const fn(*Device, *const RenderPipelineDescriptor, CreateRenderPipelineAsyncCallbackInfo) callconv(.C) Future;
pub const CreateSampler = *const fn(*Device, *const SamplerDescriptor) callconv(.C) ?*Sampler;
pub const CreateShaderModule = *const fn(*Device, *const ShaderModuleDescriptor) callconv(.C) ?*ShaderModule;
pub const CreateTexture = *const fn(*Device, *const TextureDescriptor) callconv(.C) ?*Texture;
pub const Destroy = *const fn(*Device) callconv(.C) void;
pub const GetAdapterInfo = *const fn(*Device) callconv(.C) AdapterInfo;
pub const GetFeatures = *const fn(*Device, *SupportedFeatures) callconv(.C) void;
pub const GetLimits = *const fn(*Device, *Limits) callconv(.C) Status;
pub const GetLostFuture = *const fn(*Device) callconv(.C) Future;
pub const GetQueue = *const fn(*Device) callconv(.C) ?*Queue;
pub const HasFeature = *const fn(*Device, FeatureName) callconv(.C) WGPUBool;
pub const PopErrorScope = *const fn(*Device, PopErrorScopeCallbackInfo) callconv(.C) Future;
pub const PushErrorScope = *const fn(*Device, ErrorFilter) callconv(.C) void;
pub const SetLabel = *const fn(*Device, StringView) callconv(.C) void;
pub const AddRef = *const fn(*Device) callconv(.C) void;
pub const Release = *const fn(*Device) callconv(.C) void;
pub const CreateBindGroup = *const fn(*Device, *const BindGroupDescriptor) callconv(.c) ?*BindGroup;
pub const CreateBindGroupLayout = *const fn(*Device, *const BindGroupLayoutDescriptor) callconv(.c) ?*BindGroupLayout;
pub const CreateBuffer = *const fn(*Device, *const BufferDescriptor) callconv(.c) ?*Buffer;
pub const CreateCommandEncoder = *const fn(*Device, *const CommandEncoderDescriptor) callconv(.c) ?*CommandEncoder;
pub const CreateComputePipeline = *const fn(*Device, *const ComputePipelineDescriptor) callconv(.c) ?*ComputePipeline;
pub const CreateComputePipelineAsync = *const fn(*Device, *const ComputePipelineDescriptor, CreateComputePipelineAsyncCallbackInfo) callconv(.c) Future;
pub const CreatePipelineLayout = *const fn(*Device, *const PipelineLayoutDescriptor) callconv(.c) ?*PipelineLayout;
pub const CreateQuerySet = *const fn(*Device, *const QuerySetDescriptor) callconv(.c) ?*QuerySet;
pub const CreateRenderBundleEncoder = *const fn(*Device, *const RenderBundleEncoderDescriptor) callconv(.c) ?*RenderBundleEncoder;
pub const CreateRenderPipeline = *const fn(*Device, *const RenderPipelineDescriptor) callconv(.c) ?*RenderPipeline;
pub const CreateRenderPipelineAsync = *const fn(*Device, *const RenderPipelineDescriptor, CreateRenderPipelineAsyncCallbackInfo) callconv(.c) Future;
pub const CreateSampler = *const fn(*Device, *const SamplerDescriptor) callconv(.c) ?*Sampler;
pub const CreateShaderModule = *const fn(*Device, *const ShaderModuleDescriptor) callconv(.c) ?*ShaderModule;
pub const CreateTexture = *const fn(*Device, *const TextureDescriptor) callconv(.c) ?*Texture;
pub const Destroy = *const fn(*Device) callconv(.c) void;
pub const GetAdapterInfo = *const fn(*Device) callconv(.c) AdapterInfo;
pub const GetFeatures = *const fn(*Device, *SupportedFeatures) callconv(.c) void;
pub const GetLimits = *const fn(*Device, *Limits) callconv(.c) Status;
pub const GetLostFuture = *const fn(*Device) callconv(.c) Future;
pub const GetQueue = *const fn(*Device) callconv(.c) ?*Queue;
pub const HasFeature = *const fn(*Device, FeatureName) callconv(.c) WGPUBool;
pub const PopErrorScope = *const fn(*Device, PopErrorScopeCallbackInfo) callconv(.c) Future;
pub const PushErrorScope = *const fn(*Device, ErrorFilter) callconv(.c) void;
pub const SetLabel = *const fn(*Device, StringView) callconv(.c) void;
pub const AddRef = *const fn(*Device) callconv(.c) void;
pub const Release = *const fn(*Device) callconv(.c) void;

// wgpu-native procs?
// pub const Poll = *const fn(*Device, WGPUBool, ?*const SubmissionIndex) callconv(.C) WGPUBool;
// pub const CreateShaderModuleSpirV = *const fn(*Device, *const ShaderModuleDescriptorSpirV) callconv(.C) ?*ShaderModule;
// pub const Poll = *const fn(*Device, WGPUBool, ?*const SubmissionIndex) callconv(.c) WGPUBool;
// pub const CreateShaderModuleSpirV = *const fn(*Device, *const ShaderModuleDescriptorSpirV) callconv(.c) ?*ShaderModule;
};

extern fn wgpuDeviceCreateBindGroup(device: *Device, descriptor: *const BindGroupDescriptor) ?*BindGroup;
Expand Down Expand Up @@ -398,4 +398,4 @@ pub const Device = opaque {
}
};

// TODO: Test methods of Device (as long as they can be tested headlessly: see https://eliemichel.github.io/LearnWebGPU/advanced-techniques/headless.html)
// TODO: Test methods of Device (as long as they can be tested headlessly: see https://eliemichel.github.io/LearnWebGPU/advanced-techniques/headless.html)
32 changes: 16 additions & 16 deletions src/instance.zig
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ pub const WGSLLanguageFeatureName = enum(u32) {
};

pub const SupportedWGSLLanguageFeaturesProcs = struct {
pub const FreeMembers = *const fn(SupportedWGSLLanguageFeatures) callconv(.C) void;
pub const FreeMembers = *const fn(SupportedWGSLLanguageFeatures) callconv(.c) void;
};

extern fn wgpuSupportedWGSLLanguageFeaturesFreeMembers(supported_wgsl_language_features: SupportedWGSLLanguageFeatures) void;
Expand All @@ -142,21 +142,21 @@ pub const SupportedWGSLLanguageFeatures = extern struct {
};

pub const InstanceProcs = struct {
pub const CreateInstance = *const fn(?*const InstanceDescriptor) callconv(.C) ?*Instance;
pub const GetCapabilities = *const fn(*InstanceCapabilities) callconv(.C) Status;

pub const CreateSurface = *const fn(*Instance, *const SurfaceDescriptor) callconv(.C) ?*Surface;
pub const GetWGSLLanguageFeatures = *const fn(*Instance, *SupportedWGSLLanguageFeatures) callconv(.C) Status;
pub const HasWGSLLanguageFeature = *const fn(*Instance, WGSLLanguageFeatureName) callconv(.C) WGPUBool;
pub const ProcessEvents = *const fn(*Instance) callconv(.C) void;
pub const RequestAdapter = *const fn(*Instance, ?*const RequestAdapterOptions, RequestAdapterCallbackInfo) callconv(.C) Future;
pub const WaitAny = *const fn(*Instance, usize, ?[*] FutureWaitInfo, u64) callconv(.C) WaitStatus;
pub const InstanceAddRef = *const fn(*Instance) callconv(.C) void;
pub const InstanceRelease = *const fn(*Instance) callconv(.C) void;
pub const CreateInstance = *const fn(?*const InstanceDescriptor) callconv(.c) ?*Instance;
pub const GetCapabilities = *const fn(*InstanceCapabilities) callconv(.c) Status;

pub const CreateSurface = *const fn(*Instance, *const SurfaceDescriptor) callconv(.c) ?*Surface;
pub const GetWGSLLanguageFeatures = *const fn(*Instance, *SupportedWGSLLanguageFeatures) callconv(.c) Status;
pub const HasWGSLLanguageFeature = *const fn(*Instance, WGSLLanguageFeatureName) callconv(.c) WGPUBool;
pub const ProcessEvents = *const fn(*Instance) callconv(.c) void;
pub const RequestAdapter = *const fn(*Instance, ?*const RequestAdapterOptions, RequestAdapterCallbackInfo) callconv(.c) Future;
pub const WaitAny = *const fn(*Instance, usize, ?[*] FutureWaitInfo, u64) callconv(.c) WaitStatus;
pub const InstanceAddRef = *const fn(*Instance) callconv(.c) void;
pub const InstanceRelease = *const fn(*Instance) callconv(.c) void;

// wgpu-native procs?
// pub const GenerateReport = *const fn(*Instance, *GlobalReport) callconv(.C) void;
// pub const EnumerateAdapters = *const fn(*Instance, ?*const EnumerateAdapterOptions, ?[*]Adapter) callconv(.C) usize;
// pub const GenerateReport = *const fn(*Instance, *GlobalReport) callconv(.c) void;
// pub const EnumerateAdapters = *const fn(*Instance, ?*const EnumerateAdapterOptions, ?[*]Adapter) callconv(.c) usize;
};

extern fn wgpuGetInstanceCapabilities(capabilities: *InstanceCapabilities) Status;
Expand Down Expand Up @@ -245,7 +245,7 @@ pub const Instance = opaque {
wgpuInstanceProcessEvents(self);
}

fn defaultAdapterCallback(status: RequestAdapterStatus, adapter: ?*Adapter, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.C) void {
fn defaultAdapterCallback(status: RequestAdapterStatus, adapter: ?*Adapter, message: StringView, userdata1: ?*anyopaque, userdata2: ?*anyopaque) callconv(.c) void {
const ud_response: *RequestAdapterResponse = @ptrCast(@alignCast(userdata1));
ud_response.* = RequestAdapterResponse {
.status = status,
Expand Down Expand Up @@ -328,4 +328,4 @@ test "can request adapter" {
else => null,
};
try testing.expect(adapter != null);
}
}