Re: Two bidi questions

From: Bob_Hallissy@sil.org
Date: Fri Jul 06 2001 - 05:39:31 EDT


LM> I want Windows to do [arabic shaping]. It does a fine job of it, and so
there is no
need for my code to involve itself in that part of the rendering.

BH> If you want Windows to do it, why not let it handle the bidi as
BH> well?

LM> Because it doesn't have all the information it needs to do the job
LM> properly,

Can you identify what Uniscribe (not TextOutW) doesn't do properly in this
regard? There are some pretty sophisticated DTP apps that utilize
Uniscribe...

LM> and because not all Windows versions will do this at all.
LM> Further, I suspect that not all Windows versions will run bidi
LM> reordering on, say, Syraic,

Uniscribe works on any version of Windows 9x/Me, NT, or 2000 with the
exception of FE versions of Win 9x/Me, and given the latest version of
Uniscribe (i.e., the one that ships with Office XP) you get proper bidi
(including the Arabic, Hebrew, and Syriac blocks of Unicode).

LM> or RTL scrips yet to appear in the SMP.

I would suggest that no one can correctly implement scripts that are "yet
to appear in the SMP" -- it would violate Conformance requirement C6 --
other than through the PUA. But Microsoft seems to be committed to reving
Uniscribe as new scripts are approved. (Granted, there is a time lag
between approval and an updated Uniscribe being available.)

But all this discussion about Uniscribe is a digression ...

LM> Another reason is that we will have to implement [bidi] ourselves
LM> anyway, since not all the platforms we will be running on support
LM> bidi. ... I would still
LM> need my own implementation for other platforms as well as Windows
LM> versions that do not have Uniscribe.

Ah, this is the real problem. Then how can you want Windows to do the
Arabic shaping (context glyph selection, ligatures, diacritic positioning,
etc)? Won't you need that for the other platforms?

And if you are doing the shaping yourself, then you're going to be doing
your own glyph selection, and you can write the results using ExtTextOutW()
with the ETO_GLYPH_INDEX flag.

Bob



This archive was generated by hypermail 2.1.2 : Fri Jul 06 2001 - 13:48:07 EDT