Help Center›FreeBASIC
View (Graphics)keyword
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
| Name | Description | |
|---|---|---|
x1 | As Integer, | |
y1 | As IntegerThe horizontal and vertical offsets, in pixels, of one corner of the viewport relative to the top-left corner of the screen. | |
x2 | As Integer, | |
y2 | As IntegerThe horizontal and vertical offsets, in pixels, of the opposite corner of the viewport relative to the top-left corner of the screen. | |
fill_color | As ULongThe color to fill the new viewport. | |
border_color | As ULongThe 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
Screen (Graphics) or 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,x2andy2parameters.
-
fill_colorandborder_colorare both in the format accepted byColor.
- The second statement (
Viewparameters) 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 Screenparameters) 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
Windowfor that).
Remarks
Differences from QB
- QBASIC preserves the
WINDOWcoordinate mapping after subsequent calls toVIEW.
- FreeBASIC's current behavior is to preserve the
WINDOWcoordinates after calls toVIEW, or when working on images, meaning that the coordinate mapping may undergo scaling/translations if the viewport changes. (If aWINDOWhasn't been set, there is no coordinate mapping, and so it doesn't change after calls toVIEW.) The behavior may change in future, but consistent behavior can be assured over inconstent viewport coordinates by re-callingWINDOWwhenever you change theVIEW.
See also
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)
Reference
- Documented in KeyPgViewgraphics.html