-
repaint_scheduled is actually cleverly a quad-state, disguised as a boolean. There are four possible conditions for the repaint loop to be in at any time: - loop idle; no repaint will occur until specifically requested, which may be never (repaint_scheduled == 0) - loop schedule to begin: the loop was previously idle, but due to a repaint-schedule request, we will call the start_repaint_loop hook in the next idle task - repaint scheduled: the compositor has definitively scheduled a repaint request for this output, which will occur in fixed time - awaiting repaint completion: the backend has not yet signaled completion of the last repaint request, and the compositor will not schedule another until it does so All but the first condition were previously conflated as repaint_scheduled == 1, but break them out into separate conditions to aid clarity, backed up by some asserts. Signed-off-by: Daniel Stone <daniels@collabora.com> Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
05df8c16