xlib绘图线不会出现在事件循环之外

时间:2014-01-11 17:31:09

标签: c xlib

我在书中跟随一个例子,我有一个绘制线条的绘图功能。当我在XFlush()之前的事件循环之前放置它时没有绘制线条,但是如果我将它放在事件循环中,就像下面那样绘制线条。

while(1)
    {   
        XNextEvent(display, &report);
        if (report.type == Expose)
        {
            draw_lines(win1, gca, 300, 200);
        }
    }

任何人都可以向我解释为什么会这样吗?非常感谢。为什么我将函数放在事件循环中是否重要?

1 个答案:

答案 0 :(得分:0)

xlib似乎有些变化。看看我对this question及其引用的其他人的回答。

您可以先进行绘制和刷新,然后使用以下命令等待公开事件:

  /* catch expose events */
  XSelectInput(display, win, ExposureMask);

  /* wait for the expose event */
  XEvent ev;
  XNextEvent(display, &ev);