pub struct CubemapDescriptor {
pub size: u32,
pub format: TextureFormat,
pub faces: Option<[Vec<u8>; 6]>,
pub face_files: Option<[&'static str; 6]>,
pub generate_mips: bool,
}Expand description
Source data for GPUCubemap. Prefer the
from_files/from_faces/
empty constructors over setting fields by hand.
Fields§
§size: u32Edge length in pixels — cubemap faces are always square.
format: TextureFormatGPU pixel format to upload as. Defaults to Rgba8UnormSrgb.
faces: Option<[Vec<u8>; 6]>Some uploads 6 faces of pixel data up front (wgpu’s expected
order: +X, -X, +Y, -Y, +Z, -Z). None allocates an empty cubemap
meant to be filled later by rendering into per-face views — e.g. an
environment-map capture pass — in which case wgpu_descriptor
adds RENDER_ATTACHMENT usage instead of requiring upload data.
face_files: Option<[&'static str; 6]>File paths for each of the 6 faces (same order as faces), decoded
through the same loader used by GPUTexture/GPUTextureArray.
generate_mips: boolWhether to generate a full mip chain (via MipmapGenerator). Only
applies when uploading pixel data (faces/face_files set) —
meaningless for an empty render-target cubemap.
Implementations§
Source§impl CubemapDescriptor
impl CubemapDescriptor
Sourcepub fn from_files(size: u32, files: [&'static str; 6]) -> Self
pub fn from_files(size: u32, files: [&'static str; 6]) -> Self
Load 6 faces from files (+X, -X, +Y, -Y, +Z, -Z). Size is inferred from the first face.
Sourcepub fn from_faces(size: u32, format: TextureFormat, faces: [Vec<u8>; 6]) -> Self
pub fn from_faces(size: u32, format: TextureFormat, faces: [Vec<u8>; 6]) -> Self
Supply raw pixel bytes for each face (+X, -X, +Y, -Y, +Z, -Z).
Sourcepub fn empty(size: u32, format: TextureFormat) -> Self
pub fn empty(size: u32, format: TextureFormat) -> Self
Allocate an empty cubemap for use as a render target (e.g. environment capture).
Sourcepub fn with_format(self, format: TextureFormat) -> Self
pub fn with_format(self, format: TextureFormat) -> Self
Override the format set by whichever constructor was used (all
three default to or take format directly — this exists for the
builder-chain case, e.g. CubemapDescriptor::empty(size, format).with_mips()
followed later by a format change, without re-specifying size).
Auto Trait Implementations§
impl Freeze for CubemapDescriptor
impl RefUnwindSafe for CubemapDescriptor
impl Send for CubemapDescriptor
impl Sync for CubemapDescriptor
impl Unpin for CubemapDescriptor
impl UnsafeUnpin for CubemapDescriptor
impl UnwindSafe for CubemapDescriptor
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