用途:辅助处理 Makepad 中的字体与文本渲染问题,包括字体族、字号、样式配置,文本布局与整形,以及基于 SDF 的 GPU 文本渲染。
主要能力:文本模块涵盖 font.rs(字体句柄与度量)、font_atlas.rs(字形 GPU 纹理图集)、font_face.rs、font_family.rs、fonts.rs、glyph_outline.rs、glyph_raster_image.rs、layouter.rs(布局引擎)、rasterizer.rs(光栅化)、sdfer.rs(有符号距离场)、selection.rs(选区与光标)、shaper.rs(基于 harfbuzz 的整形)。Layouter 提供 new、rasterizer、is_font_family_known、define_font_family、define_font、get_or_layout 等接口;布局参数包含文本、Span 与 LayoutOptions(最大宽度、是否换行、首行缩进)。光栅化设置含 SDF padding/radius/cutoff,灰度图集默认 4096x4096,彩色图集 2048x2048,字形缓存默认 4096。
使用方式:在 DSL 中通过 draw_text 的 text_style 配置 font path、font_size、line_spacing、letter_spacing 与 color;可用 <THEME_FONT_REGULAR> 等主题字体叠加字号;或在 live_design! 中定义 FONT_REGULAR、FONT_BOLD 等字体再引用。嵌入式字体资源使用 dep("crate://self/resources/fonts/MyFont.ttf") 形式。Label 用于简单文本,TextFlow 配合 Bold、Italic、Link 实现富文本。
限制:本目录副本未附带 ./references/font-system.md 等外部前置文件,且未给出可验证的下载来源。依赖这些路径的步骤在文件存在前不应执行;缺少文件时应提示本地文档不完整,可运行 /sync-crate-skills makepad --force 更新文档,并基于 SKILL.md 与已有知识作答。不得伪造缺失脚本,也不得用同名无关文件替代。输出不能替代针对具体环境的验证、测试或专家评审。