* Graph(number subFunction,
...)
Graph performs a number of
operations with the screen and background picture. It contains a number
of sub functions, listed below.
number Graph(grGET_COLOURS) |
Obtains the colour resolution
which the interpreter is running in.
The values are as follows:
16 |
EGA |
-1 |
CGA (doesn't matter if
the driver is a mono CGA or four colour CGA) |
Example |
(var
colours)
= colours Graph(grGET_COLOURS)
(if( == colours 16)
Print("You are running in EGA mode")
)(else
(if( == colours -1)
Print("You are running
in CGA mode")
)
)
|
|
void Graph(grDRAW_LINE,
number y1, number x1, number y2, number x2[, number visColour,
number priColour, number ctlColour]) |
Draws a line on the specified
screen(s) with the specified colour.
If you specify visColour, then
the line is drawn on the visual screen with that colour. If
visColour is -1, no line is drawn. Use -1 if you, for example,
want to draw a line on the control screen, but not the visual
or priority screens.
If you specify priColour, then
the line is drawn on the priority screen with that colour. If
priColour is -1, no line is drawn.
If you specify ctlColour, then
the line is drawn on the control screen with that colour. If
ctlColour is -1, no line is drawn.
Example |
//
Draw a line from (30,20) to (200,100) on the visual
screen in yellow, the priority screen in red, and the
control screen in blue.
Graph(grDRAW_LINE 20 30 100 200 clYELLOW clRED clBLUE)
//
Draw a line from (60,40) to (160,130) on the visual
screen in white, and the control screen in brown.
Graph(grDRAW_LINE 40 60 130 160 clWHITE -1 clBROWN)
//
Draw a line from (10,20) to (40,50) on the visual screen
in red.
Graph(grDRAW_LINE 20 10 50 40 clRED)
|
|
number Graph(grSAVE_BOX,
number y1, number x1, number y2, number x2[, number screen]) |
Saves the screen pixels in the
specified area and returns a handle to them. If screen is specified,
it saves the pixels of that screen (VISUAL,PRIORITY,CONTROL).
Otherwise, it uses the VISUAL screen.
Example |
/*
this saves the center of the screen, draws a line, then
restores the area leaving only the line's edges */
(var handle)
= handle Graph(grSAVE_BOX 50 80 150 240)
Graph(grDRAW_LINE
10 10 180 310 clYELLOW)
Graph(grRESTORE_BOX
handle)
|
|
number Graph(grRESTORE_BOX,
number handle) |
Restores the pixels saved with
grSAVE_BOX.
Example |
/*
this saves the center of the screen, draws a line, then
restores the area leaving only the line's edges */
(var handle)
= handle Graph(grSAVE_BOX 50 80 150 240)
Graph(grDRAW_LINE
10 10 180 310 clYELLOW)
Graph(grRESTORE_BOX
handle)
|
|
void Graph(grFILL_BOX,
number y1, number x1, number y2, number x2, number screens[,
number visColour, number priColour, number ctlColour]) |
Fills the specified rectangular
region with the specified colour(s). The screens parameter specifies
which screens to drawn to.
The screens parameter can be any
of the following...
VISUAL |
The visual screen |
PRIORITY |
The priority screen |
CONTROL |
The control screen |
VISUAL_PRIORITY |
The visual and priority
screens |
VISUAL_CONTROL |
The visual and control
screens |
PRIORITY_CONTROL |
The priority and control
screens |
ALL_SCREENS |
All three screens. |
If you specify visColour, then
the box is drawn on the visual screen with that colour. If visColour
is -1, no box is drawn. Use -1 if you, for example, want to
draw a box on the control screen, but not the visual or priority
screens.
If you specify priColour, then
the box is drawn on the priority screen with that colour. If
priColour is -1, no box is drawn.
If you specify ctlColour, then
the box is drawn on the control screen with that colour. If
ctlColour is -1, no box is drawn.
Example |
//
Draws a box with the bounds of (30,20) and (200,100)
on the visual screen in yellow, the priority screen
in red, and the control screen in blue.
Graph(grDRAW_BOX 20 30 100 200 ALL_SCREENS clYELLOW
clRED clBLUE)
//
Doesn't draw anything though the colours are specified,
no screens are
Graph(grDRAW_BOX 20 30 100 200 0 clYELLOW clRED clBLUE)
//
Draws a box with the bounds of (60,40) and (160,130)
on the visual screen in white, and the control screen
in brown.
Graph(grDRAW_BOX 40 60 130 160 VISUAL_CONTROL clWHITE
-1 clBROWN)
|
|
void Graph(grFILL_BOX_BACKGROUND,
number y1, number x1, number y2, number x2) |
Operates just like grFILL_BOX,
but draws a box on the visual screen with the current port's
background colour.
Example |
Graph(grFILL_BOX_BACKGROUND
40 40 99 119)
|
|
void Graph(grFILL_BOX_FOREGROUND,
number y1, number x1, number y2, number x2) |
Operates just like grFILL_BOX,
but draws a box on the visual screen with the current port's
foreground colour.
Example |
Graph(grFILL_BOX_FOREGROUND
40 40 99 119)
|
|
void Graph(grUPDATE_BOX,
number y1, number x1, number y2, number x2, number screen) |
Draws the specified area of the
screen's screen to the screen (whew!). You can use this to redraw
the background picture, and also to view the priority/control
screens.
Example |
/*
Shows the priority screen for two seconds */
Graph(grUPDATE_BOX 0 0 199 319 PRIORITY)
Wait(120)
/*
Shows the control screen for two seconds */
Graph(grUPDATE_BOX 0 0 199 319 CONTROL)
Wait(120)
/*
Shows the visual screen*/
Graph(grUPDATE_BOX 0 0 199 319 VISUAL)
|
|
void Graph(grREDRAW_BOX,
number y1, number x1, number y2, number x2) |
Redraws the specified area of
visual screen to the screen.
Example |
Graph(grREDRAW_BOX
0 0 199 319)
|
|
number Graph(grADJUST_PRIORITY,
number min, number max) |
Sets the minimum and maximum bounds
for the priority. By default, these values are 42 and 190.
Example |
Graph(grADJUST_PRIORITY
20 150)
|
|
|