> 1) gel - (General || Generic || Graphic) Extension Library. Pretty
> creative .
Hmm - I thought it was just about font support ... ? What else do you want
to put into it ?
> 2) The Foreground/Background business.
> The text comes out as the foreground color onto the background color.
> > You see, when you get the font raw data it is an alpha factor. In order
> to get a pixel rgb out of that I need the source color and the destination
> color or it doesn't look right.
Hmm - I had thought to really do alpha blending for that. However that has a
speed penalty, as one has to read out the visual. Hmm .... best thing would
probably be what was already suggested and allow to set the background value
to some magic value "transparent" or have a call to switch that behaviour
on.
> 3) Font Loading
> I guess you'll have to explain this better because I don't follow
> this. (I really know nothing of X or Windows, my bad).
The idea is portability and efficient use of existing ressources.
We have targets with native font capabilities and we might have several
rendering backends some day. Thus I suggest to add something like
gelFontOpen("font-specifier");
and the associated helper calls (setting size and such). The idea is, that
"font-specifier" would use a lookup-table that maps a certain set of "simple"
font descriptors to a "native" renderer.
Basically you would do something like gelFontOpen("Helvetica"); and
internally it would map to using FreeType to open a Helvetica-type Font
(say Arial) for most targets, but use X functions (XDrawString, XDrawText)
on X or the native TrueType functions for Win or the native Fonts for output
to a postscript printer.
Not doing so will require to make all programs configureable with respect to
fonts, as noone will have the ttfs in the same place. If you always go
through a mapping layer, all you need to do is edit your configuration file.
Best way would probably be a bit along the lines of X ressources, so that
programs would request something like
progname.default, progname.highlight, progname.helvetica, progname.courier,
...
and the mapping file has catchall-entries *.default etc.
You could then configure the look of each program by just adding the more
specific mappings and as a side effect, it would automatically select more
efficient rendering layers when available.
CU, ANdy
--
= Andreas Beck | Email : <[EMAIL PROTECTED]> =