ESCAPE -16(3P) — SUNPHIGS LIBRARY
NAME
ESCAPE -16 − inquire workstation type support
SYNOPSIS
C Syntax
void
pescape ( func_id, in, out )
Pintfunc_id;escape funcion identifier
Pint∗in;input data for the function
Pint∗out;OUT output data of the function
FORTRAN Syntax
SUBROUTINE pesc ( FCTID, LIDR, IDR, MLODR, LODR, ODR )
INTEGERFCTIDfunction identification
INTEGERLIDRdimension of input data record array
CHARACTER∗80IDR(LIDR) input data record
INTEGERMLODRmaximum length of output data record
INTEGERLODROUT number of array elements used in ODR
CHARACTER∗80ODR(MLODR) OUT output data record
Required PHIGS Operating States
(PHOP,WSOP,∗,∗)
DESCRIPTION
Purpose
ESCAPE -16 retrieves the values of how certain features are supported on a workstation: whether they are suppoted in hardware, software, or not at all. Since SunPHIGS provides many features in software when they are not present in hardware, this allows a performance-sensitive application to avoid use of those features.
C Input Parameters
func_id
The function identifier for this escape is PUESC_INQ_WS_TYPE_SUPPORT, defined in phigs.h to have the value -16.
inA pointer to a Pescapein union containing the input data record uesc16_idatarec by this escape function. It is defined as:
typedef struct {
Pwstypewst;/∗ workstation type identifier ∗/
} Puesc0016_idatarec;
wstThe workstation type returned from INQUIRE WORKSTATION CONNECTION AND TYPE.
C Output Parameters
outA pointer to a Pescapeout union containing the output data record uesc16_odatarec to be filled by this escape function. It is defined as:
typedef struct {
Pinterror_ind;/∗ error indicator ∗/
Phigs_ws_type_supportwst_sup;/∗ workstation type support ∗/
} Puesc0016_odatarec;
error_ind
The error indicator of any error detected by this escape. See the Errors section below for possible values.
wst_sup
A structure Phigs_ws_type_support, containing three structures on the input, input/output, and output workstations. Phigs_ws_type_support is defined in phigs.h as follows:
typedef struct {
Phigs_ws_input_supportin_sup;/∗ input workstation ∗/
Phigs_ws_in_out_supportin_out_sup;/∗ input/output workstation ∗/
Phigs_ws_output_supportout_sup;/∗ output workstation ∗/
} Phigs_ws_type_support;
The in_sup component specifies the support of input. Currently, this field is reserved for future use. The content of this component is subject to change in the future. The structure Phigs_ws_input_support is specified as follows:
typedef struct {
Phigs_support_levelreserved;
} Phigs_ws_input_support;
The Phigs_support_level is specified as follows:
typedef enum {
PHIGS_NOT_SUPPORTED,/∗ not supported ∗/
PHIGS_SOFTWARE,/∗ software or inefficient support ∗/
PHIGS_ACCELERATED/∗ hardware or microcode support ∗/
} Phigs_support_level;
The in_out_sup component specifies the support of input/output workstations. The content of this component is subject to change in the future. The structure of Phigs_ws_in_out_support is as follows:
typedef struct {
Phigs_support_levelpicking;/∗ picking support ∗/
} Phigs_ws_in_out_support;
The out_sup component specifies the support of output. The content of this component is subject to change in the future. The structure of Phigs_ws_out_support is as follows:
typedef struct {
Phigs_support_leveldouble_buffer;/∗ hardware double buffering ∗/
Phigs_support_levelzbuff_hlhsr;/∗ z-buffer hlhsr ∗/
Phigs_support_levelindexed_colour;/∗ indexed colour ∗/
Phigs_support_leveltrue_colour;/∗ true colour ∗/
Phigs_support_leveldepth_cueing;/∗ depth cueing ∗/
Phigs_support_levellighting;/∗ lighting ∗/
Phigs_support_levelshading;/∗ shading ∗/
Phigs_support_levelanti_aliasing;/∗ anti aliasing lines ∗/
} Phigs_ws_output_support;
FORTRAN Input Parameters
FCTID
The function identifier of this escape is PUESCINQWSTSUP which is defined in phigs77.h to be -16.
LIDRThe dimension of IDR (returned by PACK DATA RECORD).
IDR(LIDR)
An ESCAPE data record packed by PACK DATA RECORD called with these arguments:
ILThe number of integers = 2.
IAContains two integer values.
Element 1 is the workstation type.
Element 2 is the specific type support to inquire. Valid values are defined in phigs77.h as follows:
PHIGSINOUTSUPPICKINGPicking Support
PHIGSOUTSUPDBLBUFFHardware Double Buffering
PHIGSOUTSUPZBUFFHLHSRZ-buffer HLHSR
PHIGSOUTSUPINDEXCOLOURIndexed Colour
PHIGSOUTSUPTRUECOLOURTrue Colour
PHIGSOUTSUPDEPTHCUEINGDepth Cueing
PHIGSOUTSUPLIGHTINGLighting
PHIGSOUTSUPSHADINGShading
PHIGSOUTSUPANTIALIASINGAnti-Aliased Lines
RLThe number of real values = 0.
SLThe number of strings = 0.
MLODR
The maximum length of the output data record, ODR.
FORTRAN Output Parameters
LODRThe length used in the output data record array, ODR.
ODR(MLODR)
The output data record is stored in this array. When the output data record is passed to UNPACK DATA RECORD , the following fields should be returned:
ILThe number of integers = 2.
IAContains two integer values.
Element 1 is the error indicator.
Element 2 is the support level of the inquired type. Valid values are defined in phigs77.h as follows:
PHIGSNOTSUPNot Supported
PHIGSSUPSWSoftware or Inefficient Support
PHIGSSUPACCHardware or Microcode Support
RLThe number of real values = 0.
SLThe number of strings = 0.
Execution
Currently it is necessary to have the workstation open before the inquiry can be made. In future releases, this might not be necessary. It is also necessary to make a call to INQUIRE WORKSTATION CONNECTION AND TYPE to get the specific opened workstation’s type before calling this function. Otherwise, Error 051 is returned.
ERRORS
003Ignoring function, function requires state (PHOP, WSOP, ∗, ∗)
051Ignoring function, this information is not yet available for this generic workstation type; open a workstation of this type and use the specific workstation type
052Ignoring function, workstation type not recognized by the implementation
SEE ALSO
ESCAPE(3P)
INQUIRE WORKSTATION CONNECTION AND TYPE(3P)
WORKSTATION TYPE SET(3P)
WORKSTATION TYPE GET(3P)
Example program WHAT_HW
Sun Release 4.0 — Last change: 27 July 1989