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
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ b.getInstallStep().dependOn(&install_dll.step);
message: StringView,
userdata1: ?*anyopaque,
userdata2: ?*anyopaque
) callconv(.C) void {
) callconv(.c) void {
switch(status) {
.success => {
const ud_adapter: **Adapter = @ptrCast(@alignCast(userdata1));
Expand Down
25 changes: 13 additions & 12 deletions examples/bmp.zig
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,16 @@ pub fn write24BitBMP(file_name: []const u8, comptime width: u32, comptime height
const file = try std.fs.cwd().createFile(file_name, .{});
defer file.close();

var writer = file.writer();
var buffer: [1024]u8 = undefined;
var fw = file.writer(&buffer);
const writer = &fw.interface;

const bytes_per_line = comptime std.mem.alignForward(u32, width * 3, 4);
const file_size = 54 + (bytes_per_line * height);

// ID
_ = try writer.write(&[2]u8{'B', 'M'});
_ = try writer.write(&[2]u8{ 'B', 'M' });

const colors_per_line = width * 3;
const bytes_per_line = switch(colors_per_line & 0x00000003) {
0 => colors_per_line,
else => (colors_per_line | 0x00000003) + 1,
};
const file_size = 54 + (bytes_per_line * height);
try writer.writeInt(u32, file_size, .little);

// reserved
Expand All @@ -33,9 +32,9 @@ pub fn write24BitBMP(file_name: []const u8, comptime width: u32, comptime height
try writer.writeInt(u16, 24, .little);
// Six 32-bit words, all set to zero:
// compression type, compressed image size, x pixels/meter, y pixels/meter, colors used, important colors
try writer.writeByteNTimes(0, 4 * 6);
try writer.splatByteAll(0 , 4 * 6);

var line_buffer = [_]u8{0} ** bytes_per_line;
var line_buffer: [bytes_per_line]u8 = @splat(0);
const bgra_pixels_per_line = width * 4;
for (0..height) |i_y| {
const y = height - i_y - 1;
Expand All @@ -45,8 +44,10 @@ pub fn write24BitBMP(file_name: []const u8, comptime width: u32, comptime height
const bgra_pixel_offset = line_offset + (x * 4);
line_buffer[bgr_pixel_offset] = bgra_data[bgra_pixel_offset];
line_buffer[bgr_pixel_offset + 1] = bgra_data[bgra_pixel_offset + 1];
line_buffer[bgr_pixel_offset + 2] = bgra_data[bgra_pixel_offset + 2];
line_buffer[bgr_pixel_offset + 2] = bgra_data[bgra_pixel_offset + 2];
}
_ = try writer.write(&line_buffer);
}
}

try writer.flush();
}
4 changes: 2 additions & 2 deletions examples/triangle/triangle.zig
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const output_extent = wgpu.Extent3D {
const output_bytes_per_row = 4 * output_extent.width;
const output_size = output_bytes_per_row * output_extent.height;

fn handleBufferMap(status: wgpu.MapAsyncStatus, _: wgpu.StringView, userdata1: ?*anyopaque, _: ?*anyopaque) callconv(.C) void {
fn handleBufferMap(status: wgpu.MapAsyncStatus, _: wgpu.StringView, userdata1: ?*anyopaque, _: ?*anyopaque) callconv(.c) void {
std.log.info("buffer_map status={x:.8}\n", .{@intFromEnum(status)});
const complete: *bool = @ptrCast(@alignCast(userdata1));
complete.* = true;
Expand Down Expand Up @@ -171,4 +171,4 @@ pub fn main() !void {
const output = buf[0..output_size];
try bmp.write24BitBMP("examples/output/triangle.bmp", output_extent.width, output_extent.height, output);
}
}
}
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);
}
}
12 changes: 6 additions & 6 deletions src/bind_group.zig
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ pub const BindGroupLayoutDescriptor = extern struct {
};

pub const BindGroupLayoutProcs = struct {
pub const SetLabel = *const fn(*BindGroupLayout, StringView) callconv(.C) void;
pub const AddRef = *const fn(*BindGroupLayout) callconv(.C) void;
pub const Release = *const fn(*BindGroupLayout) callconv(.C) void;
pub const SetLabel = *const fn(*BindGroupLayout, StringView) callconv(.c) void;
pub const AddRef = *const fn(*BindGroupLayout) callconv(.c) void;
pub const Release = *const fn(*BindGroupLayout) callconv(.c) void;
};

extern fn wgpuBindGroupLayoutSetLabel(bind_group_layout: *BindGroupLayout, label: StringView) void;
Expand Down Expand Up @@ -129,9 +129,9 @@ pub const BindGroupDescriptor = extern struct {
};

pub const BindGroupProcs = struct {
pub const SetLabel = *const fn(*BindGroup, StringView) callconv(.C) void;
pub const AddRef = *const fn(*BindGroup) callconv(.C) void;
pub const Release = *const fn(*BindGroup) callconv(.C) void;
pub const SetLabel = *const fn(*BindGroup, StringView) callconv(.c) void;
pub const AddRef = *const fn(*BindGroup) callconv(.c) void;
pub const Release = *const fn(*BindGroup) callconv(.c) void;
};

extern fn wgpuBindGroupSetLabel(bind_group: *BindGroup, label: StringView) void;
Expand Down
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);
}
};
};
Loading