pub struct GPUCubemap { /* private fields */ }Expand description
A cubemap uploaded to the GPU, ready to bind (e.g. via
BindingInstanceEntry::Cubemap).
Opaque — bind it via
BindGroupBuilder::texture_cubemap.
empty’s documented use case — rendering
into per-face views for environment capture (a skybox capture, an
irradiance/specular IBL prefilter pass, a reflection probe, …) — is
face_attachment.
Implementations§
Source§impl GPUCubemap
impl GPUCubemap
Sourcepub fn write_face(&self, face: u32, pixels: &[u8])
pub fn write_face(&self, face: u32, pixels: &[u8])
Overwrites one face’s level-0 pixel data (+X, -X, +Y, -Y, +Z, -Z is
face 0..=5, matching CubemapDescriptor::from_faces’s order).
See GPUTexture::write for the
same caveat about mip levels not being regenerated.
Sourcepub fn face_attachment(&self, face: u32, mip_level: u32) -> TextureView
pub fn face_attachment(&self, face: u32, mip_level: u32) -> TextureView
A render-target view onto one face at one mip level, for rendering
into directly — an environment-map capture, a specular IBL prefilter
pass writing successive mip levels, a reflection probe. face is
0..=5 in the same order as CubemapDescriptor::from_faces’s
array (+X, -X, +Y, -Y, +Z, -Z); mip_level is 0 unless this
cubemap was built with_mips, in
which case a prefilter pass typically writes one mip level per
roughness step.
Only meaningful for a cubemap allocated with RENDER_ATTACHMENT
usage, which CubemapDescriptor::empty sets automatically.
Panics if face is out of range.
Trait Implementations§
Source§impl Asset<WGPUBackend> for GPUCubemap
impl Asset<WGPUBackend> for GPUCubemap
Source§type Source = CubemapDescriptor
type Source = CubemapDescriptor
Assets.Source§type Deps<'a> = Res<'a, MipmapGenerator>
type Deps<'a> = Res<'a, MipmapGenerator>
B itself) required to perform the conversion.
Use () when there are no extra dependencies.Source§fn upload<'a>(
source: &CubemapDescriptor,
backend: &WGPUBackend,
mipmap_generator: &Res<'a, MipmapGenerator>,
) -> Option<Self>
fn upload<'a>( source: &CubemapDescriptor, backend: &WGPUBackend, mipmap_generator: &Res<'a, MipmapGenerator>, ) -> Option<Self>
Auto Trait Implementations§
impl !RefUnwindSafe for GPUCubemap
impl !UnwindSafe for GPUCubemap
impl Freeze for GPUCubemap
impl Send for GPUCubemap
impl Sync for GPUCubemap
impl Unpin for GPUCubemap
impl UnsafeUnpin for GPUCubemap
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
impl<T> Component for T
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>. Box<dyn Any> can
then be further downcast into Box<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>. Rc<Any> 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> 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 more