Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

gscatt

gsecur

gsmcur



GSMCAT(3g,L)                AIX Technical Reference                GSMCAT(3g,L)



-------------------------------------------------------------------------------
gsmcat



PURPOSE

Sets the cursor attributes.

C SYNTAX

int gsmcat_ (foreground, background, width, height, pattern,
mask, 0x, 0y, logop)

int *foreground, *background, *width, *height, *pattern,
*mask, *0x, *0y, *logop)

FORTRAN SYNTAX

INTEGER function gsmcat_ (foreground, background, width, height,
pattern, mask, 0x, 0y, logop)

INTEGER foreground, background, width, height, pattern, mask, 0x, 0y, logop)

PASCAL SYNTAX

FUNCTION gsmcat_ (

VAR foreground, background, width, height: INTEGER;
VAR pattern: ARRAY [1..k] of INTEGER;
VAR mask: ARRAY [1..k] of INTEGER;
VAR 0x, 0y, logop: INTEGER
): INTEGER [PUBLIC];

DESCRIPTION

The gsmcat subroutine defines the multicolor cursor for the GSL.  The gscmap
subroutine must initialize the color map before gsmcat can be called.

Only one cursor, either the multicolor cursor or the single-color cursor, can
be active in the GSL at any one time.  The gsmcat subroutine forces all
subsequent calls to the gsmcur and gsecur subroutines to operate on the
multicolor version of the cursor.  To change from the single-color cursor to
the multicolor cursor, erase the cursor with gsecur, then call the gsmcat
subroutine.

The multicolor cursor is a two-color, clipped cursor with logical operations.
Its size is limited to 32 bits in width and 32 bits in height.  Although the
cursor origin cannot be moved outside the frame buffer boundaries, any portion
beyond the origin that falls outside the frame buffer is clipped.  In addition,
a mask is provided that can be used to allow portions of the frame buffer to
show through the cursor.  Any bits set to 0 in the mask indicate that the



Processed November 7, 1990       GSMCAT(3g,L)                                 1





GSMCAT(3g,L)                AIX Technical Reference                GSMCAT(3g,L)



matching bits in the cursor pattern do not affect the underlying frame buffer.

Parameters

foreground        Defines a color entry in the color map.  This color is used
                  for the foreground color (bits set to 1) in the multicolor
                  cursor raster.  A value of -1 indicates no change to this
                  attribute.

background        Defines a color entry in the color map.  This color is used
                  for the background color (bits set to 0) in the multicolor
                  cursor raster.  A value of -1 indicates no change to this
                  attribute.

width, height     Define, in pixels, the width and height of the bit pattern
                  and mask to be used as the cursor.  The maximum value for
                  width and height of the cursor is 32 bits.  If width or
                  height equals -1, then the pattern and the mask remain
                  unchanged.

pattern           Defines the raster image used as a cursor.  It must be
                  specified in 32-bit integers, and there must be height number
                  of rows.  The GSL will only use width number of bits in each
                  integer.

mask              Defines the mask pattern of the cursor.  Each bit in the mask
                  corresponds with a bit in the multicolor cursor pattern.  If
                  a bit is set (has a value of 1), the matching bit in the
                  pattern is applied to the underlying display raster.  If a
                  bit is not set (has a value of 0), the matching bit in the
                  pattern is masked and does not affect the underlying display
                  raster.  The size of the mask must match the size of the
                  pattern exactly.

0x, 0y            Indicate the origin of the cursor relative to the lower
                  leftmost corner (0, 0) of the cursor pattern.  The origin
                  must be placed within the cursor pattern:  0x < width and
                  0y < height.  The origin of the cursor is placed at the
                  position indicated, when the application moves the cursor
                  using the gsmcur subroutine.  If x equals -1, then the origin
                  remains unchanged.

logop             Defines the logical operation to perform between the cursor
                  pattern being drawn and the contents of the frame buffer.
                  The following logical operations are supported on the PS/2:

                  1    AND
                  3    REPLACE
                  6    Exclusive-or
                  7    OR

You cannot change the cursor attributes while the cursor is visible.



Processed November 7, 1990       GSMCAT(3g,L)                                 2





GSMCAT(3g,L)                AIX Technical Reference                GSMCAT(3g,L)



There is no default cursor defined, so all cursor parameters must be set before
the cursor is displayed.

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

RETURN VALUE

GS_SUCC  Successful.
GS_COLI  Invalid color index.
GS_CURS  Cursor size invalid.
GS_CURO  Cursor origin invalid.
GS_CURV  Cursor visible.
GS_LONS  Invalid logical operation.

RELATED INFORMATION

In this book:  "gscatt,"  "gsecur," and "gsmcur."




































Processed November 7, 1990       GSMCAT(3g,L)                                 3



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