Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: juvf от Август 21, 2008, 09:47



Название: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: juvf от Август 21, 2008, 09:47
В QtDemo есть пример - 40000 chips. После запуска текст на чипах не прорисовываеться и чипы скролиться быстро. Если пошагого увеличивать картинку до тех пор пока не начнет прорисовываться текст и потом попробывать подвигать скрол - то чипы жутко тормозят. Я в своем приложении столкнулся с той-же проблемой. Мне кажеться что это из-за текста.
Как можно сделать, чтоб QGraphicsView не тормозил, если он отображает сцену с  элементами QGraphicsTextItem?
Может возможно преобразовать QGraphicsTextItem в примитивы линии и дули, тогда может не будет тормозить?


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: BaltikS от Август 26, 2008, 12:27
У меня не тормозит, мне кажется дело в дровах или железяках....


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: juvf от Август 29, 2008, 14:46
Цитировать
У меня не тормозит, мне кажется дело в дровах или железяках....

А одно из четырех окошек в "40000 чипах" растянуть на весь экран, потом увелич до тех пор, пока текст не начнет прорисовываться. И подвигай. Тормозит?

Я не думаю что это проблема в железе или в дровах. Пробывал на ЭВМ атлон-4600+ х2, 2 Гб озу, джефорс 8800. Пробывал в FreeBSD7.0 и в Windows XP. Результат одинаковый Я бы мог предположить что под FreeBSD дрова не те, но под винду - и винда лицинзеонная, и дрова родные.


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: lit-uriy от Август 29, 2008, 18:56
неа не тормозит, совсем не тормозит.
AMD Sempron 2600
ОЗУ: 512 MB
NVidia GeForce 5200 (128 MB)
Windows 2000SP4

по диспетчеру задач при постоянном перемещении chip.exe 12МБ(ОЗУ) 42МБ(виртуалки) 82%(проц)


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: kamre от Сентябрь 03, 2008, 06:26
Действительно, томозит! Правда только когда все повернуто на некоторый угол. Если не поворачивать, то не томозит при появлении текста.
Если включить OpenGL, то на 9600GT этих тормозов не появляется.

P.S. зато когда полный zoom out сделаешь - всгеда офигенно тормозит :)


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: BaltikS от Сентябрь 15, 2008, 10:35
Не тормозит,
Intel Core 2 Duo 6400,
2 Гб Оперативки
7300 Gt, 256Mb GeForce
Windows XP.

Дома проверил на
AMD Athlon 2500+
1 Gb/4200
ATI Radeon 9800SE, 128 Mb
Windows XP - тоже не тормозит!!! ;)


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: Karl-Philipp от Сентябрь 15, 2008, 21:41
Celeron 1.1/512 ОЗУ/8mb Video встроенного - не тормозит   :)


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: _OLEGator_ от Ноябрь 25, 2008, 12:36
Попробуй отображать текст вместо painter->drawText() так:

QPainterPath path;
path.addText(0, 0, textFont, text);

painter->fillPath(path, color);


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: juvf от Февраль 14, 2009, 09:58
в FreeBSD7.0 в некой программе есть второй процесс работающий с компортом, работающий параллельно xorg. Если двигать GUI программы то все ресурсы процессора заняты и комп не успевает работать с компортом. Обмен сбивается. Да и вообще как-то медленно происходит перерисовка окна QT-эшных приложений при изменении размера окна.

Поэксперементировал на одной эвм в 4-х ОС: атлон 5000+, gforce 7600gs, 2 Гб озу. Эксперементировал с qt demo/Demonstrations "4000 chips" и "Affine Transformations"

FreeBSD 7.0:

40000 chips - тормозит при появлении текста на чипах
Affine Transformations - ЖУТКО тормозит при нажатии "Use OpenGL"


Mandriva Free 2008.1 и Mandriva Flash 4G:

40000 chips - вообще не тормозит
Affine Transformations - подтормаживает при нажатии "Use OpenGL"


Windows XP Home:

40000 chips - тормозит при появлении текста на чипах
Affine Transformations - Вообще не тормозит, хоть использовать "Use OpenGL", хоть нет


Меня больше всего интересует FreeBSD. Почему на таком компе Qt тормозит? Может xorg как-то не так настроен? Почему OpenGL в юниксах тормозит, а винде нет?
В FreeBSD xorg руками настраевается, а в Mandriva автоматически. Разницу работы графики Linux и Windows я допускаю. Но вот Linux и FreeBSD - нет. Тaже xorg, тот же kde, тотже qt для х11, один и тотже видеодрайвер используется - nv. Почему такая разница? Мне кажется что xorg в Mandriva как-то хитро настроен поэтому 40000 чипов не тормозят. Может кто знает какие  хитрые настройки нужно сделать в FreeBSD, чтоб работало без тормозов?

ps что-то слишком большая разница в работе одной и той же программы на разных платформах. Возникают большие сомнения в кроссплатформенности Qt. ((


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: Dendy от Февраль 14, 2009, 11:06
Скорее всего дело не в Qt, а в иксах и драйвере OpenGL. Ускорение отрисовки через OpenGL имеет смысл только при наличии Direct Rendering, коего в драйвере nv нет. Вместо него используется программный драйвер Mesa, который существует только для совместимости OpenGL API и естесственно гораздо медленнее растрового движка Qt. Разница в тесте 40000 чипов наверняка из-за иксов.


Название: Re: Тормозит QGraphicsView. Пример - 40000 chips
Отправлено: sir_KIR от Февраль 18, 2009, 21:16
Также полагаю, что дело не в Qt.
Вот под "ужасонаводящей" ОС МСВС (клон Linux бох знает какого года) ужасные тормоза начинаются при растягивании окна приложения на второй экран (двухмониторная видяха). Причем, после уменьшения до исходных размеров, тормоза уже не проходят до перезагрузки приложения )) Считаем, что дело в дровишках, а может и в иксах.

П.С. Кстати, если сталкивался с такой проблемой и знает как лечить - с меня пиво ).