Skip to main content

AtlasCube

Struct AtlasCube 

Source
pub struct AtlasCube {
    pub texture: RwLock<Option<TextureId>>,
    pub view: RwLock<Option<TextureViewId>>,
    pub face_views: RwLock<Vec<TextureViewId>>,
}
Expand description

Cube atlas resources — owned by whichever shadows lane created it.

Fields§

§texture: RwLock<Option<TextureId>>

Underlying 2D-array texture id.

§view: RwLock<Option<TextureViewId>>

CubeArray view bound by the lit shader at [khora_data::render::shadow_bindings::binding::ATLAS_CUBE].

§face_views: RwLock<Vec<TextureViewId>>

Per-face 2D views used as depth render targets when rasterising each cube face. Indexed cube_layer * 6 + face_index (with face_index matching [khora_core::math::CubeFace::index]).

Implementations§

Source§

impl AtlasCube

Source

pub fn create( &self, device: &dyn GraphicsDevice, face_resolution: u32, max_cubes: u32, label: &str, ) -> Result<(), RenderError>

Creates the cube depth atlas + cube-array view + per-face views at the requested dimensions. Idempotent — call once at on_initialize.

Source

pub fn view_id(&self) -> Option<TextureViewId>

Returns the cube-array view id, if any.

Source

pub fn face_views_snapshot(&self) -> Vec<TextureViewId>

Returns a clone of the per-face view list (cheap — just Vec<TextureViewId>).

Source

pub fn destroy(&self, device: &dyn GraphicsDevice)

Destroys the atlas resources. No-op if already destroyed.

Trait Implementations§

Source§

impl Default for AtlasCube

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

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
§

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

§

fn on_start(&mut self, ctx: &mut dyn AppContext)

Called once after the backend is up but before the first update. Apps install their theme / fonts here.
§

fn on_exit(&mut self)

Called once when the window is closing. Persist state here.
§

impl<T> AsAny for T
where T: Any,

§

fn as_any(&self) -> &(dyn Any + 'static)

Returns a reference to the inner value as &dyn Any.
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> 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>,

Source§

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>,

Source§

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.