freetype-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ft-devel] Wrong metric initialization in 2.3.4


From: Sam Pfeisen
Subject: [ft-devel] Wrong metric initialization in 2.3.4
Date: Sun, 20 May 2007 01:18:43 +0900

In 2.2.1 tt_size_init is called  during FT_New_Face and it calls
tt_size_run_fpgm and metrics are initialized.

Since version 2.3.4 tt_size_init and tt_size_init_bytecode are separated.
In 2.3.4 bytecode-related init functions are not called until FT_Load_Glyph.
tt_size_init_bytecode and tt_size_run_fpgm are called during
FT_Load_Glyph, and it's usually after FT_Set_Char_Size.
One of the side effects is that  some of the metrics set by
FT_Set_Char_Size are reset to zeroes again after FT_Load_Glyph.

Testing sample code (based on ttdebug in ftdemo) is attached.

============

% metrictest 1 16 myfont.ttf

## freetype-2.2.1
1. After FT_New_Face()
size->root.metrics.x_ppem=0
size->metrics.x_ppem=0
exec->metrics.x_ppem=0
2. After FT_Set_Char_Size()
size->root.metrics.x_ppem=16
size->metrics.x_ppem=16
exec->metrics.x_ppem=16
3. After FT_Load_Glyph()
size->root.metrics.x_ppem=16
size->metrics.x_ppem=16
exec->metrics.x_ppem=16

## freetype-2.3.4
1. After FT_New_Face()
size->root.metrics.x_ppem=0
size->metrics.x_ppem=0
exec->metrics.x_ppem=0
2. After FT_Set_Char_Size()
size->root.metrics.x_ppem=16
size->metrics.x_ppem=16
exec->metrics.x_ppem=0
3. After FT_Load_Glyph()
size->root.metrics.x_ppem=16
size->metrics.x_ppem=0
exec->metrics.x_ppem=0

----------------

Attachment: metrictest.c
Description: Text document


reply via email to

[Prev in Thread] Current Thread [Next in Thread]