Russian Qt Forum
Ноябрь 23, 2024, 22:31
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
2D и 3D графика
>
[Решено] BitBlt - а как на Qt?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: [Решено] BitBlt - а как на Qt? (Прочитано 8151 раз)
Alex_C
Гость
[Решено] BitBlt - а как на Qt?
«
:
Март 26, 2012, 16:56 »
Для быстрого вывода графики в своей программе использую ф-цию WinAPI BitBlt. Правильно ли я понимаю, что в Qt вместо нее, если хочу получить кросс-платформенное приложение, нужно использовать QPainter? Как у него со скоростью вывода?
«
Последнее редактирование: Март 27, 2012, 10:24 от Alex_C
»
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: BitBlt - а как на Qt?
«
Ответ #1 :
Март 26, 2012, 17:05 »
В QPainter включен double-buffering, что естественно сказывается на производительности.
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: BitBlt - а как на Qt?
«
Ответ #2 :
Март 26, 2012, 21:11 »
Цитата: Alex_C от Март 26, 2012, 16:56
Для быстрого вывода графики в своей программе использую ф-цию WinAPI BitBlt. Правильно ли я понимаю, что в Qt вместо нее, если хочу получить кросс-платформенное приложение, нужно использовать QPainter? Как у него со скоростью вывода?
Хреново, особенно с текстом
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: BitBlt - а как на Qt?
«
Ответ #3 :
Март 27, 2012, 07:42 »
Цитата: Igors от Март 26, 2012, 21:11
Цитата: Alex_C от Март 26, 2012, 16:56
Для быстрого вывода графики в своей программе использую ф-цию WinAPI BitBlt. Правильно ли я понимаю, что в Qt вместо нее, если хочу получить кросс-платформенное приложение, нужно использовать QPainter? Как у него со скоростью вывода?
Хреново, особенно с текстом
А причём здесь вывод текста и bitblt()?
Записан
Qt 5.11/4.8.7 (X11/Win)
Alex_C
Гость
Re: BitBlt - а как на Qt?
«
Ответ #4 :
Март 27, 2012, 08:24 »
Цитата: GreatSnake от Март 27, 2012, 07:42
А причём здесь вывод текста и bitblt()?
Потому как для быстрого вывода текста без мелькания сначала его TextOut на Bitmap в памяти, а затем BitBlt на нужный канвас.... Плохо это, что хреново. Хотя с другой стороны double-buffering и подразумевает сначала отрисовку в памяти, а затем уже и вывод картинки на экран.
Записан
LisandreL
Птица говорун
Offline
Сообщений: 984
Надо улыбаться
Re: BitBlt - а как на Qt?
«
Ответ #5 :
Март 27, 2012, 09:09 »
Цитата: Alex_C от Март 27, 2012, 08:24
сначала его TextOut на Bitmap в памяти, а затем BitBlt на нужный канвас...
Ну так никто не запрещает рисовать в QPixmap, а потом выводить drawPixmap.
Mandelbrot Example посмотрите.
Записан
Alex_C
Гость
Re: BitBlt - а как на Qt?
«
Ответ #6 :
Март 27, 2012, 10:24 »
Цитата: LisandreL от Март 27, 2012, 09:09
Ну так никто не запрещает рисовать в QPixmap, а потом выводить drawPixmap.
Mandelbrot Example посмотрите.
Отличный пример! Вопрос снят! Большое спасибо!
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: [Решено] BitBlt - а как на Qt?
«
Ответ #7 :
Март 27, 2012, 10:27 »
Интересно сравнить скорость (Qt) вывода "просто на экран" и "через QPixmap"
Записан
GreatSnake
Джедай : наставник для всех
Offline
Сообщений: 2921
Re: [Решено] BitBlt - а как на Qt?
«
Ответ #8 :
Март 27, 2012, 11:22 »
Цитата: Igors от Март 27, 2012, 10:27
Интересно сравнить скорость (Qt) вывода "просто на экран" и "через QPixmap"
А не так-то просто это сделать, т.к. double-buffering можно отключить только на X11 (см. Qt::WA_PaintOnScreen).
2
Alex_C
:
Qt всё уже за тебя сделала)
Записан
Qt 5.11/4.8.7 (X11/Win)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: [Решено] BitBlt - а как на Qt?
«
Ответ #9 :
Март 27, 2012, 11:34 »
Цитата: GreatSnake от Март 27, 2012, 11:22
А не так-то просто это сделать, т.к. double-buffering можно отключить только на X11 (см. Qt::WA_PaintOnScreen).
Иногда надо "тупенько"
Просто замеряем с/без QPixmap, с точки зрения пользователя, не вдаваясь ни в какие нюансы. На моей платформе (OSX) через QPixmap намного медленнее (не знаю почему)
Записан
Страниц: [
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...