我正在遵循书中的示例,并且我有一个绘制线条的绘图函数。当我将其放置在 XFlush() 之前的事件循环之前时,不会绘制任何线条,但是如果我将其放置在事件循环中,如下所示,则会绘制线条。
while(1)
{
XNextEvent(display, &report);
if (report.type == Expose)
{
draw_lines(win1, gca, 300, 200);
}
}
谁能向我解释一下为什么会发生这种情况?非常感谢。为什么我是否将函数放入事件循环中很重要?
最佳答案
xlib 中似乎发生了一些变化。看看我对this question的回答以及它引用的其他内容。
您可以先进行绘制和刷新,然后等待公开事件:
/* catch expose events */
XSelectInput(display, win, ExposureMask);
/* wait for the expose event */
XEvent ev;
XNextEvent(display, &ev);
关于c - xlib 绘图线不会出现在事件循环之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21065504/