DIRECTORY
BufferedRefresh, GGGravity, GGInterfaceTypes, GGModelTypes, Imager;

GGRefresh: CEDAR DEFINITIONS =
BEGIN

BoundBox: TYPE = GGModelTypes.BoundBox;
FeatureData: TYPE = GGGravity.FeatureData;
Slice: TYPE = GGModelTypes.Slice;
SliceDescriptor: TYPE = GGModelTypes.SliceDescriptor;
GGData: TYPE = GGInterfaceTypes.GGData;
Outline: TYPE = GGModelTypes.Outline;
Sandwich: TYPE = BufferedRefresh.Sandwich;
SelectionClass: TYPE = GGInterfaceTypes.SelectionClass;
Sequence: TYPE = GGModelTypes.Sequence;
Traj: TYPE = GGModelTypes.Traj;

CreateSandwich: PROC [] RETURNS [sandwich: Sandwich];

ActionAreaPaint: PROC [screen: Imager.Context, whatHasChanged: ATOM, ggData: GGData];
MoveToOverlay: PROC [sliceD: SliceDescriptor, ggData: GGData];
MoveJointsToOverlay: PROC [traj: Traj, ggData: GGData];
RemoveJointsFromOverlay: PROC [traj: Traj, ggData: GGData];
MoveToBackground: PROC [sliceD: SliceDescriptor, ggData: GGData];
MoveAllSelectedToOverlay: PROC [ggData: GGData, selectClass: SelectionClass];
MoveAllSelectedToBackground: PROC [ggData: GGData];
MoveOverlayToBackground: PROC [ggData: GGData];
EmptyOverlay: PROC [ggData: GGData] RETURNS [BOOL];
SplitBackgroundAndOverlay: PROC [ggData: GGData, restoreBox: BoundBox];
NoteNewForeground: PROC [alignObjects: LIST OF FeatureData, ggData: GGData];
UpdateForegroundForMotion: PROC [ggData: GGData];
PaintEntireScene: PROC [screen: Imager.Context, ggData: GGData, showColors: BOOL];
InterpressEntireScene: PROC [dc: Imager.Context, ggData: GGData];
SnapShot: PROC [dc: Imager.Context, ggData: GGData];

END.
����GGRefresh.mesa
Last edited by Bier on March 24, 1987 11:18:38 pm PST
Contents:  All painting actions in Gargoyle are called thru this interface.
Pier, May 12, 1987 3:47:27 pm PDT

whatToDo will be an atom describing a painting action such as $EraseControlPoint, $PaintControlPoint, $EraseAllControlPoints, $EraseAll, $PaintEntireScene, or $PaintTrajectory.  A pointer to the particular object to be repainted will be stored in ggData for now.
We envision a scheme where ActionAreaPaint may actually queue up painting jobs and attempt optimizations on the queue.

This entity is now on the overlay plane (for dragging or rubberbanding).  The entity may be an outline, a slice, or the caret.  If a Traj or Sequence is passed, the whole outline to which they belong will be moved.
  A trajectory in the overlay plane is interpreted to mean that the trajectory's joints are to be painted on the overlay plane (for use in selection feedback).
This entity is now on the background (normal plane), staying put.  The entity may be an outline, a slice, the caret, or special alignment lines and symmetry tools.

See GGRefreshImpl for the actual refreshing procedures.
Drawing Entities
Like InterpressEntireScene except it only works while a mouse action is in progress.  For action shots.
Ê��˜�Ihead1™J™5™KIcode™!—J™�šÏk	˜	JšœC˜CJ˜�—Jšœœœ˜Jš˜˜�Lšœ
œ˜'Lšœ
œ˜*Jšœœ˜!Jšœœ ˜5Jšœœ˜'Jšœ	œ˜%Jšœ
œ˜*Jšœœ#˜7Jšœ
œ˜'Jšœœ˜—J˜�JšÏnœœœ˜5J˜�šžœœ*œ˜UJšœ†™†Jšœv™vJ™�—šž
œœ+˜>JšœÖ™Ö—šžœœ˜7JšœŸ™Ÿ—Jšžœœ˜;šžœœ+˜AJšœ£™£—Jšžœœ/˜MJšžœœ˜3Jšžœœ˜/Jšžœœœœ˜3Jšžœœ(˜GJšžœœœœ˜Lšžœœ˜1J™�—J™7Ihead2™Jšžœœ6œ˜RJšÐbnœœ&˜Ašžœœ&˜4L™g—J˜�Jšœ˜—�…—������
6��