pub struct BlendState<'a> { /* private fields */ }
Expand description
State for processing the blend operator for DICTs and charstrings.
To avoid allocation, scalars are computed on demand but this can be prohibitively expensive in charstrings where blends are applied to large numbers of elements. To amortize the cost, a fixed number of precomputed scalars are stored internally and the overflow is computed as needed.
The MAX_PRECOMPUTED_SCALARS
constant determines the size of the
internal buffer (currently 16).
See https://learn.microsoft.com/en-us/typography/opentype/spec/cff2charstr#45-variation-data-operators
Implementations§
source§impl<'a> BlendState<'a>
impl<'a> BlendState<'a>
pub fn new( store: ItemVariationStore<'a>, coords: &'a [F2Dot14], store_index: u16, ) -> Result<Self, Error>
sourcepub fn set_store_index(&mut self, store_index: u16) -> Result<(), Error>
pub fn set_store_index(&mut self, store_index: u16) -> Result<(), Error>
Sets the active variation store index.
This should be called with the operand of the vsindex
operator
for both DICTs and charstrings.
sourcepub fn region_count(&self) -> Result<usize, Error>
pub fn region_count(&self) -> Result<usize, Error>
Returns the number of variation regions for the currently active variation store index.