From: msevior@physics.unimelb.edu.au
Date: Sat Sep 20 2003 - 09:40:19 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.
>
Oh! Sorry I don't know I thought pCharAdvances was not in the
simple_ecttextout branch.
Now I'm totally puzzled as to how Jordi is getting his text over-run
problems.
> 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.
>
Oh! I get this. And in fact when I tested your suggestion on my WinME
build it did appear to work well until the zoom was around 60.
Maybe Windows developers could build a matrix of people and Windows OS's
who see and do not see Jordi's overwriting bug with
gcpResult.lpDx = NULL and
gcpResult.lpDx = pCharAdvances
Martin
> Tomas
This archive was generated by hypermail 2.1.4 : Sat Sep 20 2003 - 09:58:55 EDT