diff --git a/ffi/wgpu.h b/ffi/wgpu.h index a77e0a7a5..ec6d92bc5 100644 --- a/ffi/wgpu.h +++ b/ffi/wgpu.h @@ -180,6 +180,12 @@ typedef enum { WGPUTextureAspect_DepthOnly, } WGPUTextureAspect; +typedef enum { + WGPUTextureComponentType_Float, + WGPUTextureComponentType_Sint, + WGPUTextureComponentType_Uint, +} WGPUTextureComponentType; + typedef enum { WGPUTextureDimension_D1, WGPUTextureDimension_D2, @@ -482,6 +488,7 @@ typedef struct { bool multisampled; bool has_dynamic_offset; WGPUTextureViewDimension view_dimension; + WGPUTextureComponentType texture_component_type; WGPUTextureFormat storage_texture_format; } WGPUBindGroupLayoutEntry; diff --git a/wgpu-core/src/binding_model.rs b/wgpu-core/src/binding_model.rs index cc82eb796..98d918003 100644 --- a/wgpu-core/src/binding_model.rs +++ b/wgpu-core/src/binding_model.rs @@ -33,6 +33,15 @@ pub enum BindingType { WriteonlyStorageTexture = 7, } +#[repr(C)] +#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq)] +#[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate="serde_crate"))] +pub enum TextureComponentType { + Float, + Sint, + Uint, +} + #[repr(C)] #[derive(Clone, Debug, Hash, PartialEq)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize), serde(crate="serde_crate"))] @@ -43,6 +52,7 @@ pub struct BindGroupLayoutEntry { pub multisampled: bool, pub has_dynamic_offset: bool, pub view_dimension: wgt::TextureViewDimension, + pub texture_component_type: TextureComponentType, pub storage_texture_format: wgt::TextureFormat, }