[net.micro.mac] Question on QuickDraw pictures

dubois@uwmacc.UUCP (Paul DuBois) (03/21/86)

Is it possible to accurately erase a QuickDraw picture?

This is not (I think) as simple a question as it sounds.  When you call
OpenPicture, you pass a rectangle which is used as a picture frame.
However, it is not used as a frame in the sense of a bounds rect, that
is, as "a boundary outside of which no drawing can be done", since you
can draw anywhere you like and it will show up when you replay the
picture.  It *is* used for scaling on playback, e.g., if you call
DrawPicture with the picture handle, and a rectangle with sides twice
as long as the picture frame, the resulting picture will be 4 times as
big as the original (2x2).

Thus you cannot simply EraseRect with the rectangle passed to
DrawPicture since you don't really know the bounds of the picture.  Nor
can you draw the picture, then draw it again after setting the pen to
xor mode (I tried it).  I also tried bracketing all the drawing calls
during picture formation with picture comments, then installing my own
capture proc for picture comments, and setting the pen mode during
picture playback.  That didn't work either.

Of course, in retrospect I now realize that these attempts were
tremendously naive, but I'm still curious.  Can it be done?  How do you
do it, (short of installing capture procs to intercept every single
QuickDraw call during picture playback)?

-- 
                                                                    |
Paul DuBois     {allegra,ihnp4,seismo}!uwvax!uwmacc!dubois        --+--
                                                                    |
Doth the hawk fly by thy wisdom, and stretch her wings              |
toward the south?                        Job 39:26