All Manuals > CAPI User Guide and Reference Manual > 13 Drawing - Graphics Ports

13.3 Graphics state

The graphics-state object associated with each port holds values for parameters such as foreground, background, operation, thickness, scale-thickness, mask and font which affect graphics ports drawing to that port.

The full set of parameters is described under graphics-state.

13.3.1 Setting the graphics state

The graphics state values associated with a drawing function call are set by one of three mechanisms.

  1. Enumeration in the drawing function call. For example:
    (draw-line port 1 1 100 100  
               :thickness 10
               :scale-thickness nil
               :foreground :red)
    
  2. Bound using macros such as with-graphics-state. For example:
    (with-graphics-state (port :thickness 10
                               :scale-thickness nil
                               :foreground :red)
      (draw-line port 1 1 100 100)
      (draw-rectangle port 2 2 40 50 :filled t))
    

    For common cases of locally changing the transform in the graphics state, there are specific macros:

  3. Set by the set-graphics-state function. For example:
    (set-graphics-state port :thickness 10
                        :scale-thickness nil
                        :foreground :red)
    

The first two mechanisms change the graphics state temporarily. The last one changes it permanently in port, effectively altering the "default" state.


CAPI User Guide and Reference Manual (Macintosh version) - 01 Dec 2021 19:31:22