pub struct TextureAtlas { /* private fields */ }Expand description
The TextureAtlas maintains the per-frame descriptor sets used for binding textures.
New textures can be added to the atlas at any time and will be available for use in the next frame.
§Shader Requirements
To use the texture atlas, the fragment shader must include a descriptor set with a sampler binding and a texture binding. This looks something like this in glsl:
layout(set = 0, binding = 0) uniform sampler u_Sampler;
layout(set = 0, binding = 1) uniform texture2D u_Textures[];Implementations§
Source§impl TextureAtlas
impl TextureAtlas
pub fn new(ctx: &VulkanContext) -> Result<Self>
pub fn descriptor_set_layout(&self) -> &DescriptorSetLayout
Sourcepub fn descriptor_set(&self) -> DescriptorSet
pub fn descriptor_set(&self) -> DescriptorSet
Returns the atlas’s descriptor set.
Used by the application to bind the atlas descriptor.
Sourcepub fn add_texture(&mut self, ctx: &VulkanContext, texture: Arc<Texture>) -> i32
pub fn add_texture(&mut self, ctx: &VulkanContext, texture: Arc<Texture>) -> i32
Adds a texture to the atlas and returns the index which can be used in vertices to reference the texture again.
Auto Trait Implementations§
impl Freeze for TextureAtlas
impl !RefUnwindSafe for TextureAtlas
impl Send for TextureAtlas
impl Sync for TextureAtlas
impl Unpin for TextureAtlas
impl !UnwindSafe for TextureAtlas
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.