diff options
Diffstat (limited to 'src/gpu/bind_group_builder.h')
| -rw-r--r-- | src/gpu/bind_group_builder.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/gpu/bind_group_builder.h b/src/gpu/bind_group_builder.h index d63f6e2..abce9dc 100644 --- a/src/gpu/bind_group_builder.h +++ b/src/gpu/bind_group_builder.h @@ -55,6 +55,28 @@ public: return *this; } + BindGroupLayoutBuilder& uint_texture(uint32_t binding, WGPUShaderStageFlags vis) { + WGPUBindGroupLayoutEntry e{}; + e.binding = binding; + e.visibility = vis; + e.texture.sampleType = WGPUTextureSampleType_Uint; + e.texture.viewDimension = WGPUTextureViewDimension_2D; + entries_.push_back(e); + return *this; + } + + BindGroupLayoutBuilder& storage_texture(uint32_t binding, WGPUShaderStageFlags vis, + WGPUTextureFormat format) { + WGPUBindGroupLayoutEntry e{}; + e.binding = binding; + e.visibility = vis; + e.storageTexture.access = WGPUStorageTextureAccess_WriteOnly; + e.storageTexture.format = format; + e.storageTexture.viewDimension = WGPUTextureViewDimension_2D; + entries_.push_back(e); + return *this; + } + BindGroupLayoutBuilder& sampler(uint32_t binding, WGPUShaderStageFlags vis) { WGPUBindGroupLayoutEntry e{}; e.binding = binding; |
