Note: This function has been superseded by the PEXOCCFillArea function, but is maintained here for backwards compatibility with PEXlib 5.1
void PEXFillArea( Display *display, XID resource_id, PEXOCRequestType req_type, int shape_hint, int ignore_edges, unsigned int count, PEXCoord *points )
None.
Invoke PEXFillArea to create a fill area output primitive.
An area is a list of vertices joined together to form a planar surface. PEXlib does not require fill areas to be strictly planar, but shading artifacts may occur if a fill area is not planar or nearly so. The first vertex of the fill area is connected to the second, the second to the third, and so on. PEXlib implicitly connects the last vertex to the first.
During the rendering process, the implementation transforms the fill area vertices to positions in device coordinates.
Reflectance calculations affect the surface colors. These calculations use the light state, interior style, and reflection model attributes. Depth-cueing computations affect surface colors and map the surface colors to device colors. The implementation does not display fill areas outside of the currently defined clipping volume. The implementation clips fill areas crossing the clipping volume, and displays only the portions inside the clipping volume.
Defining a fill area with fewer than three vertices creates a degenerate area. The implementation stores the fill area in a in a structure, but when the area is rendered, there is no visual effect. The implementation ignores the primitive.
A fill area may cross over itself to create a complex shape. PEXlib uses the even-odd rule to determine the area that lies in the interior of the fill area. Specifying the shape_hint argument improves performance for certain shapes. The implementation renders fill areas that are of higher complexity than indicated by shape_hint in an implementation-dependent way. Consequently, your applications should pass PEXShapeUnknown as the shape unless you are certain the fill area's shape is one of the other three.
Specify the ignore_edges argument as a boolean value indicating whether you want surface edges rendered. If you set the flag to True, then the implementation does not render surface edges. If you set the ignore edges flag to False, then the implementation renders surface edges according to the surface edge attributes if the surface edge flag attribute is PEXOn. Depending on the setting of the surface edge source flag values, this primitive obtains the attributes: surface edges, surface edge color, surface edge type, and surface edge width either directly from the current surface edge attribute values or from the edge bundle lookup table entry specified by the current edge bundle index attribute.
Depending on the setting of the surface attribute source flag values, this primitive obtains the attributes: surface color, interior style, interior style index, surface interpolation method, and reflection model either directly from the current surface attributes values or from the interior bundle lookup table entry specified by the current interior bundle index attribute.
If a surface is front-facing with respect to the point of view and the current culling mode enables front-faces to be rendered, then the implementation uses the surface color and reflection attributes when rendering the surface. If the surface is back-facing, then the current distinguish mode is True, and the current culling mode enables back-facing surfaces to be rendered, then the implementation uses the corresponding back-facing attributes instead.
Regardless of the fill area orientation, if the interior style is PEXInteriorStylePattern, then the primitive uses the pattern size, pattern reference point and pattern reference vectors to pattern the fill area.
For an overview, see Output Command Functions.