Struct nannou::text::GlyphCache
source · pub struct GlyphCache<'font> { /* private fields */ }
Expand description
An implementation of a dynamic GPU glyph cache. See the module documentation for more information.
Implementations§
source§impl<'font> Cache<'font>
impl<'font> Cache<'font>
sourcepub fn builder() -> CacheBuilder
pub fn builder() -> CacheBuilder
Returns a default CacheBuilder
.
sourcepub fn scale_tolerance(&self) -> f32
pub fn scale_tolerance(&self) -> f32
Returns the current scale tolerance for the cache.
sourcepub fn position_tolerance(&self) -> f32
pub fn position_tolerance(&self) -> f32
Returns the current subpixel position tolerance for the cache.
sourcepub fn dimensions(&self) -> (u32, u32)
pub fn dimensions(&self) -> (u32, u32)
Returns the cache texture dimensions assumed by the cache. For proper operation this should match the dimensions of the used GPU texture.
sourcepub fn queue_glyph(&mut self, font_id: usize, glyph: PositionedGlyph<'font>)
pub fn queue_glyph(&mut self, font_id: usize, glyph: PositionedGlyph<'font>)
Queue a glyph for caching by the next call to cache_queued
. font_id
is used to disambiguate glyphs from different fonts. The user should
ensure that font_id
is unique to the font the glyph is from.
sourcepub fn clear_queue(&mut self)
pub fn clear_queue(&mut self)
Clears the glyph queue.
sourcepub fn to_builder(&self) -> CacheBuilder
pub fn to_builder(&self) -> CacheBuilder
Returns a CacheBuilder
with this cache’s attributes.
sourcepub fn cache_queued<F>(
&mut self,
uploader: F
) -> Result<CachedBy, CacheWriteErr>
pub fn cache_queued<F>( &mut self, uploader: F ) -> Result<CachedBy, CacheWriteErr>
Caches the queued glyphs. If this is unsuccessful, the queue is untouched. Any glyphs cached by previous calls to this function may be removed from the cache to make room for the newly queued glyphs. Thus if you want to ensure that a glyph is in the cache, the most recently cached queue must have contained that glyph.
uploader
is the user-provided function that should perform the texture
uploads to the GPU. The information provided is the rectangular region
to insert the pixel data into, and the pixel data itself. This data is
provided in horizontal scanline format (row major), with stride equal to
the rectangle width.
If successful returns a CachedBy
that can indicate the validity of
previously cached glyph textures.
sourcepub fn rect_for(
&self,
font_id: usize,
glyph: &PositionedGlyph<'_>
) -> Result<Option<(Rect<f32>, Rect<i32>)>, CacheReadErr>
pub fn rect_for( &self, font_id: usize, glyph: &PositionedGlyph<'_> ) -> Result<Option<(Rect<f32>, Rect<i32>)>, CacheReadErr>
Retrieves the (floating point) texture coordinates of the quad for a glyph in the cache, as well as the pixel-space (integer) coordinates that this region should be drawn at. These pixel-space coordinates assume an origin at the top left of the quad. In the majority of cases these pixel-space coordinates should be identical to the bounding box of the input glyph. They only differ if the cache has returned a substitute glyph that is deemed close enough to the requested glyph as specified by the cache tolerance parameters.
A sucessful result is Some
if the glyph is not an empty glyph (no
shape, and thus no rect to return).
Ensure that font_id
matches the font_id
that was passed to
queue_glyph
with this glyph
.
Auto Trait Implementations§
impl<'font> RefUnwindSafe for Cache<'font>
impl<'font> Send for Cache<'font>
impl<'font> Sync for Cache<'font>
impl<'font> Unpin for Cache<'font>
impl<'font> UnwindSafe for Cache<'font>
Blanket Implementations§
source§impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
source§fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
fn adapt_into_using<M>(self, method: M) -> Dwhere
M: TransformMatrix<Swp, Dwp, T>,
source§fn adapt_into(self) -> D
fn adapt_into(self) -> D
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, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
impl<T, U> ConvertInto<U> for Twhere
U: ConvertFrom<T>,
source§fn convert_into(self) -> U
fn convert_into(self) -> U
source§fn convert_unclamped_into(self) -> U
fn convert_unclamped_into(self) -> U
source§fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
fn try_convert_into(self) -> Result<U, OutOfBounds<U>>
OutOfBounds
error is returned which contains the unclamped color. Read more