Skip to main content

PlatformTextSystem

Trait PlatformTextSystem 

Source
pub trait PlatformTextSystem: Send + Sync {
Show 19 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; fn recommended_rendering_mode( &self, _font_id: FontId, _font_size: Pixels, ) -> TextRenderingMode; // Provided methods fn set_missing_glyph_sink(&self, _sink: Option<Arc<dyn MissingGlyphSink>>) { ... } fn font_capabilities(&self) -> FontCapabilities { ... } fn font_table( &self, _font_id: FontId, _tag: FontTag, ) -> Result<FontQuery<Option<Vec<u8>>>> { ... } fn font_axes( &self, font_id: FontId, ) -> Result<FontQuery<Vec<VariationAxisInfo>>> { ... } fn opentype_features( &self, font_id: FontId, ) -> Result<FontQuery<Vec<OpenTypeFeatureInfo>>> { ... } fn prewarm_fonts(&self, _font_ids: &[FontId]) { ... } fn shape_paragraph( &self, _request: ParagraphRequest<'_>, ) -> Result<Arc<dyn PlatformParagraphShape>> { ... } fn glyph_dilation_for_color(&self, _color: Hsla) -> u8 { ... }
}

Required Methods§

Source

fn add_fonts(&self, fonts: Vec<Cow<'static, [u8]>>) -> Result<()>

Source

fn all_font_names(&self) -> Vec<String>

Get all available font names.

Source

fn font_id(&self, descriptor: &Font) -> Result<FontId>

Get the font ID for a font descriptor.

Source

fn font_metrics(&self, font_id: FontId) -> FontMetrics

Get metrics for a font.

Source

fn typographic_bounds( &self, font_id: FontId, glyph_id: GlyphId, ) -> Result<Bounds<f32>>

Get typographic bounds for a glyph.

Source

fn advance(&self, font_id: FontId, glyph_id: GlyphId) -> Result<Size<f32>>

Get the advance width for a glyph.

Source

fn glyph_for_char(&self, font_id: FontId, ch: char) -> Option<GlyphId>

Get the glyph ID for a character.

Source

fn glyph_raster_bounds( &self, params: &RenderGlyphParams, ) -> Result<Bounds<DevicePixels>>

Get raster bounds for a glyph.

Source

fn rasterize_glyph( &self, params: &RenderGlyphParams, raster_bounds: Bounds<DevicePixels>, ) -> Result<(Size<DevicePixels>, Vec<u8>)>

Rasterize a glyph.

Source

fn layout_line( &self, text: &str, font_size: Pixels, runs: &[FontRun], ) -> LineLayout

Layout a line of text with the given font runs.

Source

fn recommended_rendering_mode( &self, _font_id: FontId, _font_size: Pixels, ) -> TextRenderingMode

Returns the recommended text rendering mode for the given font and size.

Provided Methods§

Source

fn set_missing_glyph_sink(&self, _sink: Option<Arc<dyn MissingGlyphSink>>)

Installs a nonblocking sink for unresolved grapheme clusters.

Source

fn font_capabilities(&self) -> FontCapabilities

Reports support for font inspection and explicit static variations.

Source

fn font_table( &self, _font_id: FontId, _tag: FontTag, ) -> Result<FontQuery<Option<Vec<u8>>>>

Reads one OpenType table from the resolved face identified by font_id.

Unsupported means table access is unavailable. Supported(None) means the face has no such table; Supported(Some(bytes)) returns its contents. Supporting backends return errors for invalid IDs or failed reads, rather than treating them as missing tables. Tags are in OpenType byte order; platform-specific tag conversion and buffer lifetimes belong to the backend. The default inspection methods parse these bytes privately in core GPUI.

Source

fn font_axes( &self, font_id: FontId, ) -> Result<FontQuery<Vec<VariationAxisInfo>>>

Queries axis ranges on a resolved face, distinguishing unsupported queries. By default, reads fvar through font_table and parses it in core.

Source

fn opentype_features( &self, font_id: FontId, ) -> Result<FontQuery<Vec<OpenTypeFeatureInfo>>>

Queries feature metadata for a resolved face. Backends that cannot inspect the face must return Unsupported, rather than a successful empty list. The default reads GSUB/GPOS through font_table and parses them in core. Invalid IDs, failed reads, and malformed metadata return errors.

Source

fn prewarm_fonts(&self, _font_ids: &[FontId])

Prewarm any system font caches needed to shape text.

Source

fn shape_paragraph( &self, _request: ParagraphRequest<'_>, ) -> Result<Arc<dyn PlatformParagraphShape>>

Optional paragraph capability; native implementations need not opt in.

Source

fn glyph_dilation_for_color(&self, _color: Hsla) -> u8

Returns the dilation level to use for a glyph painted in the given color.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§