summaryrefslogtreecommitdiff
path: root/src/gpu/bind_group_builder.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/bind_group_builder.h')
-rw-r--r--src/gpu/bind_group_builder.h22
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;