Graphics Reference
In-Depth Information
(A): The SystemInitialization function.
SystemInitialization () {
(A1): Define Application State
AllWorldBalls: A set of defined Balls, initialze to empty
HeroBall = null
DefiningNewHeroBall = false
(A2): Register Event Service Routines
A2S1: Application Specific User Events
GUISystem ::RegisterServiceRoutine( GUISystem :: LMBDown, LMBDownRoutine)
GUISystem ::RegisterServiceRoutine( GUISystem :: LMBDrag, LMBDragRoutine)
GUISystem ::RegisterServiceRoutine( GUISystem :: LMBUp, LMBUpRoutine)
GUISystem ::RegisterServiceRoutine( GUISystem :: RMBDown, RMBDownRoutine)
GUISystem ::RegisterServiceRoutine( GUISystem :: SliderBar, SliderBarRoutine)
A2S2: Application Define Event
GUISystem ::DefineTimerPeriod(SimulationUpdateInterval)
// Triggers TimerEvent every: SimulationUpdateInterval period
GUISystem ::RegisterServiceRoutine( GUISystem :: TimerEvent, ServiceTimer)
A2S3: Honor collaboration request from the GUI system
GUISystem ::RegisterServiceRoutine( GUISystem :: RedrawEvent, RedrawRoutine)
}
D: Event Service Routines.
// Left mouse button down service routine
D1: LMBDownRoutine (mousePosition)
HeroBall = CreateHeroBall(mousePosition)
DefiningNewHeroBall = true
D1L3 GUISystem ::GenerateRedrawEvent
// Left mouse button drag service routine
D2: LMBDragRoutine (mousePosition)
RefineRadiusAndVelocityOfHeroBall(mousePosition)
SetSliderBarsWithHeroBallVelocity()
GUISystem ::GenerateRedrawEvent
// Generates a redraw event
Listing 1.7. Event-driven ball-shooting program.
Search WWH ::




Custom Search