Struct nannou::text::rt::gpu_cache::Cache

source ·
pub struct Cache<'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>

source

pub fn builder() -> CacheBuilder

Returns a default CacheBuilder.

source

pub fn scale_tolerance(&self) -> f32

Returns the current scale tolerance for the cache.

source

pub fn position_tolerance(&self) -> f32

Returns the current subpixel position tolerance for the cache.

source

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.

source

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.

source

pub fn clear(&mut self)

Clears the cache. Does not affect the glyph queue.

source

pub fn clear_queue(&mut self)

Clears the glyph queue.

source

pub fn to_builder(&self) -> CacheBuilder

Returns a CacheBuilder with this cache’s attributes.

source

pub fn cache_queued<F>( &mut self, uploader: F ) -> Result<CachedBy, CacheWriteErr>
where F: FnMut(Rect<u32>, &[u8]),

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.

source

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
where T: Component + Float, Swp: WhitePoint, Dwp: WhitePoint, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
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, U> ConvertInto<U> for T
where U: ConvertFrom<T>,

source§

fn convert_into(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

fn convert_unclamped_into(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

fn try_convert_into(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSync for T
where T: Sync,