Incomplete support in Win32

Shachar Shemesh wine-devel at sun.consumer.org.il
Wed Aug 7 16:37:55 CDT 2002


Hi all,

As you may know (I make a lot more noise than actual work), I am trying 
to implement BiDi support for WINE. The most promising place to start 
seemed to be GetCharacterPlacement, that does everything even remotely 
BiDi related. The most immediate thing to do was to call 
GetCharacterPlacement from ExtTextOut in order to do the BiDi rearrenging.

In typical MS fashion, however, it seems that this will not work. 
Despite the fact that you are supposed to be able to call 
GetCharacterPlacement once, and then call ExtTextOut with the result as 
many times as necessary (speeding up the process, and suggesting that 
GetCharacterPlacement can do anything ExtTextOut can do), it seems there 
is one thing that ExtTextOut is expected to know how to do, and 
GetCharacterPlacement does not know. For those who are really 
interested, this is specfying the base directionality of the paragraph.

I am pretty sure the way Windows implements this is by having a common 
parent function used for reordering by both ExtTextOut and 
GetCharacterPlacement. I think such an arrangment is awfully crude. I 
was considering an alternative solution, and would like your opinion.

What I thought of doing was adding a bit to the flags 
GetCharacterPlacement gets, which says "right to left paragraph, if 
you'll be so kind". My question is - how acceptable is such a behaviour. 
Is that a huge no-no, or is that a harmless little tweak? It goes 
without saying that I will document the fact that this is a WINE only 
flag, and that there are unused bits in the GetCharacterPlacement 
current flags set.

Another alternative I was considering was to add a directional push at 
the start of the string in order to achieve this without changing the 
algorithm.  The problem is that I am not sure what affect this will have 
on the reordering, not to mention the fact that I will then need to copy 
and widen the string inside ExtTextOut, which is an inconvinence to say 
the least.

Your opinios, please.

                    Shachar





More information about the wine-devel mailing list