.NH 2
Structure Related and No-op Functions
.XS
\*(SN Structure Related and No-op Functions
.XE
.LP
.IN "output commands"
.IN "structure"
.IN "no-op"
There are some output commands that either relate to only structure
resources or that do not directly cause anything to be rendered.
The output commands in this category are application data, execute structure,
generalized structure element, label and no-op.
Label, no-op and application data
have no visible effect when rendered.
A label command is used to position the element pointer in a structure.
For more information on labels, see \fIChapter 7: Structures\fP.
.NH 3
Common Data Structures
.XS
\*(SN Common Data Structures
.XE
.LP
Below are the data structures used that are common to more than one function
described in this section.
.RS
.Co
/* similar to XErrorEvent - use to access additional info in OC error */
.ID
typedef struct {
    int             type;
    Display         *display;      /* Display the event was read from */
    XID             resourceid;    /* resource id of renderer or structure */
    unsigned long   serial;        /* serial number of failed request */
    unsigned char   error_code;    /* error code of failed request */
    unsigned char   request_code;  /* Major op-code of failed request */
    unsigned char   minor_code;    /* Minor op-code of failed request */
    unsigned short  op_code;       /* op-code of failed output command */
    unsigned short  count;         /* number of output commands successfully */
                                   /* executed before error */
} PEXOCErrorEvent;
.DE
.ft P
.RE
.bp
.XS
Function Descriptions
.XE
.SH
PEXApplicationData - Structure Application Data
.XS
	PEXApplicationData
.XE
.IN "PEXApplicationData" "" "@DEF@"
.SH
Synopsis
.RS
.FD 0
void PEXApplicationData\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, int \fIlength\fP\^, char *\fIdata\fP\^)
.FN
.RE
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIlength\fP 1i
The length, in bytes, of the application data.
.IP \fIdata\fP 1i
A pointer to the application data.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates an
application data output command
which has no visible effect when rendered.
It is typically used to store arbitrary application data in a structure.
.RE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXExecuteStructure - Execute Structure
.XS
	PEXExecuteStructure
.XE
.IN "PEXExecuteStructure" "" "@DEF@"
.SH
Synopsis
.RS
.FD 0
void PEXExecuteStructure\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, PEXStructure \fIstructure\fP\^)
.FN
.RE
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIstructure\fP 1i
The resource identifier of the structure.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates an
execute structure output command
which causes the specified structure to be executed during structure traversal.
Executing a structure consists of these steps:
.ID
1. Save the current state of the rendering pipeline.
2. Set the global transform to the current composite modeling transform.
3. Set the local transform to the identity matrix.
4. Process all structure elements in the called structure.
5. Restore the state saved at step 1.
.DE
If structure does not exist at the time
.PN PEXExecuteStructure
is processed, a
.PN BadPEXOutputCommand
error is produced.  The structure must first be created.
.RE
.SH
Errors
.RS
.IP \fIBadPEXOutputCommand\fP 1i
The output command contains an invalid value.
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXCreateStructure ,
.PN PEXBeginStructure ,
.PN PEXEndStructure
.RE
.bp
.SH
PEXGSE - Generalized Structure Element
.XS
	PEXGSE
.XE
.IN "PEXGSE" "" "@DEF@"
.SH
Synopsis
.RS
.FD 0
void PEXGSE\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, long \fIid\fP\^, int \fIlength\fP\^, char *\fIdata\fP\^)
.FN
.RE
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIid\fP 1i
The identifier of the GSE.
.IP \fIlength\fP 1i
The length, in bytes, of the GSE data.
.IP \fIdata\fP 1i
A pointer to the GSE data.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a generalized structure element.
.LP
The complete interface and behavior for each GSE identifier
should be available with the individual PEX server implementations.
There are no standard PEX GSEs.
If the specified GSE identifier is not supported,
then the output command is ignored.
.RE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.RE
.bp
.SH
PEXLabel - Structure Label
.XS
	PEXLabel
.XE
.IN "PEXLabel" "" "@DEF@"
.SH
Synopsis
.RS
.FD 0
void PEXLabel\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^, long \fIlabel\fP\^)
.FN
.RE
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.IP \fIlabel\fP 1i
A value to be used as a label.
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a
label output command which
has no visible effect.  Its primary function comes when it is stored in a
structure, as labels can be used in various element pointer positioning
operations.  Labels within a particular structure need not be unique.
.RE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.LP
.PN PEXDeleteToLabel ,
.PN PEXDeleteBetweenLabels ,
.PN PEXSetElementPtrAtLabel
.RE
.bp
.SH
PEXNoop - Noop Output Command
.XS
	PEXNoop
.XE
.SH
Synopsis
.RS
.FD 0
void PEXNoop\^(\^Display *\fIdisplay\fP\^, XID \fIresource_id\fP\^, PEXOCRequestType \fIreq_type\fP\^)
.FN
.RE
.IN "PEXNoop" "" "@DEF@"
.SH
Arguments
.RS
.IP \fIdisplay\fP 1i
A pointer to a display structure returned by a successful \fBXOpenDisplay\fP call.
.IP \fIresource_id\fP 1i
The resource identifier of the renderer or structure.
.IP \fIreq_type\fP 1i
The request type for the output command
.Pn ( PEXOCRender ,
.PN PEXOCStore ,
.PN PEXOCRenderSingle
or
.PN PEXOCStoreSingle ).
.RE
.SH
Returns
.RS
.LP
None
.RE
.SH
Description
.RS
.LP
This function creates a
no-op output command which, when rendered, will do nothing except update the
current path.
.RE
.SH
Errors
.RS
.IP \fIBadPEXRenderer\fP 1i
The specified renderer resource identifier is invalid.
.IP \fIBadPEXStructure\fP 1i
The specified structure resource identifier is invalid.
.RE
.SH
See Also
.RS
.RE
.bp
