Struct wgpu_core::binding_model::BindGroupLayout

source ·
pub struct BindGroupLayout {
    pub(crate) raw: ManuallyDrop<Box<dyn DynBindGroupLayout>>,
    pub(crate) device: Arc<Device>,
    pub(crate) entries: EntryMap,
    pub(crate) origin: Origin,
    pub(crate) exclusive_pipeline: OnceLock<ExclusivePipeline>,
    pub(crate) binding_count_validator: BindingTypeMaxCountValidator,
    pub(crate) label: String,
}
Expand description

Bind group layout.

Fields§

§raw: ManuallyDrop<Box<dyn DynBindGroupLayout>>§device: Arc<Device>§entries: EntryMap§origin: Origin

It is very important that we know if the bind group comes from the BGL pool.

If it does, then we need to remove it from the pool when we drop it.

We cannot unconditionally remove from the pool, as BGLs that don’t come from the pool (derived BGLs) must not be removed.

§exclusive_pipeline: OnceLock<ExclusivePipeline>§binding_count_validator: BindingTypeMaxCountValidator§label: String

The label from the descriptor used to create the resource.

Implementations§

source§

impl BindGroupLayout

source

pub(crate) fn raw(&self) -> &dyn DynBindGroupLayout

Trait Implementations§

source§

impl Debug for BindGroupLayout

source§

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

Formats the value using the given formatter. Read more
source§

impl Drop for BindGroupLayout

source§

fn drop(&mut self)

Executes the destructor for this type. Read more
source§

impl Labeled for BindGroupLayout

source§

fn label(&self) -> &str

Returns a string identifying this resource for logging and errors. Read more
source§

fn error_ident(&self) -> ResourceErrorIdent

source§

impl ParentDevice for BindGroupLayout

source§

fn device(&self) -> &Arc<Device>

source§

fn is_equal(self: &Arc<Self>, other: &Arc<Self>) -> bool

source§

fn same_device_as<O: ParentDevice>(&self, other: &O) -> Result<(), DeviceError>

source§

fn same_device(&self, device: &Device) -> Result<(), DeviceError>

source§

impl ResourceType for BindGroupLayout

source§

const TYPE: &'static str = "BindGroupLayout"

source§

impl StorageItem for BindGroupLayout

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
source§

impl<T> Downcast<T> for T

source§

fn downcast(&self) -> &T

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, 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.
source§

impl<T> Upcast<T> for T

source§

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

source§

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

source§

impl<T> WasmNotSendSync for T

source§

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