Russian Qt Forum
Ноябрь 24, 2024, 19:46
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
Animation Framework тормозит
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Animation Framework тормозит (Прочитано 16963 раз)
Sergey B.
Программист
Offline
Сообщений: 544
Re: Animation Framework тормозит
«
Ответ #15 :
Январь 23, 2010, 19:40 »
Core Duo e2160
XP SP3
Тормозов нет.
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: Animation Framework тормозит
«
Ответ #16 :
Январь 23, 2010, 21:05 »
в этом я не очень разбираюсь,
но что делает gdi32.lib в зависимостях проекта Qt+VS2008 по умолчанию?
Записан
xokc
Птица говорун
Offline
Сообщений: 976
Re: Animation Framework тормозит
«
Ответ #17 :
Январь 23, 2010, 23:25 »
gdi32.lib отвечает за GDI. А за GDI+ отвечает, как ни странно, gdiplus.dll.
Записан
Amigo_sa
Гость
Re: Animation Framework тормозит
«
Ответ #18 :
Январь 25, 2010, 11:33 »
Выкладываю исходники тестовой программки. Qt 4.6.0, VS2008. Конфигурация компа - core 2 duo E7200, видео интегрированное, Q33 Express Chipset Faminly.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Animation Framework тормозит
«
Ответ #19 :
Январь 25, 2010, 11:44 »
а что нужно увидеть? сверху резво бегает полоска, тормозов нет. 1280*800, macbook, intel gma
"тормоза" есть при резайзе, но оно и понятно - полоска двигается как приходят эвенты отрисовки, то есть если просто зажать и не ресайзить, то анимации нет вообще.
Записан
Amigo_sa
Гость
Re: Animation Framework тормозит
«
Ответ #20 :
Январь 25, 2010, 11:55 »
Цитата: Авварон от Январь 25, 2010, 11:44
а что нужно увидеть? сверху резво бегает полоска, тормозов нет. 1280*800, macbook, intel gma
"тормоза" есть при резайзе, но оно и понятно - полоска двигается как приходят эвенты отрисовки, то есть если просто зажать и не ресайзить, то анимации нет вообще.
Я мечтал увидеть плавный ресайз и плавную строку, при переключении состояний. Про ивенты отрисовки, я вставлял код, который ловил paintEvent, и они приходили стабильно через 16 мс, то есть, если не блокировать интерфес, то должно все рисоваться плавно, а почему то дергается
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: Animation Framework тормозит
«
Ответ #21 :
Январь 25, 2010, 16:29 »
Amigo_sa, потестировал и оно страшно тормозит,
видимо от того что вы делаете анимацию отдельно к каждому из 42 QLabel
думаю нужно сделать кэширование, сначала срендерить одну картинку всей сетки QLabel потом делать анимацию только одной срендериной картинки
после анимации поставить на место все QLabel
«
Последнее редактирование: Январь 25, 2010, 16:51 от IGHOR
»
Записан
Amigo_sa
Гость
Re: Animation Framework тормозит
«
Ответ #22 :
Январь 25, 2010, 16:59 »
Цитата: IGHOR от Январь 25, 2010, 16:29
Amigo_sa, потестировал и оно страшно тормозит,
видимо от того что вы делаете анимацию отдельно к каждому из 46 QLabel
думаю нужно сделать кэширование, сначала срендерить одну картинку всей сетки QLabel потом делать анимацию только одной срендериной картинки
после анимации поставить на место все QLabel
Спасибо большое за участие!
Как я понял, Layout действительно пересчитывает каждый раз координаты всех своих child-ов. Но не ожидал, что это так накладно.
Вопрос про кэширование: как его осущесвлять? сграбить в QImage всю сетку лэйблов, потом заменить сетку этой картинкой? Я не уверен, что CSS каждого лэйбла будет правильно отображаться, рамки всякие не должны ресайзится... Интересно, может, в qt как-нибудь по-другому реализовать быструю анимацию?
Забыл сказать, тестирую на Vistе.
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: Animation Framework тормозит
«
Ответ #23 :
Январь 25, 2010, 18:05 »
Amigo_sa, Нужно все проанализировать сначала, я не до конца понимаю что должна делать ваша программа,
может вам подойдет вариант собирать нужные цифри и нарисовать их на одной QPixmap и вовсе не загружать столько лабелов а анимировать и отображать только картинку?
если надо то перегенирировать цифры, на счет CSS то не понимаю зачем оно здесь? можно просто генерировать четыре картинки и пусть себе масштабируются QLabel a; a.setPixmap(..); a.setScaledContents(true);
И вообще самый быстрый вариант рисовать все в paintEvent а координаты и геометрию генерить по QTimeLine я так делал в презентации к своей дипломной
http://dl.getdropbox.com/u/860231/Presentation.rar
«
Последнее редактирование: Январь 25, 2010, 18:13 от IGHOR
»
Записан
Amigo_sa
Гость
Re: Animation Framework тормозит
«
Ответ #24 :
Январь 26, 2010, 18:52 »
Переписал свое приложение, используя svg графику вместо CSS. Стало работать намного красивее. Вывод такой, что CSS сильно тормозит.
Записан
crossly
Гость
Re: Animation Framework тормозит
«
Ответ #25 :
Январь 28, 2010, 18:37 »
покажешь??
Записан
panAlexey
Гипер активный житель
Offline
Сообщений: 864
Акцио ЗАРПЛАТА!!!!! :(
Re: Animation Framework тормозит
«
Ответ #26 :
Январь 28, 2010, 18:55 »
Цитата: Amigo_sa от Январь 26, 2010, 18:52
Вывод такой, что CSS сильно тормозит.
а то мы без тебя не знаем.
Записан
Win Xp SP-2, Qt4.3.4/MinGW.
http://trdm.1gb.ru/
Amigo_sa
Гость
Re: Animation Framework тормозит
«
Ответ #27 :
Январь 29, 2010, 15:46 »
Выкладываю анимацию с 1 картинкой svg. Я, конечно, сильно упростил, но похоже сетка из картинок и вправду ненужна.
Для просмотра понадобятся релизные Core4, Gui4 и Svg
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: Animation Framework тормозит
«
Ответ #28 :
Апрель 11, 2010, 23:05 »
Amigo_sa, я как-то делал бегущую строку на QTimer при том в этой же проге phonon рисовал видео и проц был загружен. С появлением 4.6.0 я решил перекинуть движок бегущей строки на QPropertyAnimation и в результате оно притормаживало больше чем c QTimer (c QTimer почти не заметно но иногда была видна задержка).
Если можете, потестируйте бегущую строку только с QTimer, мне интересно будет ли у вас разница в производительности.
Записан
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...