[comp.windows.x] Request for help

yvw@gs3.UUCP (Yvo Van Wezemael) (03/17/89)

OK, I have to admit that my previous question was unclear, so I try again by
deviding it into two (related?) parts:

As I said in my previous posting, I'm using CLX.

1) Would someone be so kind to explain the difference and the usage of the
16-bit elems that can be passed to the draw-glyph(s) function? I read the
documentation, but didn't understand it fully.

2) Is there a way to implement 'multiple-font-strings' on the CLX base? My lisp
(Lucid CL) has char-font-limit equal to 1, but perhaps by shadowing and
redefining some functions it could be possible to use the ability of different
fonts in X.

I hope that I have been more clear (precise) this time.

		Thanks (and sorry for the first attempt) --- Yvo Van Wezemael

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (03/20/89)

    1) Would someone be so kind to explain the difference and the usage of the
    16-bit elems that can be passed to the draw-glyph(s) function?

Do you understand the 8-bit case?  If so, then the 16-bit case is identical,
except that a larger index space is used.  The way you display glyphs is to
specify indices into a font array/matrix.  The font array might have a size
that can be encoded in 8 bits, or it might have a size that can be encoded in
16 bits.  The font matrix has a size for which each dimension can be encoded in
8 bits.  However, this size is essentially orthogonal to the encoding size you
use in a draw-glyphs/PolyText request.  Think of this as the difference between
using a variable of type (integer 0 255) and (integer 0 65535), or (for C folk)
using a variable of type unsigned char and unsigned short.  What matters are
the values you pass, not the number of bytes they occupy.

    2) Is there a way to implement 'multiple-font-strings' on the CLX base? My
    lisp (Lucid CL) has char-font-limit equal to 1, but perhaps by shadowing
    and redefining some functions it could be possible to use the ability of
    different fonts in X.

Fonts are (pardon me) a mess in CL; char-font seems pretty useless as a decent
abstraction.  I doubt there is any way in Lucid to up the limit.  You will note
that draw-glyphs is not restricted to taking a string, but rather can take any
sequence.  This allows you the freedom to use any "multi" representation you
want, and provide the appropriate :translate routine to decompose it into
fonts and glyph indices.