Integrate ab_glyph-based font rendering with bundled Noto Sans fonts (Regular, Bold, Italic, BoldItalic, Mono) to replace the fixed-width text measurer in golden tests. Thread font-weight, font-style, and font-family through the entire rendering pipeline: CSS parsing → style computation → layout → display list → rasterizer. Key changes: - fonts crate: font database, shaper, and rasterizer with bundled fonts - CSS: parse font-family (comma-separated lists), font-weight, font-style - shared: FontWeight and FontStyle types - style: font property inheritance and computation - layout: ProportionalTextMeasurer using real font metrics - display_list: font properties on Text items (conditional dump output) - render: font-aware text drawing - Golden tests regenerated with proportional font measurements - New golden tests (137-141) for font weight, style, family, and headings - Golden test regeneration infrastructure (regen_goldens.rs) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
17 lines
1.4 KiB
Plaintext
17 lines
1.4 KiB
Plaintext
DisplayList items=15
|
|
Border rect=(18, 6, 30.417034, 20) widths=(2 0 0 2) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Text rect=(20, 8, 28.417034, 16) text="word" color=#000000 font_size=16
|
|
Border rect=(48.417034, 6, 3.0543318, 23.2) widths=(2 0 0 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Border rect=(51.471367, 6, 20.992659, 20) widths=(2 0 0 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Text rect=(51.471367, 8, 20.992659, 16) text="one" color=#000000 font_size=16
|
|
Border rect=(72.46403, 6, 5.054332, 23.2) widths=(2 2 0 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Border rect=(8, 25.2, 30.417034, 20) widths=(0 0 0 2) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Text rect=(10, 27.2, 28.417034, 16) text="word" color=#000000 font_size=16
|
|
Text rect=(41.471367, 27.2, 20.581497, 16) text="two" color=#000000 font_size=16
|
|
Border rect=(62.052864, 25.2, 5.054332, 23.2) widths=(0 2 0 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Border rect=(8, 44.4, 30.417034, 20) widths=(0 0 2 2) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Text rect=(10, 46.4, 28.417034, 16) text="word" color=#000000 font_size=16
|
|
Border rect=(38.417034, 44.4, 3.0543318, 23.2) widths=(0 0 2 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Border rect=(41.471367, 44.4, 31.603525, 20) widths=(0 2 2 0) colors=(#ff0000 #ff0000 #ff0000 #ff0000)
|
|
Text rect=(41.471367, 46.4, 29.603525, 16) text="three" color=#000000 font_size=16
|