Arguments: ( &rest position-variables) &body body
This macro and the related with-boxes and with-positions-and-boxes stack-allocate position and/or box objects to provide temporary objects without consing, thereby possibly reducing the time spent garbage collecting.
The objects are valid only through the dynamic
extent of the macro call, and unpredictable errors may occur if they
are referenced afterward. Note that now that Common Graphics is
multithreaded, the use of the alternative technique of placing
position and box constants in source code via the #. reader macro, as
in #.(make-position 0 0)
,
is now strongly discouraged due to potential
re-entrancy conflicts. Example:
(defun draw-diagonal-in-box (window box) ;; Avoids consing positions, as when calling box-top-left (with-positions (tpos1 tpos2) (draw-line window (nmake-position tpos1 (box-left box)(box-top box)) (nmake-position tpos2 (box-right box)(box-bottom box)))))
See About using multiple threads in the IDE in cgide.htm.
Common Graphics and IDE documentation is described in About Common Graphics and IDE documentation in cgide.htm.
The documentation is described in introduction.htm and the index is in index.htm.
Copyright (c) 1998-2000, Franz Inc. Berkeley, CA., USA. All rights reserved.
Created 2000.10.5.