From 17f3c174dc898539521c7bbbdc3454a56c2dc3de Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Mon, 11 Jul 2022 08:56:33 -0700 Subject: [PATCH] gpu: add MapMode flagset Signed-off-by: Stephen Gutekanst --- gpu/TODO-webgpu.h | 8 -------- gpu/src/Buffer.zig | 2 +- gpu/src/types.zig | 22 +++++++++++++++++++++- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gpu/TODO-webgpu.h b/gpu/TODO-webgpu.h index bf985f9d..25ac186e 100644 --- a/gpu/TODO-webgpu.h +++ b/gpu/TODO-webgpu.h @@ -1,13 +1,5 @@ typedef uint32_t WGPUFlags; -typedef enum WGPUMapMode { - WGPUMapMode_None = 0x00000000, - WGPUMapMode_Read = 0x00000001, - WGPUMapMode_Write = 0x00000002, - WGPUMapMode_Force32 = 0x7FFFFFFF -} WGPUMapMode; -typedef WGPUFlags WGPUMapModeFlags; - typedef enum WGPUShaderStage { WGPUShaderStage_None = 0x00000000, WGPUShaderStage_Vertex = 0x00000001, diff --git a/gpu/src/Buffer.zig b/gpu/src/Buffer.zig index b1153828..586f5698 100644 --- a/gpu/src/Buffer.zig +++ b/gpu/src/Buffer.zig @@ -40,6 +40,6 @@ pub const Usage = packed struct { } pub fn equal(a: Usage, b: Usage) bool { - return @truncate(u10, @bitCast(u32, a)) == @truncate(u10, @bitCast(u32, b)) ; + return @truncate(u10, @bitCast(u32, a)) == @truncate(u10, @bitCast(u32, b)); } }; diff --git a/gpu/src/types.zig b/gpu/src/types.zig index bd2f3223..422f59f4 100644 --- a/gpu/src/types.zig +++ b/gpu/src/types.zig @@ -319,7 +319,27 @@ pub const ColorWriteMask = packed struct { }; pub fn equal(a: ColorWriteMask, b: ColorWriteMask) bool { - return @truncate(u4, @bitCast(u32, a)) == @truncate(u4, @bitCast(u32, b)) ; + return @truncate(u4, @bitCast(u32, a)) == @truncate(u4, @bitCast(u32, b)); + } +}; + +pub const MapMode = packed struct { + read: bool = false, + write: bool = false, + + _padding: u30 = 0, + + comptime { + std.debug.assert( + @sizeOf(@This()) == @sizeOf(u32) and + @bitSizeOf(@This()) == @bitSizeOf(u32), + ); + } + + pub const undef = MapMode{}; + + pub fn equal(a: ColorWriteMask, b: ColorWriteMask) bool { + return @truncate(u2, @bitCast(u32, a)) == @truncate(u2, @bitCast(u32, b)); } };