Struct demo_vk::graphics::SpriteLayer
source · pub struct SpriteLayer<UserDataT: Copy + Clone + Default> { /* private fields */ }Expand description
A sprite layer contains all of the resources to render batches of Sprites.
Multiple layers can be used for batches of sprites with different perspective transforms. (a scene layer and a ui layer, for example). Additionally, layers can be used to employ unique sprite shaders.
Implementations§
source§impl<UserDataT: Copy + Clone + Default> SpriteLayer<UserDataT>
impl<UserDataT: Copy + Clone + Default> SpriteLayer<UserDataT>
sourcepub fn begin_frame_commands<'a, 'b>(
&'a mut self,
frame: &'b Frame,
) -> Result<SpriteLayerCommands<'a, 'b, UserDataT>>
pub fn begin_frame_commands<'a, 'b>( &'a mut self, frame: &'b Frame, ) -> Result<SpriteLayerCommands<'a, 'b, UserDataT>>
Begin rendering a layer to the frame.
sourcepub fn reset(&mut self, frames_in_flight: &FramesInFlight) -> Result<()>
pub fn reset(&mut self, frames_in_flight: &FramesInFlight) -> Result<()>
Reset the Sprite Layer’s internal resources.
This can be more efficient than destroying and recreating a new sprite layer.
§Performance
This method waits for all pending frames in flight to complete.
sourcepub unsafe fn rebuild_pipeline(
&mut self,
renderpass: &RenderPass,
fragment_shader: Option<Arc<ShaderModule>>,
) -> Result<()>
pub unsafe fn rebuild_pipeline( &mut self, renderpass: &RenderPass, fragment_shader: Option<Arc<ShaderModule>>, ) -> Result<()>
Rebuild the graphics pipeline
§Safety
Unsafe because this should only be called when the layer is not being used by the GPU. For example, after a device wait_idle or after all frames in flight have completed.
sourcepub fn set_projection(&mut self, projection: &Matrix4<f32>)
pub fn set_projection(&mut self, projection: &Matrix4<f32>)
Sets the layer’s projection matrix. This will take effect in the next Self::begin_frame_commands call.
sourcepub fn set_user_data(&mut self, user_data: UserDataT)
pub fn set_user_data(&mut self, user_data: UserDataT)
Sets the layer’s user data for the frame. This will take effect in the next Self::begin_frame_commands call.
Auto Trait Implementations§
impl<UserDataT> Freeze for SpriteLayer<UserDataT>where
UserDataT: Freeze,
impl<UserDataT> !RefUnwindSafe for SpriteLayer<UserDataT>
impl<UserDataT> Send for SpriteLayer<UserDataT>where
UserDataT: Send,
impl<UserDataT> Sync for SpriteLayer<UserDataT>where
UserDataT: Sync,
impl<UserDataT> Unpin for SpriteLayer<UserDataT>where
UserDataT: Unpin,
impl<UserDataT> !UnwindSafe for SpriteLayer<UserDataT>
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
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
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.