Re: bidi on Windows and Mac

From: Erik van der Poel (erik@netscape.com)
Date: Fri Dec 17 1999 - 01:47:35 EST


Mac people,

It is very important that I find some answers about bidi on the Mac.
Please help if you can spare a moment.

Erik van der Poel wrote:
>
> 2. Mac
>
> Are there any APIs that allow you to circumvent the reordering normally
> performed by the API? E.g. by passing glyph codes, special flags, etc. I
> would be interested in the answer for QuickDraw and ATSUI, but also for
> QuickDraw GX if you happen to know. (Not that Mozilla can rely on
> QuickDraw GX since it's not installed everywhere.) Also, I'm interested
> in both measuring text, and drawing it.

Let me explain why I would like to know. Mozilla (the "open source"
version of Netscape) is designed to run on multiple platforms. Netscape
engineers work on the Windows, Mac and Unix ports (mostly). There are
OS/2, BeOS, OpenVMS, Photon and other ports too.

The HTML/XML/CSS layout engine is written in "cross-platform" ("XP")
code. XP code is the same across all platforms. This XP code sits on top
of platform-specific code, which calls the platform's APIs.

Some people have graciously offered to help Mozilla implement bidi. We
are discussing the design now.

It would be nice if we could implement the Unicode bidi algorithm,
including the embedding level resolution and the actual reordering
itself, in XP code. If it is in XP code, we only have to implement it
once, and we don't have to keep multiple copies in sync.

However, if we reorder characters or glyphs in the XP code, we must find
a way to avoid reordering the text in the platform's routines. We have
found a way to do this on Windows (ExtTextOut with ETO_GLYPH_INDEX flag)
and on X (XDrawString without special arguments :-).

So the question is how to do this on the Mac. In particular, I'd like to
know how to do it with QuickDraw. We tried ATSUI a while ago, but bumped
into some problems (not related to bidi). I can send you private email
if you want details of the problems. QuickDraw GX undoubtedly has a way
to do this, but Mozilla can't really rely on GX since it is not
installed on many desktops.

Please help!

Thanks,

Erik



This archive was generated by hypermail 2.1.2 : Tue Jul 10 2001 - 17:20:56 EDT