Fix text rotation problem in GM_ADVANCED graphics mode caused by incorrect implementation of GetTextExtentPointW().

Ralf Habacker ralf at habacker.de
Tue Oct 1 05:31:09 CDT 2013


On 01.10.2013 12:12, Alexandre Julliard wrote:
> Ralf Habacker <ralf.habacker at freenet.de> writes:
>
>> With other patches i have been told to implement such stuff in the dib
>> driver. Unfortunally this do not works in this case, because in the top
>> level function it looks like having driver specific stuff using display
>> coordinates.
> It would still most likely have to be in the driver,
which is freetype_GetTextExtentExPoint() ?

>  though maybe the driver would not be calling that exact entry point.
not sure i understand right:

GetTextExtentExPointW() calls get_char_positions(), which runs
dev->funcs->pGetTextExtentExPoint(), which is mapped to
freetype_GetTextExtentExPoint(), which is in the driver. Which entry
point your are refering else ?

> In any case, you can't change the DC transform like this 

then a real solution requires to move the transformation to logical coordinates stuff in BOOL  GetTextExtentExPointW() to freetype_GetTextExtentExPoint() and to manipulate the related matrixes in freetype_GetTextExtentExPoint() directly wen using GM_ADVANCED ? 


> and you'll need test cases.
>
Do you mean in detail:

1. Create a specific font
2. Run GetTextExtentExPointW() which specific parameters
3. check if it results expected values

Regards
 Ralf




More information about the wine-devel mailing list