freetype-devel
[Top][All Lists]
Advanced

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

[ft-devel] Bug with hinting of references to composite glyphs


From: Ben Laenen
Subject: [ft-devel] Bug with hinting of references to composite glyphs
Date: Sat, 24 Jun 2006 14:48:58 +0200
User-agent: KMail/1.9.1

Hi all,

We found an issue with the bytecode interpreter. When you have the 
following glyphs:

* A: base glyph, nothing special
* B: accent 1
* C: accent 2
* D: reference to accent 1 and accent 2
* E: reference to A and D

the hinting instructions of D aren't executed well. I have a sreenshot 
attached that makes it clearer (the font used for testing can be 
downloaded from 
http://fenix.cmi.ua.ac.be/~p015259/dejavu/DejaVuSans.ttf so you can 
test it out yourself):

the glyphs in question are:
A: for example alpha
B: tilde
C: psili (the comma-like accent)
D: psili + tilde (U+1FCF)
E: alpha + psili + tilde (U+1F06)

I tried something silly in the psili + tilde glyph with hinting to test 
it out: horizontally aligning the left points of psili and tilde, so 
you get the effect shown in the green circle in the screenshot.

Now, alpha + psili + tilde or other vowels + psili + tilde, some of them 
in red circles in the screenshot, have references to the psili+tilde 
glyph. But the accents aren't aligned in that glyph any more (the 
alpha+psili+tilde glyph does not have any hinting instructions). 
Furthermore, the entire reference to the double accent is shifted to 
the right, so the hinting of psili+tilde has some effect in the final 
glyph.

Further investigation lead to the belief that the bug happens when the 
reference to the composite glyph isn't ordered first. Because we 
discovered that we experienced two different results with 
diaeresistonos (U+0385): we lowered the acute accent 2 pixels. 
Iotadiaeresistonos (U+0390) shows the expected behaviour. 
Usilondiaeresistonos (U+03B0) on the other hand shifts the entire 
diaeresistonos accent (so the same effect as the first example).

Since the order of the references in U+0390 and U+03B0 is different 
(U+0390 has the accent first, U+03B0 has the upsilon first), and 
reordering the references of U+03B0 gives the good behaviour, we came 
to the conclusion that FreeType does something wrong when the reference 
to the composite glyph isn't ordered first.

Greetings
Ben

PS: please keep us CC'ed, as we're not subscribed to the list

Attachment: hintingerror.png
Description: PNG image


reply via email to

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