LINUX.ORG.RU

Xlib. Отрисовка окна с текстом без XFlush, почему?

 


0

1

Пытался написать простую софтинку под Xlib, в один момент столкнулся с непониманием, моя софтинка начала рисовать окно с текстом без XFlush. Долго пытался понять в чём проблема, в итоге вот к чему пришел:

Вот это не будет рисовать окно, как и положено, собственно, ибо нету XFlush: https://bpaste.net/show/72f012c93b88

Но стоит загнать XDrawString в бесконечный цикл и через ~400 проходов окно появляется, текст тоже, всё работает! Почему? Я что-то не так делаю? Как делать правильно? (https://bpaste.net/show/b9c3ac51c96c)


Может тут дело в том, что если делать бесконечный цикл, буфер рано или поздно забивается, и оно само flush-ится?

SZT ★★★★★
()

https://bpaste.net/show/f04c53ec3c80 вот аналогичное поведение в случае если использовать XCB вместо xlib. Если закомментировать

    while (1) // <--
то ничего рисоваться не будет

SZT ★★★★★
()
Ответ на: комментарий от kostyl

О, дык это из-за XNextEvent похоже. Это нормальное поведение или я неправильно делаю? Оно всю логику ломает. (А первом примере таки переполнение, да.)

kostyl
() автор топика
Ответ на: комментарий от kostyl

тут буфер от одной строки забился? Как это работает?

man XNextEvent

If the event queue is empty, XNextEvent flushes the output buffer and blocks until an event is received.

gag ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.