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

ABP>>В сообщении WM_MOUSEMOVE просчитываю над какой кнопкой находится мышь, меняю картинку, если мышка над кнопкой и перерисовываю окно.


R>Видимо какой-то баг в обработке сообщений.


R>1. Очень похоже, что вы перерисовываете кнопку на каждый пиксел перемещения мышки. Таким образом, проход мышки под кнопкой будет сопряжен постоянной перерисовкой, пока мышка в движении.


Перерисовываю только тогда когда изменяется состояние кнопки.

R>2. Не понятно, для чего перерисовывать всё окно. В Win32 есть механизм отсечения, да и просто можно же определить, что именно стоит перерисовать, не затрагивая остальное.


Перерисовываю не все окно, а регион виджета.

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