Hello, 2008/3/19, Shachar Shemesh <[EMAIL PROTECTED]>: > Maarten Lankhorst wrote: > > > Hi Shachar, > > > > I've removed the bi-directional entry from summer of code. I don't > > think it is a good project because it involves a lot of changes in > > pretty much all wine user controls. > > Actually, I don't think any touching of the actual user controls is > involved at all. I think the first bullet (which can be all we want for > this year) only really involves the ExtTextOut function, as well as the > Uniscribe functions. No user controls are touched at all. I already did this work, exttextout relies on the reference bidi implementation now. Took about 3 days to adapt the reference implementation to wine. (dlls/gdi32/bidi.c)
> > The only way to do this would be > > by using the pango library to do the laying out of text, > > I was about to say that the code is practically already there, but I > really think you should know that, being how it was you who put it there > :-). I really think that if we came this far, we had better split the > Unicode algorithm into the components it requires and put it into > Uniscribe. I don't think we need any reliance on external libraries > (pango, fribidi, or any other) for that. There are all kinds of rules that tell how it work, a real rendering engine is complicated to write, and since there are already a few working, tried and tested engines out there we don't want to write our own. > > but I'm not > > even sure whether that is a good summer of code idea, since it would > > need someone already very experienced with the plumbing of wine. > > > > It would require someone to learn the BiDi algorithm and the Uniscribe > interface, but the reason I offered to mentor it was precisely so that > the student not have to follow the entire Wine structure. I really don't > believe this task is heavier than some of the Direct3D stuff on that page. As I said, bidi is already implemented. A real uniscribe algorythm is something we want to depend on as external library, because a proper engine would be huge and impossible to maintain/debug. -Maarten.