I have a program that has a thread that generates Expose
messages using XSendEvent
. A second thread receives the Expose
messages along with other messages (mainly input handling). The problem is that the sending thread sends the Expose
messages at a constant rate (~60Hz) but the receiving thread may be rendering slower than that. The X11 queue will get bogged down with extra Expose
messages, and any input handling messages will start fall way behind all those extra Expose
messages.
In Windows, this is not a problem because Windows will automatically coalesce all WM_PAINT messages into a single message. Is there any way to do this in X11, or some other way to solve this problem?
You can very easily coalesce any kind of event yourself with XCheckTypedEvent()
and friends.