pub struct SharedBindings<'a> {
pub group0_layout: &'a BindGroupLayout,
}Expand description
Group-0 bind layout shared by every scene pipeline.
Plugin pipeline layouts must list this layout as group 0 so the lib’s bound
camera / lights / shadow / clip / IBL resources are visible to the plugin’s
shader. Bindings 0-13 match shared_wgsl::SHARED_BINDINGS_WGSL; do not
re-declare them in plugin WGSL.
Obtain a reference via
DeviceResources::shared_bindings.
Fields§
§group0_layout: &'a BindGroupLayoutThe group-0 BindGroupLayout. Pass by reference when calling
device.create_pipeline_layout.
Implementations§
Sourcepub const CAMERA_BINDING: u32 = 0
pub const CAMERA_BINDING: u32 = 0
Binding indices inside group 0. Stable across releases: additive
changes only. See shared_wgsl::SHARED_BINDINGS_WGSL for the WGSL
declarations.
Sourcepub const SHADOW_ATLAS_BINDING: u32 = 1
pub const SHADOW_ATLAS_BINDING: u32 = 1
Shadow atlas depth texture.
Sourcepub const SHADOW_SAMPLER_BINDING: u32 = 2
pub const SHADOW_SAMPLER_BINDING: u32 = 2
Comparison sampler used for PCF shadow filtering.
Sourcepub const LIGHTS_HEADER_BINDING: u32 = 3
pub const LIGHTS_HEADER_BINDING: u32 = 3
Lights header uniform (count, hemisphere, IBL toggles).
Sourcepub const CLIP_PLANES_BINDING: u32 = 4
pub const CLIP_PLANES_BINDING: u32 = 4
Clip planes uniform (section-view planes).
Sourcepub const SHADOW_INFO_BINDING: u32 = 5
pub const SHADOW_INFO_BINDING: u32 = 5
Shadow info uniform (CSM matrices, splits, PCSS params).
Sourcepub const CLIP_VOLUME_BINDING: u32 = 6
pub const CLIP_VOLUME_BINDING: u32 = 6
Clip volume uniform (box/sphere/cylinder regions).
Sourcepub const IBL_IRRADIANCE_BINDING: u32 = 7
pub const IBL_IRRADIANCE_BINDING: u32 = 7
IBL irradiance equirect texture.
Sourcepub const IBL_SPECULAR_BINDING: u32 = 8
pub const IBL_SPECULAR_BINDING: u32 = 8
IBL prefiltered specular equirect texture.
Sourcepub const IBL_BRDF_LUT_BINDING: u32 = 9
pub const IBL_BRDF_LUT_BINDING: u32 = 9
BRDF integration LUT.
Sourcepub const IBL_SAMPLER_BINDING: u32 = 10
pub const IBL_SAMPLER_BINDING: u32 = 10
IBL filtering sampler (linear, clamp-to-edge).
Sourcepub const SKYBOX_BINDING: u32 = 11
pub const SKYBOX_BINDING: u32 = 11
Skybox / environment equirect texture (full-resolution).
Sourcepub const DEBUG_FRAG_BINDING: u32 = 12
pub const DEBUG_FRAG_BINDING: u32 = 12
Per-fragment debug storage buffer.
Sourcepub const LIGHTS_ARRAY_BINDING: u32 = 13
pub const LIGHTS_ARRAY_BINDING: u32 = 13
Lights array storage buffer.
Auto Trait Implementations§
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.