From: tomasfrydrych@yahoo.co.uk
Date: Fri Sep 19 2003 - 05:27:29 EDT
On 19 Sep 2003 at 19:02, Martin Sevior wrote:
> No this should not be called UNLESS there are no pCharAdvances
> defined.
No, Martin. If you look at the source, you will see that the ExtTextOut()
_always_ takes the pCharAdvances as a parameter (including the
simple_exttextout branch). The only difference between the two
branches is that in the simple_exttextout scenario we pass to the
ExtTextOut the unicode string, while in the other branch we pass it
glyph indices (i.e., the indexes into the actual glyph table in the font
file); I have explained the reasons for this in an earlier posting.
The problem with the code as it stands is that if we set
gcpResult.lpDx = pCharAdvances before calling
GetCharacterPlacement(), the call overwrites the advances we
calculated in the layout classes with advances calculated by the
system. That is why gcpResult.lpDx must be set to NULL, so
that the subsequent call to ExtTextOut would use our advances,
not the one's calculated by the system.
Tomas
This archive was generated by hypermail 2.1.4 : Fri Sep 19 2003 - 05:42:13 EDT