2016-06-08 5 views
2

Я портирую приложение Windows, а некоторые понятия неясны. Например, когда я вывожу некоторый текст в окне я использую следующий код псевдо:Когда я рисую на окнах X11, я сразу вижу это?

(create a window) 
... 
hdc=GetDC(the window) 
TexOut("Hello world") 
ReleaceDC(my hdc etc) 
... 
while (1) 
    some code to handle stuff 

В точке ReleaseDC мой текст отображается на экране. При использовании X11/Xlib на linux я не получаю ничего до обработки цикла событий. Например:

(create a window) 
... 
TexOut("Hello world") 
... 
while (1) 
    some code to handle stuff 
    if (expose etc) 
     XDrawStrin("Hi there") 
.., 

В приведенном выше примере показан только «Привет, там». Как мне получить «Hello world», чтобы показать также?

+0

'XFlush' должен быть ответ. –

ответ

3

Как отмечено в комментарии, XFlush является правильным ответом. Если вы хотите быть уверенным, что обновления экрана были сделаны, прежде чем перейти к еще одной интересной задаче, XSync может быть улучшением.

Дальнейшее чтение: