かってきままな日々
2023-09-03 (Su) [長年日記]
_ GRUB2 デバッグ
端末でも antialiased font を使えるようにした。
それはともかく、g とか j とかの baseline より下が消える問題があって、 デバッグした。
各 glyph に height があって、
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+__###_#.. ^
+_#___##.. |
+##____#.. |
+#_____#.. |
+#_____#.. |
+#_____#.. |
+##____#.. | height
+_##__##.. |
+__###_#++ |
+______#.. |
+______#.. |
+#____##.. |
+_#####_.. v
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+.........
+##____##. ^
+##___###. |
+###__#_#. |
+#_#__###. |
+#_#__###. |
+#_#_#_##. | height
+#_###_##. |
+#__##_##. |
+#__##_##. |
+#_____##. |
+#_____##. |
+#_____##+ v
+.........
+.........
+.........
+.........
+.........
+.........
+.........
glyph の height は↑こういうの。 font の max_height は、これらのうち最大のもの。
ascent/descent も glyph ごとにもあって、font 単位でもある。
で、描画時には font の max_height 分だけ確保して、 最上部より font の ascent だけ下のところを baseline と指定して文字を描画してる。 font の ascent と font の max_height はほとんど同じくらいの値になってるので、 baseline より下は描画されない。
↓具体的な値。Max height が 23 で Font ascent が 21。
WARNING: unsupported font feature parameters: 43c
Font name: Noto Sans Mono Regular 16
Max width: 29
Max height: 23
Font ascent: 21
Font descent: 7
Number of glyph: 3490
というわけで、font の ascent + descent 分だけ高さが必要になるので、 max_height をこれで上書きするようにした。
_ GRUB2 端末文字色を変える方法
set color_normal=red/black
こんな感じに設定できるらしい。文字色/背景色。
私の改造版でも問題なく色が付いた。 良かった〜〜 (なんでちゃんと付いてるのか理解できてない)