LINUX.ORG.RU

Анимация


0

0

Задачка: нужно сделать виджет вроде осциллографа, для отображения быстро меняющихся данных. Сама прога на qt/c++. Пробовал делать bitBlt, как в примере. Флики страшные, особенно когда виджет крупный. Видно, что бэкграунд окошка пытается прорисовываться. QCanvas работает, но неоправданно сильно грузит процессор. Я смотрел в сторону SDL, но там кажется нет способов прорисовки графических примитивов, нужны линии и текст для меток. Кто нибуть посоветует?

anonymous

Re: Анимация

поковыряй на предмет double-buffer extension (xdbe) ну и на opengl можешь глянуть, вдруг поможет

anonymous ()

Re: Анимация

Вариант - не перерисовывай bg, а рисуй XORом дважды.
Первый раз - старую картинку (она сотрется), второй раз - новую.
Для осциллограф-like картинок - в самый раз.

Die-Hard ★★★★★ ()

Re: Анимация

прорисовывается bg не самого виджета, а окна-parent, как отключить не знаю. А насчет xor - имхо простое mov - копирование должно быстрее быть, т.к. однократно. И все что под ним, все равно сотрет ;)

anonymous ()

Re: Анимация

mov-то быстрее, но если xor'ишь, то перерисовывать надо только точки, бэкграунд перерисовывать не нужно, поэтому моргать не должно.

HTH

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

anonymous ()
Ответ на: Re: Анимация от anonymous

Re: Re: Анимация

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

Элеменртарно разрешить этот вопрос на уровне логики рисовалки - т.е. не рисовать
дважды по одному месту.

Die-Hard ★★★★★ ()
Ответ на: Re: Анимация от anonymous

Re: Re: Анимация

> прорисовывается bg не самого виджета, а окна-parent, как отключить не знаю.
В Qt 8-0?
Тогда RTFM, извини. В Qtях на этот счет все в порядке. Сам много XORил,
и папы не мешались.


Die-Hard ★★★★★ ()

Re: Анимация

Можно попробовать fltk - я как-то делал на ней осциллограф.

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