The routine gSetPolygonWindow() selects a list of polygon identifiers to define a polygon window. The polygons are defined as moves or lines between calls to gStartPolygon() and gEndPolygon() and the polygons are stored as a series of vertices in picture coordinates. The list is also copied into a workspace and can be enquired with the routine gEnqPolygonWindowList().
Additional temporary workspace is required by gSetPolygonWindow() to store the list and a copy of the polygons that are used to generate the polygonal window. If gSetWorkspaceLimit() has not been called or if there is not enough workspace to set up the polygonal window the appropriate error message is output and windowing is reverted to device/viewport limits.
If n=0, no polygons are selected and windowing is switched off. A call to gSetWindow2D() or gSetWindowMode(GON2D) will revert to a rectangular clipping window.