GGDrawProcess.mesa
Last edited by Bier on January 6, 1986 11:22:02 pm PST
Copyright © 1985 by Xerox Corporation. All rights reserved.
Contents: A flexible setup for processing mouse input as fast as you can (but no faster). I will use it to synchronize my mouse point processing with the mousepoint. If the processing algorithms become faster, this procedure will still do the right thing.
Pier, December 6, 1985 10:01:30 am PST
DIRECTORY
Menus, GGBasicTypes, GGInterfaceTypes, Rope;
GGDrawProcess: CEDAR DEFINITIONS =
BEGIN
GargoyleData: TYPE = GGInterfaceTypes.GargoyleData;
Point: TYPE = GGBasicTypes.Point;
EventProc: TYPE = PROC [event: LIST OF REF ANY, gargoyleData: GargoyleData];
MouseEventProc: TYPE = PROC [input: LIST OF REF ANY, gargoyleData: GargoyleData, worldPt: Point];
QueueInputAction: PROC [callBack: MouseEventProc, inputAction: LIST OF REF ANY, worldPt: Point, gargoyleData: GargoyleData];
Queues the paint action and returns immediately. The action is guaranteed to be done eventually (unless the queue overflows).
QueueOrBashInputAction: PROC [callBack: MouseEventProc, inputAction: LIST OF REF ANY, worldPt: Point, gargoyleData: GargoyleData];
Queues the paint action and returns immediately. If this paint action is right behind another of the same type, it replaces it.
QueueInputActionNoPoint: PROC [callBack: EventProc, inputAction: LIST OF REF ANY, gargoyleData: GargoyleData];
For paint actions generated from menu points (i.e. not from mouse points. Behaves like QueuePaintAction.
QueueOrBashInputActionNoPoint: PROC [callBack: EventProc, inputAction: LIST OF REF ANY, gargoyleData: GargoyleData];
For paint actions generated from menu points (i.e. not from mouse points. Behaves like QueueOrBashPaintAction.
QueueInputActionAndWait: PROC [callBack: MouseEventProc, inputAction: LIST OF REF ANY, worldPt: Point, gargoyleData: GargoyleData];
Queues the paint action, and does not return until it is accomplished. Useful when so many calls are planned that the paint queue is sure to overflow with QueuePaintAction.
Restart: PROC [];
OutputLog: PROC [];
LogRawMouse: PROC [point: Point];
OpenSessionLog: PROC [fileName: Rope.ROPE];
CloseSessionLog: PROC [];
Creates a new draw process. Call this procedure if a bug in the draw process forces it to be aborted.
END.