pub trait PlatformTextSystem: Send + Sync {
Show 14 methods
// Required methods
fn add_fonts(&self, fonts: Vec<Cow<'static, [u8]>>) -> Result<()>;
fn all_font_names(&self) -> Vec<String>;
fn font_id(&self, descriptor: &Font) -> Result<FontId>;
fn font_metrics(&self, font_id: FontId) -> FontMetrics;
fn typographic_bounds(
&self,
font_id: FontId,
glyph_id: GlyphId,
) -> Result<Bounds<f32>>;
fn advance(&self, font_id: FontId, glyph_id: GlyphId) -> Result<Size<f32>>;
fn glyph_for_char(&self, font_id: FontId, ch: char) -> Option<GlyphId>;
fn glyph_raster_bounds(
&self,
params: &RenderGlyphParams,
) -> Result<Bounds<DevicePixels>>;
fn rasterize_glyph(
&self,
params: &RenderGlyphParams,
raster_bounds: Bounds<DevicePixels>,
) -> Result<(Size<DevicePixels>, Vec<u8>)>;
fn layout_line(
&self,
text: &str,
font_size: Pixels,
runs: &[FontRun],
) -> LineLayout;
// Provided methods
fn clear_glyph_raster_cache(&self) { ... }
fn prewarm_fonts(&self, _font_ids: &[FontId]) { ... }
fn set_missing_glyph_sink(&self, _sink: Arc<dyn MissingGlyphSink>) { ... }
fn glyph_dilation_for_color(&self, _color: Hsla) -> u8 { ... }
}Required Methods§
fn add_fonts(&self, fonts: Vec<Cow<'static, [u8]>>) -> Result<()>
fn all_font_names(&self) -> Vec<String>
fn font_id(&self, descriptor: &Font) -> Result<FontId>
fn font_metrics(&self, font_id: FontId) -> FontMetrics
fn typographic_bounds( &self, font_id: FontId, glyph_id: GlyphId, ) -> Result<Bounds<f32>>
fn advance(&self, font_id: FontId, glyph_id: GlyphId) -> Result<Size<f32>>
fn glyph_for_char(&self, font_id: FontId, ch: char) -> Option<GlyphId>
fn glyph_raster_bounds( &self, params: &RenderGlyphParams, ) -> Result<Bounds<DevicePixels>>
fn rasterize_glyph( &self, params: &RenderGlyphParams, raster_bounds: Bounds<DevicePixels>, ) -> Result<(Size<DevicePixels>, Vec<u8>)>
fn layout_line( &self, text: &str, font_size: Pixels, runs: &[FontRun], ) -> LineLayout
Provided Methods§
Sourcefn clear_glyph_raster_cache(&self)
fn clear_glyph_raster_cache(&self)
Drop platform-side glyph rasterization data associated with the core raster-bounds cache.
Sourcefn prewarm_fonts(&self, _font_ids: &[FontId])
fn prewarm_fonts(&self, _font_ids: &[FontId])
Prewarm any system font caches needed to shape text.
Sourcefn set_missing_glyph_sink(&self, _sink: Arc<dyn MissingGlyphSink>)
fn set_missing_glyph_sink(&self, _sink: Arc<dyn MissingGlyphSink>)
Installs the sink for grapheme clusters that exhaust font fallback during
Self::layout_line. The core text system installs its reporter when it is
created. Platforms that do not detect missing glyphs keep the default no-op.
fn glyph_dilation_for_color(&self, _color: Hsla) -> u8
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".