LINUX.ORG.RU

Анимация


0

0
Задачка: нужно сделать виджет вроде осциллографа, для отображения быстро меняющихся данных. Сама прога на qt/c++. Пробовал делать bitBlt, как в примере. Флики страшные, особенно когда виджет крупный. Видно, что бэкграунд окошка пытается прорисовываться. QCanvas работает, но неоправданно сильно грузит процессор. Я смотрел в сторону SDL, но там кажется нет способов прорисовки графических примитивов, нужны линии и текст для меток. Кто нибуть посоветует?
anonymous
поковыряй на предмет double-buffer extension (xdbe) ну и на opengl можешь глянуть, вдруг поможет
anonymous
()
Вариант - не перерисовывай bg, а рисуй XORом дважды.
Первый раз - старую картинку (она сотрется), второй раз - новую.
Для осциллограф-like картинок - в самый раз.
Die-Hard ★★★★★
()
прорисовывается bg не самого виджета, а окна-parent, как отключить не знаю. А насчет xor - имхо простое mov - копирование должно быстрее быть, т.к. однократно. И все что под ним, все равно сотрет ;)
anonymous
()
mov-то быстрее, но если xor'ишь, то перерисовывать надо только точки, бэкграунд перерисовывать не нужно, поэтому моргать не должно.

HTH

PS. правда с xor'ом может быть косяк если у тебя в данных так получтися, что несколько данных на одну точку экрана :)

anonymous
()
Ответ на: комментарий от anonymous
anonymous (*) (2002-12-07 20:06:16.183):
> ...если у тебя в данных так получтися, что несколько данных на одну точку экрана :)
Проходили, знаем :)

Элеменртарно разрешить этот вопрос на уровне логики рисовалки - т.е. не рисовать
дважды по одному месту.
Die-Hard ★★★★★
()
Ответ на: комментарий от anonymous
> прорисовывается bg не самого виджета, а окна-parent, как отключить не знаю.
В Qt 8-0?
Тогда RTFM, извини. В Qtях на этот счет все в порядке. Сам много XORил,
и папы не мешались.


Die-Hard ★★★★★
()
Можно попробовать fltk - я как-то делал на ней осциллограф.
anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.