Re[4]: GUI на GDI+ - высокая нагрузка на CPU
От: AlexBP  
Дата: 26.09.14 23:25
Оценка:
Здравствуйте, rean, Вы писали:

ABP>>С помощью программы Dependency Walker заметил, что Qt использует Windows GDI (gdi32.dll), а не GDI+. Значит GDI быстрее чем GDI+, или все же дело в обработке сообщений от окна


R>Сейчас все, что можно, внутри винды использует видеокарту, даже GDI. Потери времени могут быть только на обвязку и инициализации. А их можно и там и там вынести за код отрисовки. Сейчас лучше всего рисовать через Direct2D. Vista+. Если же нужно очень качественно рисовать наклонные линии, рекомендую Antigrain.


R>Что именно у вас не так, не понятно. Попробуйте логгировать отрисовку и потом найти узкие места с помощью Performance Counters. Весь возможный код инициализации, включая загрузку картинок и шрифтов, выносите за пределы кода отрисовок. Если все-равно все кажется неоптимальным, можно кешировать целые куски изображения и быстро кидать их по BitBlt.


R>PS. У меня на достаточно древнем ноутбуке Все окно Firefox при изменении размера окна и полной перерисовки жрет меньше одного ядра (30% CPU). Так что ищите у себя баг или неоптимальное использование ресурсов. Не должно быть так.


Инициализация в отрисовке ) нет конечно.
Про Direct2D уже сказал выше. Для GUI уже подключена платформа DirectX — 9 версия работает и в XP.
Кешировать нет смысла, когда перерисовывается только необходимый регион.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.