.\"##
.\" $XConsortium: p142,v 5.2 94/04/17 20:56:04 rws Exp $
.\"##
.\"## 
$XMCOPY
.\"## Copyright (c) 1990, 1991 by Sun Microsystems, Inc. 
.\"## 
.\"##                         All Rights Reserved
.\"## 
.\"## Permission to use, copy, modify, and distribute this software and its 
.\"## documentation for any purpose and without fee is hereby granted, 
.\"## provided that the above copyright notice appear in all copies and that
.\"## both that copyright notice and this permission notice appear in 
.\"## supporting documentation, and that the name of Sun Microsystems,
.\"## not be used in advertising or publicity 
.\"## pertaining to distribution of the software without specific, written 
.\"## prior permission.  
.\"## 
.\"## SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
.\"## INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
.\"## EVENT SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
.\"## CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
.\"## USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
.\"## OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
.\"## PERFORMANCE OF THIS SOFTWARE.
.TH "INQUIRE HLHSR MODE FACILITIES" 3P "29 February 1991"
.SH NAME
INQUIRE HLHSR MODE FACILITIES \- inquire the available hidden line and hidden surface removal
modes of a specified workstation type
.IX "Z-buffering" "INQUIRE HLHSR MODE FACILITIES"
.IX "Hidden Line/Hidden Surface Removal" "INQUIRE HLHSR MODE FACILITIES"
.IX "HLHSR" "INQUIRE HLHSR MODE FACILITIES"
.SH SYNOPSIS
.SS C Syntax
.ft B
.ta 1.25i 3i
.nf
void
pinq_hlhsr_mode_facs ( type, length, start, error_ind, modes, length_list )
Pint	type;	\fIworkstation type\fP
Pint	length;	\fIlength of mode list\fP
Pint	start;	\fIstarting position of mode list\fP
Pint	*error_ind;	\fIOUT error indicator\fP
Pint_list	*modes;	\fIOUT list of HLHSR modes\fP
Pint	*length_list;	\fIOUT length of mode list in PHIGS\fP
.fi
.ft R
.SS Required PHIGS Operating States
(PHOP, *, *, *)
.SH DESCRIPTION
.SS Purpose
\s-2INQUIRE HLHSR MODE FACILITIES\s+2 obtains the available \s-2HLHSR\s+2
(hidden line and hidden surface removal) modes
on the specified workstation type.  See \s-2SET HLHSR MODE\s+2 for a 
description of how to select the mode.
.SS C Input Parameters
.sp .3
.IP \fItype \fP
Type of workstation.
.IP \fIlength\fP
The number of \fIints\fR in the \fImodes\fR output parameter for which the 
application has allocated memory. \fIlength\fR is the number of list elements
that the system can return in \fImodes\(->ints\fR.
If a value of 0 is used here, no data will be returned in the \fImodes\(->ints\fR
list, but the total number of modes in the \s-2PHIGS\s+2 state list
will be returned in \fIlength_list\fR.
.IP \fIstart\fP
Starting position of inquiry into the \s-2PHIGS\s+2 state list of 
current mode. The elements of the list of mode, beginning
with the item number specified by \fIstart\fR, are copied sequentially into 
\fImode\(->ints\fR until \fImodes\(->ints\fR is full or all the 
modes have been copied.
.SS C Output Parameters
.IP \fIerror_ind\fP
A pointer to the location to store the error number of any error
detected by this function.
.IP \fImodes\fP
A pointer to a Pint_list data structure in which the system returns a 
list of the \s-2HLHSR\s+2 modes available on this workstation type. 
The returned list starts with the \fIstart\fP item in the list of 
modes and returns the next \fIlength\fP items. 
Pint_list is defined in phigs.h as follows:
.ta .5i +\w'Pint   'u +\w'num_ints;   'u
.nf
.sp .3
typedef struct {
.sp .2
	Pint	num_ints;	/* number of modes in list */
	Pint	*ints;	/* list of modes */
.sp .2
} Pint_list;
.fi
Possible modes are:
.nf
.ta .5i +.25i +2.5i
.sp .2
	0	PHIGS_HLHSR_MODE_NONE 	\fIDisable \s-2HLHSR\s+2\fR
	1	PHIGS_HLHSR_MODE_ZBUFF	\fIEnable \s-2HLHSR\s+2 using Z-buffer\fR
	2	PHIGS_HLHSR_MODE_PAINTERS	\fIEnable \s-2HLHSR\s+2 using painter\fR
	3	PHIGS_HLHSR_MODE_SCANLINE	\fIEnable \s-2HLHSR\s+2 using scanline\fR
	4	PHIGS_HLHSR_MODE_LINE_ONLY	\fIEnable hidden line removal only\fR
.fi
.sp
.IP \fIlength_list\fP
A pointer to an integer in which the system returns the total number of elements
in the \s-2PHIGS\s+2 state list of currently used modes. This is the value
required for \fIlength\fR if all modes are to be returned.
.SH ERRORS
.IP 002
Ignoring function, function requires state (\s-2PHOP, *, *, *\s+2)
.IP 052
Ignoring function, workstation type not recognized by the implementation
.IP 051
Ignoring function, this information is not yet available
for this workstation type; open a workstation of this type
and use the specific workstation type
.IP 057
Ignoring function, specified workstation is of category \s-2MI\s+2
.IP 062
Ignoring function, this information is not available for this
\s-2MO\s+2 workstation type
.SH SEE ALSO
.nf
.IP
.ta 0.5i
.SM "INQUIRE WORKSTATION CONNECTION AND TYPE (3P)"
.SM "INQUIRE HLHSR MODE (3P)"
.SM "INQUIRE HLHSR IDENTIFIER (3P)"
.SM "SET HLHSR MODE (3P)"
.SM "SET HLHSR IDENTIFIER (3P)"
.fi
