FreeType中FT_Face.units_per_EM的值怎么来的
Posted 柳鲲鹏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FreeType中FT_Face.units_per_EM的值怎么来的相关的知识,希望对你有一定的参考价值。
这个值不是算出来的,是直接从文件中读取的。
- 赋值语句
sfobjs.c/sfnt_load_face()
大约1309行:
root->units_per_EM = face->header.Units_Per_EM;
- TT_Header.Units_Per_EM的赋值(1)
sfnt_load_face()
约875行:
if ( !has_outline && sfnt->load_bhed )
LOAD_( bhed );
is_apple_sbit = FT_BOOL( !error );
- TT_Header.Units_Per_EM的赋值(2)
ttload.c/tt_face_load_generic_header
大约671行:
header = &face->header;
if ( FT_STREAM_READ_FIELDS( header_fields, header ) )
goto Exit;
- Units_Per_EM的赋值(3)
ftstream.c/FT_Stream_ReadFields
在这里直接读入一段数据,转换为结构体。
以上是关于FreeType中FT_Face.units_per_EM的值怎么来的的主要内容,如果未能解决你的问题,请参考以下文章
通过 Harfbuzz 和 FreeType 在文本编辑器中显示混合复杂脚本