Enum wgpu::BindingType

pub enum BindingType {
    Buffer {
        ty: BufferBindingType,
        has_dynamic_offset: bool,
        min_binding_size: Option<NonZeroU64>,
    },
    Sampler(SamplerBindingType),
    Texture {
        sample_type: TextureSampleType,
        view_dimension: TextureViewDimension,
        multisampled: bool,
    },
    StorageTexture {
        access: StorageTextureAccess,
        format: TextureFormat,
        view_dimension: TextureViewDimension,
    },
    AccelerationStructure,
}
Expand description

Specific type of a binding.

For use in BindGroupLayoutEntry.

Corresponds to WebGPU’s mutually exclusive fields within GPUBindGroupLayoutEntry.

Variants§

§

Buffer

Fields

§ty: BufferBindingType

Sub-type of the buffer binding.

§has_dynamic_offset: bool

Indicates that the binding has a dynamic offset.

One offset must be passed to RenderPass::set_bind_group for each dynamic binding in increasing order of binding number.

§min_binding_size: Option<NonZeroU64>

The minimum size for a BufferBinding matching this entry, in bytes.

If this is Some(size):

If this is None:

A buffer binding.

Corresponds to WebGPU GPUBufferBindingLayout.

§

Sampler(SamplerBindingType)

A sampler that can be used to sample a texture.

Example WGSL syntax:

@group(0) @binding(0)
var s: sampler;

Example GLSL syntax:

layout(binding = 0)
uniform sampler s;

Corresponds to WebGPU GPUSamplerBindingLayout.

§

Texture

Fields

§sample_type: TextureSampleType

Sample type of the texture binding.

§view_dimension: TextureViewDimension

Dimension of the texture view that is going to be sampled.

§multisampled: bool

True if the texture has a sample count greater than 1. If this is true, the texture must be declared as texture_multisampled_2d or texture_depth_multisampled_2d in the shader, and read using textureLoad.

A texture binding.

Example WGSL syntax:

@group(0) @binding(0)
var t: texture_2d<f32>;

Example GLSL syntax:

layout(binding = 0)
uniform texture2D t;

Corresponds to WebGPU GPUTextureBindingLayout.

§

StorageTexture

Fields

§access: StorageTextureAccess

Allowed access to this texture.

§format: TextureFormat

Format of the texture.

§view_dimension: TextureViewDimension

Dimension of the texture view that is going to be sampled.

A storage texture.

Example WGSL syntax:

@group(0) @binding(0)
var my_storage_image: texture_storage_2d<r32float, write>;

Example GLSL syntax:

layout(set=0, binding=0, r32f) writeonly uniform image2D myStorageImage;

Note that the texture format must be specified in the shader, along with the access mode. For WGSL, the format must be one of the enumerants in the list of storage texel formats.

Corresponds to WebGPU GPUStorageTextureBindingLayout.

§

AccelerationStructure

A ray-tracing acceleration structure binding.

Example WGSL syntax:

@group(0) @binding(0)
var as: acceleration_structure;

Example GLSL syntax:

layout(binding = 0)
uniform accelerationStructureEXT as;

Implementations§

§

impl BindingType

pub fn has_dynamic_offset(&self) -> bool

Returns true for buffer bindings with dynamic offset enabled.

Trait Implementations§

§

impl Clone for BindingType

§

fn clone(&self) -> BindingType

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for BindingType

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl<'de> Deserialize<'de> for BindingType

§

fn deserialize<__D>( __deserializer: __D ) -> Result<BindingType, <__D as Deserializer<'de>>::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
§

impl Hash for BindingType

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl PartialEq for BindingType

§

fn eq(&self, other: &BindingType) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Serialize for BindingType

§

fn serialize<__S>( &self, __serializer: __S ) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
§

impl Copy for BindingType

§

impl Eq for BindingType

§

impl StructuralEq for BindingType

§

impl StructuralPartialEq for BindingType

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

impl<T> WasmNotSync for T
where T: Sync,