GSXTAT(3g,L) AIX Technical Reference GSXTAT(3g,L) ------------------------------------------------------------------------------- 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 character. 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 character. 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: Processed November 7, 1990 GSXTAT(3g,L) 1 GSXTAT(3g,L) AIX Technical Reference GSXTAT(3g,L) o The source pixels represent bits of data from the font raster to be merged in some way with the corresponding bits of data in the destination 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 Source Operation Destination Code 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 Processed November 7, 1990 GSXTAT(3g,L) 2 GSXTAT(3g,L) AIX Technical Reference GSXTAT(3g,L) 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 rectangular area on the display screen. When the gsxtxt subroutine 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. Processed November 7, 1990 GSXTAT(3g,L) 3 GSXTAT(3g,L) AIX Technical Reference GSXTAT(3g,L) 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 /usr/lpp/gsl/fonts 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 Height| | | | (in | Style | Filename | | 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. Processed November 7, 1990 GSXTAT(3g,L) 4 GSXTAT(3g,L) AIX Technical Reference GSXTAT(3g,L) 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. Processed November 7, 1990 GSXTAT(3g,L) 5