We use draw-line* as an example here, but calling any of the drawing functions specified in 2.3, CLIM Drawing Functions and 2.4, Graphics Protocols results in the following series of function calls on an output recording stream:
A program calls draw-line* on arguments sheet , x1 , y1 , x2 , y2 , and perhaps some drawing options.
draw-line* merges the supplied drawing options into the sheet's medium, and then calls medium-draw-line* on the sheet.
The :around method for medium-draw-line* on the output recording stream is called. This creates an output record with all of the information necessary to replay the output record, if stream-recording-p is t . If stream-drawing-p is t , this then does a call-next-method .
The primary method for medium-draw-line* performs the necessary user transformations by applying the medium transformation to x1 , y1 , x2 , y2 , and the clipping region. Then it draws on the underlying window.
replay-output-record for a graphics displayed output record simply calls the medium drawing function (such as medium-draw-line* ) directly on the sheet ( not on the medium) with stream-recording-p set to nil and stream-drawing-p set to t .