2016-08-18 16:11 GMT+07:00 Vee Satayamas <
vsata...@gmail.com>:
> ผมพยายามจะเขียนอธิบายพวก Harfbuzz ลองวาดภาพนี้ขี้นมาซึ่งอาจจะผิด
> จึงขอความกรุณาให้ช่วย review ด้วยครับ
ประเด็นที่อาจช่วยทำความเข้าใจ Harfbuzz นะครับ
* HarfBuzz อยู่ตรงไหนในระบบ
- HarfBuzz ทำเรื่อง shaping ข้อความโดย input คือ Unicode text
และฟอนต์; output คือ glyph ที่จัดเรียงตำแหน่งเรียบร้อยแล้ว
- HarfBuzz ไม่ได้ทำเรื่อง text layout (เช่น การแบ่งบรรทัด, bidi,
การ flow ข้อความใน text frame -> เป็นหน้าที่ของ Pango)
- HarfBuzz ไม่ได้ทำเรื่อง rasterization (เป็นหน้าที่ของ FreeType)
* กลไกใน HarfBuzz:
- clustering เพื่อกำหนดขอบเขตของการ apply GSUB
- text preprocessing ตามข้อกำหนดของภาษาต่าง ๆ
(เช่น normalization, reordering)
- apply GSUB จากฟอนต์เพื่อแปลงข้อความตามที่กำหนดในฟอนต์
- apply GPOS เพื่อปรับตำแหน่ง glyph ด้วย anchor
ตอนนี้นึกออกแค่นี้ครับ รายละเอียดคงมีเยอะกว่านี้
เทพ.
--
Theppitak Karoonboonyanan
http://linux.thai.net/~thep/