[I18n]Re: X and Supplementary Planes

2001-12-28 Thread Markus Kuhn

Roozbeh Pournader wrote on 2001-12-27 22:58 UTC:
 I remember the discussion here about the font naming and structure issues
 for non-BMP characters. But I cannot remember the outcome (and if there 
 were oppositions). Since we are thinking about doing some work on Pango to 
 support non-BMP characters, I wanted to ask for a briefing...

I am more and more convinced that if we are going to do anything of this
sort on the old XLFD front, then it should be the definition of a new
ISO10646-C encoding, which is a glyph encoding and which has in its
properties character/glyph mappings. This encoding would come together with
little and highly efficient C functions

  makeiso10646cglyphmap(XFontStruct *font, iso10646cglyphmap *map);

reads the character-to-glyph mapping table from the font
properties into a compact and efficient in-memory representation

  freeiso10646cglyphmap(iso10646cglyphmap *map);

frees that in-memory representation

  mbtoiso10646c(char *string, iso10646cglyphmap *map, XChar2b *output);
  wctoiso10646c(wchar_t *string, iso10646cglyphmap *map, XChar2b *output);

take a Unicode character string and convert it to a XChar2b glyph
string suitable for output by XDrawString16 with the ISO10646-C
from which the iso10646cglyphmap was extracted.

ISO10646-C fonts would still be limited to have not more than 64
kibiglyphs, but these can come from anywhere in UCS, not just from the
BMP. This solution also easily provides for glyph substitution, such
that we can finally handle the Indic fonts. It solves the
huge-XFontStruct problem of ISO10646-1, as XFontStruct grows now
proportionally with the number of glyphs, not with the highest
characters. It could also provide for simple overstriking combining
characters, but then the glyphs for combining characters would have to
be stored with negative width inside an ISO10646-C font. It can even
provide support for variable combining accent positions, by having
several alternative combining glyphs with accents at different heights
for the same combining character, and the ligature substitution tables
would encode, which combining glyph to use with which base character.

Looks all very easily doable to me. Someone would just have to sit down
and write a proper spec for ISO10646-C fonts plus the above mentioned
client-side Unicode - ISO10646-C character-glyph-conversion routine,
and then we can start producing fonts and tools.

Unfortunately, I don't have the time to start this in the foreseeable
future. Any volunteers interested in writing a first draft (preferably
in the same troff format in which the other X spects are already
written)?

Markus

P.S.: The C in ISO10646-C stands for combining, complex, compact, or
character-glyph mapped, as you prefer. (And please don't start again
with the fuzz about that C is not a part number of an ISO standard.)
For those who think that all this is obsolete, remember that it is the
only solution proposed so far that makes efficient complex script
rendering available to legacy X terminals with immutable ROM servers and
no RENDER or ST extension.

-- 
Markus G. Kuhn, Computer Laboratory, University of Cambridge, UK
Email: mkuhn at acm.org,  WWW: http://www.cl.cam.ac.uk/~mgk25/

___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n



Re: [I18n]Re: X and Supplementary Planes

2001-12-28 Thread Keith Packard


Around 12 o'clock on Dec 28, Markus Kuhn wrote:

 For those who think that all this is obsolete, remember that it is the
 only solution proposed so far that makes efficient complex script
 rendering available to legacy X terminals with immutable ROM servers and
 no RENDER or ST extension.

The inefficient mechanism aluded to here is currently in the works -- I'm 
busy retargeting Xft to provide client-side font support using the core 
protocol.  I belive this will provide a better platform for application 
development than awkward attempts to retrofit reasonable Unicode support 
into the core protocol.

I should have monochrome text running in a week or so to give people a 
chance to experiment with performance over links of various sorts.  When 
I've done this in other environments, I've found performance to be 
acceptable down to 2B ISDN speeds; others may have different opinions.

ST should be easily modified in the same fashion.

I agree that it is important to provide sophisticated text management in a
manner which is independent of the underlying X server capabilities.  I
also think that such a mechanism should look forward to how we believe
text should be managed rather than attempting to work around deficiencies
in the original core X text design.

I think there is concensus that client-side text (in whatever guise -- Xft
or ST) is the best way forward.  Let's focus on making that solution 
available on all desktops as soon as possible.

Keith PackardXFree86 Core TeamCompaq Cambridge Research Lab


___
I18n mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/i18n