我有一个具有以下基本结构的程序:
while( true )
{
// get any X11 events
while( XPending( display ) > 0 )
{
// get an event using XNextEvent and do stuff with it
}
// draw to the display
}
该程序正在渲染一个opengl场景。我遇到的问题是,当我单击并开始在窗口上拖动时,
XPending
调用将获取块,直到我完成拖动序列,从而暂停了正在进行的动画。我可以通过让另一个线程发送Expose
事件并因此唤醒XPending
调用来解决此解决方案,但理想情况下,我希望拥有一个X函数来检查事件,但完全不会阻塞。 最佳答案
如果您只想处理收到的事件而不阻塞等待更多,请使用XEventsQueued(display, QueuedAlready)
而不是XPending(display)
。
关于c++ - XPending功能被阻止,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17371782/