Pattern: Global Update

You would use Request Update, but tracking many update requests slows the display. Instead of tracking individual update requests, update the entire display.

Pattern: Painter's Algorithm

Pages: 494-496

Rendering a single visual component in a GUI with correct occlusion requires significant interobject knowledge of boundaries. Draw all components without regard to occlusion, back to front, so each visual object will replace any part of the image behind it. The display must be rewritable. This will exact a heavy penalty in display cost.

Pattern: Consolidate Requests

Pages: 496-497

Processing individual update requests from user events can be disruptive and inefficient. Consolidate update requests generated by a single user event. If transition times are lengthy, this pattern can give the impression the system has failed to respond.

Pattern: Double Buffer

Updating components directly to the display causes display flicker. Render visible components to a hidden display, then use a single operation to update the visible display.

Page Flip may be appropriate if large areas of the display will be updated each frame.

Pattern: Page Flip

Pages: 501

You're using Global Update. You would use Double Buffer, but it's inefficient. Swap the active display buffer. Rendering will alternate between the two buffers. While one is visible, the other can be redrawn.