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.