Execution timeliness (immediate versus delayed operation) in Windowing API

With the exception of a few Windowing API APIs, most functions don't execute immediately. These commands are batch-processed on the client side until they're flushed from the command-buffer either explicitly or indirectly. Batch-processing these commands, means that communication between the client and the server is reduced to fewer, larger messages. This also provides an easy way to submit a large number of commands in one atomic operation.

Each Windowing API function can be categorized based on whether it executes immediately or whether it is delayed. Additionally, the Windowing API members that execute immediately can either flush any delayed commands or not. Finally, the functions that flush any accumulated commands may or may not cause the contents on the display to change.

It's important to understand this distinction between each function type, and to understand how and when these function calls will execute in the scope of your Windowing API application. In the included API reference, each function is marked with a given type. Each type is described in greater detail in this chapter.