Page 108 Table of Contents Index Page 110
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E



CHAPTER 12. GRAPHICS

Major issue: The medium and port layers should be merged. There is no gain in performance
to be had by separating them, since transformations need to be applied to the coordinates at
both layers anyway, and if the two layers are coalesced, there is better opportunity for caching
transformations. | SWM, York

12.7.1 General Behavior of Drawing Functions

Using draw-line* as an example, calling any of the drawing functions specified above results in
the following series of function calls on a non-output recording sheet:

12.7.2 Medium-specific Drawing Functions

All mediums and all sheets that support the standard output protocol must implement methods
for the following generic functions.

Note: CLIM implementations should provide "trampoline" methods on sheets that support
the standard output protocol that simply call the same generic function on the medium. Sheets
that support output recording will require extra mechanism before delegating to the medium in
order to implement such functionality as creating output records and handling scrolling.

=> medium-draw-point* medium x y [Generic Function]
Draws a point on the medium medium. The point is drawn at (x;y), transformed by the medium's
current transformation. medium-draw-point* will call port-draw-point* in order to draw the
point.

=> medium-draw-points* medium coord-seq [Generic Function]
Draws a set of points on the medium medium. coord-seq is a sequence of coordinate pairs, which
are real numbers. It is an error if coord-seq does not contain an even number of elements. The
coordinates in coord-seq are transformed by the medium's current transformation. medium-draw-
points*
will call port-draw-points* in order to draw the points.

=> medium-draw-line* medium x1 y1 x2 y2 [Generic Function]


Page 108 Table of Contents Index Page 110
Chapters
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30
A, B, C, D, E