2014-01-11 65 views
0

我正在關注一本書中的示例,並且我有一個繪製線條的繪圖函數。當我將它放在XFlush()之前的事件循環之前時,沒有繪製線條,但是如果將它放置在下面的事件循環中,則會繪製線條。xlib繪製線不會出現在事件循環外

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

任何人都可以向我解釋爲什麼會發生這種情況?非常感謝。爲什麼我把這個函數放在事件循環中還是不重要?

+0

對不起,只是爲了澄清一些事情我刪除事件循環當我把draw_lines的事件相關部分()在它之外。 – sandbucket

回答

0

xlib中的某些東西似乎發生了變化。看看我的回答this question和其他人引用。

你可以做平齊平,然後再等待與暴露事件:

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

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

kk非常感謝! – sandbucket