View (Graphics)

Sets new physical coordinate mapping and clipping region for graphics 
keywords

Syntax
	View
	View ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]
	View Screen ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]

Parameters
	x1 KeyPgAsAs KeyPgIntegerInteger, y1 KeyPgAsAs KeyPgIntegerInteger
		The horizontal and vertical offsets, in pixels, of one corner of the 
		viewport relative to the top-left corner of the screen.
	x2 KeyPgAsAs KeyPgIntegerInteger, y2 KeyPgAsAs KeyPgIntegerInteger
		The horizontal and vertical offsets, in pixels, of the opposite 
		corner of the viewport relative to the top-left corner of the screen.
	fill_color KeyPgAsAs KeyPgUlongULong
		The color to fill the new viewport.
	border_color KeyPgAsAs KeyPgUlongULong
		The color of the border to draw around the new viewport.

Description
	The viewport, or clipping region, is a rectangular area of the graphics 
	screen, outside of which no graphics drawing will be done. That is, only 
	graphics drawing done within this area will be shown. A graphics screen 
	must be created with KeyPgScreengraphicsScreen (Graphics) or KeyPgScreenresScreenRes before calling View 
	or View Screen.

	The first statement (View) sets the viewport to encompass the entire 
	screen, which is the default viewport for a new graphics screen.

	The second and third statements (View parameters and View Screen 
	parameters) both allow a new viewport to be defined. The indicated 
	effects for each parameter only occur if that parameter is specified:
		* The corners of the viewport are specified by the x1, y1, x2 and y2 
		  parameters.
		* fill_color and border_color are both in the format accepted by 
		  KeyPgColorColor.
		* The second statement (View parameters) modifies the coordinate 
		  mapping of the graphics screen such that coordinates specified for 
		  graphics drawing statements and procedures are relative to the 
		  top-left corner of the viewport.
		* The third statement (View Screen parameters) modifies the 
		  coordinate mapping of the graphics screen such that coordinates 
		  specified for graphics drawing statements and procedures are 
		  relative to the top-left corner of the screen.
		* In both cases no new scale factor is applied (see KeyPgWindowWindow for 
		  that).

Example
	Screen 12
	Dim ip As Any Ptr
	Dim As Integer x, y

	'simple sprite
	ip = ImageCreate(64,64)
	For y = 0 To 63
	  For x = 0 To 63
	   PSet ip, (x, y), (x\4) Xor (y\4)
	  Next x
	Next y

	'viewport with blue border
	Line (215,135)-(425,345), 1, bf
	View (220,140)-(420,340)

	'move sprite around the viewport
	Do

	  x = 100*Sin(Timer*2.0)+50
	  y = 100*Sin(Timer*2.7)+50
	  
	  ScreenSync
	  ScreenLock
	  
	  'clear viewport and put image
	  Cls 1
	  Put (x, y), ip, PSet
	   
	  ScreenUnlock

	Loop While Inkey = ""

	ImageDestroy(ip)

Differences from QB
	* QBASIC preserves the WINDOW coordinate mapping after subsequent calls 
	  to VIEW.
	* FreeBASIC's current behavior is to preserve the WINDOW coordinates 
	  after calls to VIEW, or when working on images, meaning that the 
	  coordinate mapping may undergo scaling/translations if the viewport 
	  changes. (If a WINDOW hasn't been set, there is no coordinate mapping, 
	  and so it doesn't change after calls to VIEW.)  The behavior may 
	  change in future, but consistent behavior can be assured over 
	  inconstent viewport coordinates by re-calling WINDOW whenever you 
	  change the VIEW.

See also
	* KeyPgViewtextView Print
	* KeyPgScreengraphicsScreen (Graphics)
	* KeyPgWindowWindow
	* KeyPgPmapPMap

