text

    Text rendering helpers (glyph cache, batch builder, font engine) on top of mizchi/gfx and mizchi/font, extracted from kagura

    Download zip
    Author
    Version
    0.6.0
    License
    Apache-2.0
    Last updated
    15 days ago
    Downloads
    99

    Dependencies

    mizchi/text does not have a README file

    FontEngine

    pub trait FontEngine {
    fn measure(Self, run :
    TextRun
    ) ->
    TextMetrics

    fn shape(Self, run :
    TextRun
    ) -> Array[
    GlyphQuad
    ] raise
    }

    TextBatchBuilder

    FontLoadHooks

    pub struct FontLoadHooks {
    load_font_data : (String) -> Array[Int]?
    }

    TextRenderer

    pub struct TextRenderer {
    inner :
    TextRenderer

    }

    GPU-aware text renderer wrapping @font.TextRenderer. Adds render_text() which produces @gfx.DrawTrianglesCommand.

    TextRenderer::clear

    fn TextRenderer::clear(self : TextRenderer) -> Unit

    TextRenderer::flush_dirty_pages

    TextRenderer::get_atlas

    TextRenderer::get_page

    fn TextRenderer::get_page(self : TextRenderer, index : Int) ->
    GlyphAtlas

    TextRenderer::get_page_id

    fn TextRenderer::get_page_id(self : TextRenderer) -> Int

    TextRenderer::get_page_ids

    fn TextRenderer::get_page_ids(self : TextRenderer) -> Array[Int]

    TextRenderer::glyph_count

    fn TextRenderer::glyph_count(self : TextRenderer) -> Int

    TextRenderer::load_atlas_cache

    fn TextRenderer::load_atlas_cache(self : TextRenderer, data : Array[Int]) -> Bool

    Replace the first page of a TextRenderer with deserialized data. Accepts a single page's serialized data (Array[Int]).

    TextRenderer::measure

    fn TextRenderer::measure(self : TextRenderer, text : String, size_px : Double) ->
    TextMetrics

    Measure text dimensions without rasterizing.

    TextRenderer::new

    fn TextRenderer::new(font :
    TTFont
    , atlas_size : Int, base_page_id : Int, pipeline_id : Int) -> TextRenderer

    TextRenderer::new_with_options

    fn TextRenderer::new_with_options(font :
    TTFont
    , atlas_size : Int, base_page_id : Int, pipeline_id : Int, max_pages : Int) -> TextRenderer

    TextRenderer::page_count

    fn TextRenderer::page_count(self : TextRenderer) -> Int

    TextRenderer::render_text

    fn TextRenderer::render_text(self : TextRenderer, text : String, size_px : Double, x : Double, y : Double, dst :
    ImageHandle
    , shader :
    ShaderHandle
    , blend :
    BlendMode
    , uniform_dwords : Array[Int]) -> Array[
    DrawTrianglesCommand
    ]

    Render text at the given position, returning draw commands ready for the graphics pipeline. Also rasterizes any new glyphs into the atlas.

    font_data_to_bytes

    fn font_data_to_bytes(data : Array[Int]) -> Bytes

    load_font

    fn load_font(name : String) ->
    TTFont
    ?

    load_font_engine_from_bytes

    fn load_font_engine_from_bytes(data : Bytes) -> SimpleFontEngine?

    Load font engine from raw bytes.

    load_text_renderer

    fn load_text_renderer(name : String, atlas_size : Int, page_id : Int, pipeline_id : Int) -> TextRenderer?

    new_font_load_hooks

    fn new_font_load_hooks(load_font_data : (String) -> Array[Int]?) -> FontLoadHooks

    parse_font_bytes

    fn parse_font_bytes(data : Bytes) ->
    TTFont
    ?

    Parse font from raw bytes (auto-detects TTF/OTF/WOFF1/WOFF2).

    reset_font_load_hooks

    fn reset_font_load_hooks() -> Unit

    set_font_load_hooks

    fn set_font_load_hooks(hooks : FontLoadHooks) -> Unit

    Powered by MoonBit

    Site sourceReport issuePackagesBuild queueSkillsStatistics

    © 2026 mooncakes.io