Russian Qt Forum
Ноябрь 24, 2024, 03:45
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
QGraphicsView тормозит в Linux
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QGraphicsView тормозит в Linux (Прочитано 7802 раз)
IGHOR
Крякер
Offline
Сообщений: 390
QGraphicsView тормозит в Linux
«
:
Март 28, 2008, 03:13 »
Я сделал прогу на Qt4.3.4, компилил и дебаг делал под виндой с Visual Studio 2005.
Генерирую с помощью QGraphicsView+QGraphicsScene список что сочитает фотографии и текст.
Под виндой все работает супер!
А скомпилил под линуксом то при скролинге очень дергается список, тогда когда в QGraphicsView видно картинки.
Как оптимизировать это ?
Какие настройки ускорят QGraphicsView ?
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: QGraphicsView тормозит в Linux
«
Ответ #1 :
Март 31, 2008, 03:36 »
Я нашел причину по какой оно тормозит..
Это когда применить scale() к любому QPixmapItem и при рендеринге его QGraphicsView очень тормозит.
Это баг Qt ? почему оно тормозит ?
Записан
Tonal
Гость
Re: QGraphicsView тормозит в Linux
«
Ответ #2 :
Март 31, 2008, 06:59 »
Потому что scale для Pixmap изрядно не дешёвая операция.
Тебе оно точно надо?
Может сначала все Pixmap-ы отмасштабировать в нужный размер, а потом уже такие показывать?
Записан
QDgara
Гость
Re: QGraphicsView тормозит в Linux
«
Ответ #3 :
Март 31, 2008, 13:37 »
Или сделай не реалтайм скейл.
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: QGraphicsView тормозит в Linux
«
Ответ #4 :
Март 31, 2008, 16:31 »
Есть 6 фоток, они уменьшеного размера.
При клике на них мышкой сделал анимацию плавного увеличения с полетом по (y=x*x) дуге, все это делается с помощью timeline связаного с QPixmap'ом используя scale...
Цитата: Tonal от Март 31, 2008, 06:59
Потому что scale для Pixmap изрядно не дешёвая операция.
Тебе оно точно надо?
Может сначала все Pixmap-ы отмасштабировать в нужный размер, а потом уже такие показывать?
а масштабировать 100 кадров картинок будет длинная задержка..
фотки грузятся в динамическом режиме, часто перегружаются.
Цитата: QDgara от Март 31, 2008, 13:37
Или сделай не реалтайм скейл.
Это как ?
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: QGraphicsView тормозит в Linux
«
Ответ #5 :
Март 31, 2008, 16:55 »
Можно немного оптимизировать работу с набором пиксмапов... Смасштабированные фотки складывать в QPixmapCache и доставать их потом уже из него. Т.е. фактически, масштабирование будет происходить один раз для конкретного размера. Работа через QPixmapCache должна увеличить производительность
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Tonal
Гость
Re: QGraphicsView тормозит в Linux
«
Ответ #6 :
Март 31, 2008, 17:16 »
transformMode = Qt::FastTransformation?
Можно попробовать разбить твою анимацию на несколько частей. Первый кадр каждой части предвычислить, а остальные рассчитывать.
Ну и закешировать те, которые уже масштабировал.
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: QGraphicsView тормозит в Linux
«
Ответ #7 :
Март 31, 2008, 18:07 »
Оно тормозит не при каждом использовании scale,
а после первого.
Пример:
Кинул фотку QGraphicsPixmap, компилю, смотрю, отображается нормально.
Далее применяю к этому QGraphicsPixmap scale(0.9,0.9) и в проге больше это не трогаю, компилю,
запускаю прогу и когда скролинг QGraphicsVeiw доходит до отображения этого QGraphicsPixmap то наченает очень тормозить QGraphicsVeiw и все что в нем (гдето 3 фпс). И так только на Линуксе, под виндой все в норме.
Комп на каком тестирую: Intel 2.2 Dual Core, 4096 Mb DDR2, GeForce 8600GT 256 MB.
«
Последнее редактирование: Март 31, 2008, 18:09 от IGHOR
»
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: QGraphicsView тормозит в Linux
«
Ответ #8 :
Март 31, 2008, 22:52 »
Цитата: Tonal от Март 31, 2008, 17:16
transformMode = Qt::FastTransformation?
Можно попробовать разбить твою анимацию на несколько частей. Первый кадр каждой части предвычислить, а остальные рассчитывать.
Ну и закешировать те, которые уже масштабировал.
Это не помогло..
видимо один выход.. вручную кадры делать..
Записан
vaprele07
Гость
Re: QGraphicsView тормозит в Linux
«
Ответ #9 :
Апрель 01, 2008, 02:58 »
На каждый элемент сцены можно установить размер кэша, еще можно задать моду кэшировать задний фон.
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: QGraphicsView тормозит в Linux
«
Ответ #10 :
Апрель 02, 2008, 05:52 »
Цитата: vaprele07 от Апрель 01, 2008, 02:58
На каждый элемент сцены можно установить размер кэша, еще можно задать моду кэшировать задний фон.
Можно пример ?
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...