Russian Qt Forum
Ноябрь 25, 2024, 11:29
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
Qt 4.2 - QPainter::drawText, как ускорить?
Страниц: [
1
]
2
3
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Qt 4.2 - QPainter::drawText, как ускорить? (Прочитано 21399 раз)
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Qt 4.2 - QPainter::drawText, как ускорить?
«
:
Декабрь 05, 2006, 21:09 »
Сабж. QPainter::drawText довольно сильно тормозит. Есть ли возможность ускорить вывод текста?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Dendy
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #1 :
Декабрь 05, 2006, 22:48 »
Убрать антиалиасинг, трансформацию, полупрозрачньІе цвета текста.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #2 :
Декабрь 06, 2006, 09:47 »
Упс, не указал выше - все и так выставлено по минимуму. Рисуется таблица, заполняются ячейки текстом. Если развернута на весь экран - одна отрисовка занимает до 400 мс. Тачка не медленная, Атлон 2500... Причем пофиг, выводишь ты 1 символ в ячейке или 10 - скорость одинаковая...
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
C.H.
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #3 :
Декабрь 06, 2006, 10:28 »
а ты сразу на экране рисуешь или в памяти а потом на экран??
Записан
crocus
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #4 :
Декабрь 06, 2006, 11:48 »
Не флейма ради:
В стандартном примере textedit есть принтпревью, так вот оно тоже очень тормозит-может реализация в самой библиотеке тормозная???
Записан
ElderOrb
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #5 :
Декабрь 06, 2006, 11:55 »
Можно попробовать воспользоваться QPainter-ом от QGLWidget-а. Иначе для чего существует void QPainter::setRedirected ?
(Сам я так делать ни разу не пробовал, но где-то на форуме qtcenter.org проскакивала похожая мысль для ускорения отрисовки сложных виджэтов. )
Записан
Dendy
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #6 :
Декабрь 06, 2006, 12:10 »
Неужели тормозит и в рилизной сборке?
Записан
crocus
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #7 :
Декабрь 06, 2006, 12:16 »
-static -release тормозит пендыр!!!
Записан
Tonal
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #8 :
Декабрь 06, 2006, 12:57 »
Профилировать пробовал?
Точно тормозит именно drawText?
От видюхи не зависит?
Записан
Dendy
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #9 :
Декабрь 06, 2006, 16:37 »
Не поверю, пока не увижу код. Откройте в Ассистанте какую-нибудь тяжёлую страницу и бьІстро мотайте её ползунком. Тормоза наблюдаете? И я нет. Значит дело не в скорости отрисовки текста, а в чём-то другом.
Записан
crocus
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #10 :
Декабрь 06, 2006, 19:31 »
http://doc.trolltech.com/4.2/demos-textedit-printpreview-cpp.html
Попробуйте открыть в %QTDIR%\demos\textedit\release\textedit.exe любой документ .txt или .htm страниц на 20, откройте Print Preview и ,как вы говорите, просто помотайте ползунком туда-сюда - вы обалдеете от скорости.
И хотелось бы по этому вопросу узнать компетентное мнение
nEoN
!!!
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #11 :
Декабрь 06, 2006, 23:39 »
тормозит именно drawText, профилером смотрел. от видюхи не зависит.
ассистант - он же не текст печатает, а графику. т.е. все кеширует.
а у меня так низя
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Dendy
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #12 :
Декабрь 07, 2006, 00:53 »
Ассистант печатает не текст, а графику? А как вьІ обьясните динамическое изменение размеров окна Ассистанта? Конечно же происходит переразбиение структорированного текста, что и вьІзьІвает тормоза однократно. Но, в, вцелом, результат одинаковьІй - никаких тормозов при скроллировании текста, когда в drawText() подставляются готовьІе блоки.
Так что, дело не в рисовании текста, а в чём-то другом. Возможно есть прецендентьІ для проблем кеширования. Сам лично наблюдал тормоза при разбиении текста после изменения размеров текста Ассистанта (Cotrol + Скролл Вниз, потом Control + Скролл Вверх). Но само рисование работает на ура.
Записан
Tonal
Гость
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #13 :
Декабрь 07, 2006, 09:28 »
Цитата: "crocus"
http://doc.trolltech.com/4.2/demos-textedit-printpreview-cpp.html
Попробуйте открыть в %QTDIR%\demos\textedit\release\textedit.exe любой документ .txt или .htm страниц на 20, откройте Print Preview и ,как вы говорите, просто помотайте ползунком туда-сюда - вы обалдеете от скорости.
А ты в тот код заглядывал? ;-)
Они же там в paintEvent ВСЕ страницы полностью отрисовывают!
Понятно, что чем больше страниц, тем сильнее тормоза.
Тут любая система рисования загнётся.
Можно элементарно вычислить, какие страницы должны отображаться и показывать только их.
В примере этим просто не озадачились - минус тролям (хотя и маленький
)
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Qt 4.2 - QPainter::drawText, как ускорить?
«
Ответ #14 :
Декабрь 07, 2006, 15:28 »
Ассистант, он че делает - при ресайзе, заново все отрисовывает в кэш.
Это понятно, что потом работает быстро (при скроле). Но у меня проблема в том, что кэшировать нельзя - это таблица с кучей динамически изменяющихся данных. Т.е. каждые 50-100мс данные обновляются. А отрисовка занимает порядка 400-500мс на экран. Вот в чем лажа.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Страниц: [
1
]
2
3
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...