Delayed execution

Delayed execution functions queue the command so that it can be batch-processed later.

The command remains in the command buffer until it's flushed and processed by a flushing execution function. A less frequent reason for flushing the command buffer is if it is full and can't accommodate the delayed execution function command. In this case, the command buffer is flushed, and any previously queued commands are processed. Once the command buffer is empty, the command from the delayed execution function is queued to be batch-processed later.

For example, screen_set_context_property_cv() is of type delayed execution. This API function simply queues the command for setting the specified context property. The value of the property isn't actually set until a flushing execution function is called, or until a delayed execution function is called when the command buffer is full.

The return value from delayed execution functions indicates whether or not the command was successfully queued for batch-processing later.