DirectX vs winapi BitBlt - перформанс вывода Bitmap

177
03 февраля 2020, 07:30

Есть ли приемущества по скорости вывода/нагрузке на пооцессор при выводе Bitmap (HBITMAP) используя нечто отличное от winapi (BitBlt), например DirectX.

Bitmap'ы статичные, но могут часто меняться в определенном режиме, примерно 2-5 раз в секунду, зависит от внешних факторов. Усреднённые параметры изображений примерно 1200х800, 24bpp, размер 3-4Мб в не сжатом виде.

Интересуют практические наблюдения, если смысл связываться для увеличения скорости реендеринга?

Возможно оптимальней будет использовать что-то отличное от DirectX?

Answer 1
  1. И GDI (BitBlt), и DirectX, и Direct2d являются подсистемами WinAPI.
  2. И GDI (частично), и DirectX, и Direct2d (частично) поддерживают аппаратное ускорение. У GDI был период после перехода на WDDM 1.0 при выпуске Windows Vista когда аппаратного ускорения не было совсем, однако с переходом на WDDM 1.1 его вернули. см Specifying GDI Hardware-Accelerated Rendering Operations. А Direct2D использует DirectX.
  3. Просто вывод битмапа 1200х800 несколько раз в секунду - это совершенно несущественная операция в плане вычислительных затрат. На самом деле большая часть времени будет тратится на передачу этой картинки и команд на GPU, чем непосредственно на отрисовку.
  4. Другое дело, что возможности DirectX намного шире. Плюс DirectX поддерживается в приложениях для магазина Windows.
  5. "увеличения скорости реендеринга" - а что, у вас сейчас есть проблемы со скоростью рендеринга? Если вопрос ставить таким образом, то необходимо приводить конкретный тест и конкретные результаты.
READ ALSO
Как настроить отладку кода на C++ в RDi версии 9.5? [закрыт]

Как настроить отладку кода на C++ в RDi версии 9.5? [закрыт]

Хотите улучшить этот вопрос? Переформулируйте вопрос, чтобы он соответствовал тематике «Stack Overflow на русском»

178
Захват видео с экрана

Захват видео с экрана

Задался таким вопросом, какую библиотеку лучше использовать, для захвата видео с экрана, чтобы была возможность реализовать захват при помощи...

141
Как отловить событие mousePressEvent на Esri :: ArcGISRuntime :: Graphic?

Как отловить событие mousePressEvent на Esri :: ArcGISRuntime :: Graphic?

Все события мыши protectedЯ пытался сделать это через eventFilter и используя QObject :: connect, но результат ложный

158
No matching function for call to 'Random'

No matching function for call to 'Random'

Почему не компилируется я же всё вроде бы (но это не точно) грамотно написал

146