Russian Qt Forum
Ноябрь 25, 2024, 12:34
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
QPainter в негуёвом потоке
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: QPainter в негуёвом потоке (Прочитано 4965 раз)
QCasper
Гость
QPainter в негуёвом потоке
«
:
Февраль 07, 2007, 14:42 »
Мне нужно рисовать QPainter'ом поток картинок, из которых в дальнейшем строится анимация. Чтобы никакие внешние воздействия, то как юзер потягал окно, не тормозили это дело, я решил делать это в отдельном потоке. QPainter орет, что мол варнинг, не стоит рисовать в негуёвом потоке. Как же быть?
Записан
Tonal
Гость
QPainter в негуёвом потоке
«
Ответ #1 :
Февраль 07, 2007, 15:33 »
Может можно QMovie подпрячь?
Записан
QCasper
Гость
QPainter в негуёвом потоке
«
Ответ #2 :
Февраль 07, 2007, 15:35 »
Цитата: "Tonal"
Может можно QMovie подпрячь?
А в чем оно может помочь. Дело в том, что анимация не обязательно выводится на окно. Она может выводиться напрямую на видеокарту или в файл
Записан
QCasper
Гость
QPainter в негуёвом потоке
«
Ответ #3 :
Март 12, 2007, 09:40 »
Тема все еще актуальна. Хочу вопрос немного по другому поставить.
Кто может грамотно объяснить мне, почему опасно использовать QPainter в негуевом потоке?
Записан
ElderOrb
Гость
QPainter в негуёвом потоке
«
Ответ #4 :
Март 12, 2007, 12:53 »
Насколько я понимаю дело в поддержке двойной буфферизации и наличии backing-store (глобальных кэширующих пиксмэпов по штуке на каждое top-level окно, необходимых для быстрой отрисовки сложных виджэтов при их перетягивании).
Двойная буфферизация представляет собой отрисовку в память (в QImage или QPixmap в случае с Qt) с последующим копированием этого куска памяти в контекст видеоустройства и условно может быть поделена на 3 фазы.
1. начало отрисовки (подготовка внеэкранного буфера)
2. отрисовка во внеэкранный буфер
3. конец отрисовки
Вышенаписанное может быть потокобезопасным но только если защищено элементами синхронизации, а это дегрэйд перфоманса. А перфоманс - это наше всё. Возможно если сильно поизвращаться можно обойтись и без элементов синхронизации и потери производительности, что и собираются сделать тролли в 5-ом Qt. Поживём - увидим как. ж)
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...