Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ gsxtat(3) — AIX/RT 2.2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fonts

gsxtxt

gsxtat

Purpose

     Sets  the text  attributes for  annotated text  using the
     rtfont format.

C Syntax

     int gsxtat_ (foreground, background, logop, font, clipbox)

     int *foreground, *background, *logop, *font, *clipbox;

FORTRAN Syntax

     INTEGER function gsxtat (foreground, background, logop, font, clipbox)

     INTEGER foreground, background, logop, font, clipbox

Pascal Syntax

     FUNCTION gsxtat_ (

     VAR foreground, background, logop, : INTEGER;
     VAR font: ARRAY [1..k| of INTEGER;
     VAR clipbox: ARRAY [1..l| of INTEGER;
     ): INTEGER [PUBLIC|;

Description

     The gsxtat  subroutine defines the attributes  to be used
     when drawing text with a font in the rtfont format.

     Parameters

     foreground        Defines an  entry in  the color  map to
                       use for the  foreground color (bits set
                       to 1) in the font raster for each char-
                       acter.   A  value  of -1  indicates  no
                       change for this attribute.

     background        Defines an  entry in  the color  map to
                       use for the  background color (bits set
                       to 0) in the font raster for each char-
                       acter.   A  value  of -1  indicates  no
                       change for this attribute.

     logop             Indicates  the   logical  operation  to
                       perform between the font raster and the
                       display destination.

                       In the following table, please note:

                       o   The source pixels represent bits of
                           data  from the  font  raster to  be
                           merged in some  way with the corre-
                           sponding bits of data in the desti-
                           nation rectangle.

                       o   The  first  three  columns  of  the
                           table  specify  the operations  you
                           can  perform, and  the Code  column
                           contains  the  corresponding  value
                           you  should specify  for the  logop
                           parameter.

                       o   A ~ (tilde) represents  the logical
                           INVERSE.

                               Type of     Logical          Type of                Code
                               Source      Operation        Destination

                                                             Destination clear      0
                                                             Set Destination       15
                                           No operation      Destination            5
                                                            ~Destination           10
                                Source     REPLACE           Destination            3
                                Source     AND               Destination            1
                                Source     AND              ~Destination            2
                                Source     Exclusive-or      Destination            6
                                Source     OR                Destination            7
                                Source     OR               ~Destination           11
                               ~Source     REPLACE           Destination           12
                               ~Source     AND               Destination            4
                               ~Source     AND              ~Destination            8
                               ~Source     Exclusive-or      Destination            9
                               ~Source     OR                Destination           13
                               ~Source     OR               ~Destination           14

                  A value of -1 for this parameter indicates no change in the
                  current logical operation.

font              Points to  a data  area that contains  the font  header and
                  raster definitions for all  characters defined in the font.
                  The calling  process is responsible for  either mapping the
                  font file  or copying  it into  a memory  area in  order to
                  obtain a pointer to the data area.

                  Setting the value of this  pointer to 0 indicates no change
                  to the current font file.

                  The GSL supports only a  subset of the different forms that
                  the rtfont  format allows.  Specifically, the  GSL supports
                  any combination of the following font formats:

                  o   fixed width and height

                  o   variable width and/or height

                  o   halfword alignment or fullword alignment

                  o   glyphs in raster format only

                  o   index character array width of 4 bytes

                  o   all  individual  glyph  character bounds  for  variable
                      width and  height fonts, except negative  left or right
                      bearings.

                  For more information on valid formats for rtfont files, see
                  "fonts" and the rtfont.h header file.

                  The GSL does not support any formats for rtfont files other
                  than those listed above.  If the font file specified is not
                  in a  supported format,  then the  GSL returns  the GS_FFMT
                  return code.

clipbox           Specifies an array of integers that correspond to a rectan-
                  gular area on the display  screen.  When the gsxtxt subrou-
                  tine is used  to draw text, any full  or partial characters
                  that fall outside  this area are clipped.   The elements of
                  the area to clip are as follows:

                  first element            Reserved. This value should always
                                           be 1.

                  second element           Specifies the x  coordinate of the
                                           lower left corner of the clip box,
                                           in pixels.

                  third element            Specifies the y  coordinate of the
                                           lower left corner of the clip box,
                                           in pixels.

                  fourth element           Specifies the  height of  the clip
                                           box, in pixels.

                  fifth element            Specifies  the width  of the  clip
                                           box, in pixels.

                  The bottom  and left edges  of the clip box  are inclusive,
                  while the top and right edges are exclusive.

                  This parameter is a pointer to the clip box array, which is
                  not  copied  into  any  GSL data  structure,  allowing  the
                  calling process to modify the elements of the array without
                  calling the gsxtat  subroutine. If the values  for the clip
                  box are changed between calls to the gsxtxt subroutine, the
                  new clip  box is  used for all  text drawing  until another
                  change is made.

                  Setting the value of this pointer to 0 indicates no change.

Warning:  Since the  GSL subroutines that use the rtfont  format are designed
for high-performance text drawing, no verification is made of the validity of
the clip box.  It is the responsibility of the calling process to ensure that
the entire clip box resides inside the physical size of the display.  Using a
clip box  that is not entirely  within the screen will  produce unpredictable
results.

When the GSL is installed from diskette, an attempt is made to convert the 14
supplied  VRM  format  fonts  into rtfont  format.   The  vrm2rtfont  command
(described in the AIX Operating System  Commands Reference) is used on the 14

VRM fonts in the /etc/vtm directory,  and the resulting rtfonts are stored in
the /usr/lpp/fonts  directory.  The  following list  shows the  rtfont format
files stored in /usr/lpp/fonts:

+---------------+----------+------------+
|  Width x Heigh| Style    | Filename   |
|     (in pixels|          |            |
|               |          |            |
+---------------+----------+------------+
|       4 x  8  | Normal   | Rom6.500   |
+---------------+----------+------------+
|       6 x  9  | Normal   | Rom7.500   |
+---------------+----------+------------+
|       6 x 11  | Normal   | Rom8.500   |
+---------------+----------+------------+
|       7 x 15  | Normal   | Rom11.500  |
+---------------+----------+------------+
|       7 x 22  | Normal   | Rom16.500  |
+---------------+----------+------------+
|       8 x 14  | Normal   | Rom10.500  |
+---------------+----------+------------+
|       9 x 20  | Normal   | Rom14.500  |
+---------------+----------+------------+
|       9 x 20  | Italic   | Itl14.500  |
+---------------+----------+------------+
|       9 x 20  | Bold     | Bld14.500  |
+---------------+----------+------------+
|       9 x 20  | Ergonomic| Erg14.500  |
+---------------+----------+------------+
|      11 x 23  | Normal   | Rom17.500  |
+---------------+----------+------------+
|      11 x 23  | Bold     | Bld17.500  |
+---------------+----------+------------+
|      12 x 30  | Normal   | Rom22.500  |
+---------------+----------+------------+
|      18 x 40  | Normal   | Rom29.500  |
+---------------+----------+------------+

All of these fonts have fixed width and height and are halfword aligned.

For Pascal,  the application must  declare the  arrays passed as  being fixed
length and declare the routine as accepting arrays of that length.  The k and
l in the routine declaration must be constants.

Return Value

GS_SUCC   Successful.
GS_FFMT   Invalid font format.
GS_LONS   Invalid logical operation.

File

/usr/include/rtfont.h

Related Information

In this book:  "fonts" and "gsxtxt."

The vrm2rtfont command in AIX Operating System Commands Reference.

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026