# SETCLIPRGN (W*S)

Graphics Subroutine: Limits graphics output to part of the screen.

## Module

USE IFQWIN

CALL SETCLIPRGN (x1,y1,x2,y2)

x1, y1 | (Input) INTEGER(2). Physical coordinates for upper-left corner of clipping region.
x2, y2 | (Input) INTEGER(2). Physical coordinates for lower-right corner of clipping region.

The SETCLIPRGN function limits the display of subsequent graphics output and font text output to that which fits within a designated area of the screen (the "clipping region"). The physical coordinates (x1, y1) and (x2, y2) are the upper-left and lower-right corners of the rectangle that defines the clipping region. The SETCLIPRGN function does not change the viewport-coordinate system; it merely masks graphics output to the screen.

SETCLIPRGN affects graphics and font text output only, such as OUTGTEXT. To mask the screen for text output using OUTTEXT, use SETTEXTWINDOW.

## Example

This program draws an ellipse lying partly within a clipping region, as shown below.

     ! Build as QuickWin or Standard Graphics ap.
     USE IFQWIN
     INTEGER(2) status, x1, y1, x2, y2
     INTEGER(4) oldcolor
     x1 = 10;  y1 = 50
     x2 = 170; y2 = 150
     ! Draw full ellipse in white
     status = ELLIPSE($GBORDER, x1, y1, x2, y2)
     oldcolor = SETCOLORRGB(Z'FF0000') !blue
     WRITE(*,*) "Hit enter"
     READ(*,*)
     CALL CLEARSCREEN($GCLEARSCREEN) ! clear screen
     CALL SETCLIPRGN( INT2(0), INT2(0), &
                      INT2(150), INT2(125))
     ! only part of ellipse inside clip region drawn now
     status = ELLIPSE($GBORDER, x1, y1, x2, y2)
     END

The following shows the output of this program.

Parent topic: Graphics Library Routines

## See Also

GETPHYSCOORD
GRSTATUS
SETTEXTWINDOW
SETVIEWORG
SETVIEWPORT
SETWINDOW