diff --git a/gpu/src/Buffer.zig b/gpu/src/Buffer.zig index 0141e63f..bcca5c95 100644 --- a/gpu/src/Buffer.zig +++ b/gpu/src/Buffer.zig @@ -1,47 +1,51 @@ const std = @import("std"); -ptr: *anyopaque, +pub const Buffer = enum(usize) { + _, -pub const BindingType = enum(u32) { - undef = 0x00000000, - uniform = 0x00000001, - storage = 0x00000002, - read_only_storage = 0x00000003, -}; - -pub const MapAsyncStatus = enum(u32) { - success = 0x00000000, - err = 0x00000001, - unknown = 0x00000002, - device_lost = 0x00000003, - destroyed_before_callback = 0x00000004, - unmapped_before_callback = 0x00000005, -}; - -pub const Usage = packed struct { - map_read: bool = false, - map_write: bool = false, - copy_src: bool = false, - copy_dst: bool = false, - index: bool = false, - vertex: bool = false, - uniform: bool = false, - storage: bool = false, - indirect: bool = false, - query_resolve: bool = false, - - _padding: u22 = 0, - - comptime { - std.debug.assert( - @sizeOf(@This()) == @sizeOf(u32) and - @bitSizeOf(@This()) == @bitSizeOf(u32), - ); - } - - pub const none = Usage{}; - - pub fn equal(a: Usage, b: Usage) bool { - return @truncate(u10, @bitCast(u32, a)) == @truncate(u10, @bitCast(u32, b)); - } + pub const none: Buffer = @intToEnum(Buffer, 0); + + pub const BindingType = enum(u32) { + undef = 0x00000000, + uniform = 0x00000001, + storage = 0x00000002, + read_only_storage = 0x00000003, + }; + + pub const MapAsyncStatus = enum(u32) { + success = 0x00000000, + err = 0x00000001, + unknown = 0x00000002, + device_lost = 0x00000003, + destroyed_before_callback = 0x00000004, + unmapped_before_callback = 0x00000005, + }; + + pub const Usage = packed struct { + map_read: bool = false, + map_write: bool = false, + copy_src: bool = false, + copy_dst: bool = false, + index: bool = false, + vertex: bool = false, + uniform: bool = false, + storage: bool = false, + indirect: bool = false, + query_resolve: bool = false, + + _padding: u22 = 0, + + comptime { + std.debug.assert( + @sizeOf(@This()) == @sizeOf(u32) and + @bitSizeOf(@This()) == @bitSizeOf(u32), + ); + } + + pub const none = Usage{}; + + pub fn equal(a: Usage, b: Usage) bool { + return @truncate(u10, @bitCast(u32, a)) == @truncate(u10, @bitCast(u32, b)); + } + }; }; diff --git a/gpu/src/main.zig b/gpu/src/main.zig index d1d82182..f6fde902 100644 --- a/gpu/src/main.zig +++ b/gpu/src/main.zig @@ -12,7 +12,7 @@ pub const whole_size = 0xffffffffffffffff; pub const Adapter = @import("Adapter.zig"); pub const BindGroup = @import("BindGroup.zig"); pub const BindGroupLayout = @import("BindGroupLayout.zig"); -pub const Buffer = @import("Buffer.zig"); +pub const Buffer = @import("buffer.zig").Buffer; pub const CommandBuffer = @import("CommandBuffer.zig"); pub const CommandEncoder = @import("CommandEncoder.zig"); pub const ComputePassEncoder = @import("ComputePassEncoder.zig"); @@ -40,7 +40,7 @@ test { refAllDecls(@import("Adapter.zig")); refAllDecls(@import("BindGroup.zig")); refAllDecls(@import("BindGroupLayout.zig")); - refAllDecls(@import("Buffer.zig")); + refAllDecls(@import("buffer.zig")); refAllDecls(@import("CommandBuffer.zig")); refAllDecls(@import("CommandEncoder.zig")); refAllDecls(@import("ComputePassEncoder.zig"));