QPainter время отрисовки |
Здравствуйте, гость ( Вход | Регистрация )
QPainter время отрисовки |
cerjo |
6.5.2015, 9:16
Сообщение
#1
|
||
Новичок Группа: Новичок Сообщений: 2 Регистрация: 6.5.2015 Пользователь №: 4378 Спасибо сказали: 0 раз(а) Репутация: 0 |
Добрый день!
Столкнулся с такой проблемой: унаследовал класс (TWidget) от QGLWidget, переопределил paintEvent, в нём QPainter-ом отрисовываю изображение. QTimer, связанный со слотом TWidget::update, "тИкает" каждые 16 мс (1000 мс / 60 Гц). На хостовой машине (Intel Core i5) отрисовка плавная и красивая. На целевой (Freescale i.MX6, CPU: Quad Core ARM Cortex A9, GPU: 3D - Vivante GC2000, 2D - Vivante GC320) машине FPS падает ~до 20-ти. Завёл QTime в начале paintEvent, по окончании вывожу QTime::elapsed, показывает 32 мс. Даже при пустом paintEvent, функция QPainter::end() занимает 32 мс. Можно ли как-нибудь уменьшить это время? Qt 5.4, хостовая ос Windows 7, целевая - QNX 6.6. Целевая машина пишет, что QOpenGLWidget не прикручен, посему наследуюсь от QGLWidget. P.S. Пробовал связку QGraphicsView + QGraphicsScene + QGraphicsItem-ы = 1-2 FPS. А при QGraphicsView::setViewPort(new QGLWidget()) - черный экран на целевой машине. twidget.h
twidget.cpp
Лог на хосте: Лог на целевой: |
||
|
|||
ViGOur |
7.5.2015, 9:57
Сообщение
#2
|
Мастер Группа: Модератор Сообщений: 3296 Регистрация: 9.10.2007 Из: Москва Пользователь №: 4 Спасибо сказали: 231 раз(а) Репутация: 40 |
Так а как QTimer связан с тем, что функция QPainter::end() выполняется долго? Мне кажется, даже если таймер врёт, тормоза отрисовки всё равно есть. Или я не правильно что-то понял? Я ошибся при написании имелось ввиду QTime.Может дело не в том, что долго выполняется, а округляется не в ту сторону, для примера вот код: при его выполнении наглядно видно, что Qt'шный вариант явно отстает:"Вывод"
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 12:53 |