Russian Qt Forum
Ноябрь 24, 2024, 05:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Тормозит QGraphicsView. Пример - 40000 chips  (Прочитано 12994 раз)
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« : Август 21, 2008, 09:47 »

В QtDemo есть пример - 40000 chips. После запуска текст на чипах не прорисовываеться и чипы скролиться быстро. Если пошагого увеличивать картинку до тех пор пока не начнет прорисовываться текст и потом попробывать подвигать скрол - то чипы жутко тормозят. Я в своем приложении столкнулся с той-же проблемой. Мне кажеться что это из-за текста.
Как можно сделать, чтоб QGraphicsView не тормозил, если он отображает сцену с  элементами QGraphicsTextItem?
Может возможно преобразовать QGraphicsTextItem в примитивы линии и дули, тогда может не будет тормозить?
Записан
BaltikS
Гость
« Ответ #1 : Август 26, 2008, 12:27 »

У меня не тормозит, мне кажется дело в дровах или железяках....
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #2 : Август 29, 2008, 14:46 »

Цитировать
У меня не тормозит, мне кажется дело в дровах или железяках....

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

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

Сообщений: 3880


Просмотр профиля WWW
« Ответ #3 : Август 29, 2008, 18:56 »

неа не тормозит, совсем не тормозит.
AMD Sempron 2600
ОЗУ: 512 MB
NVidia GeForce 5200 (128 MB)
Windows 2000SP4

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

Юра.
kamre
Частый гость
***
Offline Offline

Сообщений: 233


Просмотр профиля
« Ответ #4 : Сентябрь 03, 2008, 06:26 »

Действительно, томозит! Правда только когда все повернуто на некоторый угол. Если не поворачивать, то не томозит при появлении текста.
Если включить OpenGL, то на 9600GT этих тормозов не появляется.

P.S. зато когда полный zoom out сделаешь - всгеда офигенно тормозит Улыбающийся
Записан
BaltikS
Гость
« Ответ #5 : Сентябрь 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 - тоже не тормозит!!! Подмигивающий
Записан
Karl-Philipp
Гость
« Ответ #6 : Сентябрь 15, 2008, 21:41 »

Celeron 1.1/512 ОЗУ/8mb Video встроенного - не тормозит   Улыбающийся
Записан
_OLEGator_
Гость
« Ответ #7 : Ноябрь 25, 2008, 12:36 »

Попробуй отображать текст вместо painter->drawText() так:

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

painter->fillPath(path, color);
Записан
juvf
Программист
*****
Offline Offline

Сообщений: 570


Просмотр профиля
« Ответ #8 : Февраль 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. ((
« Последнее редактирование: Февраль 14, 2009, 10:00 от juvf » Записан
Dendy
Гость
« Ответ #9 : Февраль 14, 2009, 11:06 »

Скорее всего дело не в Qt, а в иксах и драйвере OpenGL. Ускорение отрисовки через OpenGL имеет смысл только при наличии Direct Rendering, коего в драйвере nv нет. Вместо него используется программный драйвер Mesa, который существует только для совместимости OpenGL API и естесственно гораздо медленнее растрового движка Qt. Разница в тесте 40000 чипов наверняка из-за иксов.
Записан
sir_KIR
Гость
« Ответ #10 : Февраль 18, 2009, 21:16 »

Также полагаю, что дело не в Qt.
Вот под "ужасонаводящей" ОС МСВС (клон Linux бох знает какого года) ужасные тормоза начинаются при растягивании окна приложения на второй экран (двухмониторная видяха). Причем, после уменьшения до исходных размеров, тормоза уже не проходят до перезагрузки приложения )) Считаем, что дело в дровишках, а может и в иксах.

П.С. Кстати, если сталкивался с такой проблемой и знает как лечить - с меня пиво ).
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.083 секунд. Запросов: 24.