我在书中跟随一个例子,我有一个绘制线条的绘图功能。当我在XFlush()之前的事件循环之前放置它时没有绘制线条,但是如果我将它放在事件循环中,就像下面那样绘制线条。
while(1)
{
XNextEvent(display, &report);
if (report.type == Expose)
{
draw_lines(win1, gca, 300, 200);
}
}
任何人都可以向我解释为什么会这样吗?非常感谢。为什么我将函数放在事件循环中是否重要?
答案 0 :(得分:0)
xlib似乎有些变化。看看我对this question及其引用的其他人的回答。
您可以先进行绘制和刷新,然后使用以下命令等待公开事件:
/* catch expose events */
XSelectInput(display, win, ExposureMask);
/* wait for the expose event */
XEvent ev;
XNextEvent(display, &ev);