8 A More Complicated Example

▼ |  | Graphics: Legacy Library

1 | Basic Commands
2 | Position Operations
3 | Color Operations
4 | Draw, Clear, and Flip Operations
5 | World Operations
6 | Miscellaneous Operations
7 | An Example
8 | A More Complicated Example
9 | Protecting Graphics Operations
10 | Mouse Operations
11 | Keyboard Operations
12 | Flushing
13 | Graphics Library as a Unit

top contents ← prev up next →

## 8 A More Complicated Example🔗ℹ

The use of multiple viewports, viewport descriptors, drawing operations for multiple viewports is as easy as the use of a single viewport:

> (open-graphics)
> (let* (; w1 and w2 are viewports for different windows
> [w1 (open-viewport "viewport 1" 300 300)]
> [w2 (open-viewport "viewport 2" 200 500)]
> ; d1 and d2 draw lines in different viewports
> [d1 (draw-line w1)]
> [d2 (draw-line w2)])
> ; draws a line in viewport labeled “viewport 1”
> (d1 (make-posn 100 5) (make-posn 5 100))
> ; draws a line in viewport labeled “viewport 2”
> (d2 (make-posn 100 100) (make-posn 101 400)))
> ; we no longer have access to viewports 1 and 2,
> ; since their descriptors did not escape the let
> (close-graphics)
> ; removes the viewports

top contents ← prev up next →