C xlib绘图线不会出现在事件循环之外
我在一本书中举了一个例子,我有一个画线的绘图函数。当我将其放置在XFlush()之前的事件循环之前时,不会绘制线条,但如果我将其放置在事件循环中,如下面所示,则会绘制线条C xlib绘图线不会出现在事件循环之外,c,xlib,C,Xlib,我在一本书中举了一个例子,我有一个画线的绘图函数。当我将其放置在XFlush()之前的事件循环之前时,不会绘制线条,但如果我将其放置在事件循环中,如下面所示,则会绘制线条 while(1) { XNextEvent(display, &report); if (report.type == Expose) { draw_lines(win1, gca, 300, 200); }
while(1)
{
XNextEvent(display, &report);
if (report.type == Expose)
{
draw_lines(win1, gca, 300, 200);
}
}
有人能解释一下为什么会发生这种情况吗?多谢。为什么将函数放在事件循环中与否很重要?xlib中似乎发生了一些变化。看看我的答案和它引用的其他答案 您可以先进行绘制和刷新,然后使用以下命令等待曝光事件:
/* catch expose events */
XSelectInput(display, win, ExposureMask);
/* wait for the expose event */
XEvent ev;
XNextEvent(display, &ev);
抱歉,为了澄清问题,当我将draw_lines()放在事件循环的外部时,我删除了事件循环中与事件相关的部分。