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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.