directx — аппаратное ускорение масштабирования изображения в окнах с использованием переполнения стека

Я должен масштабировать растровое изображение (например, от 1280 x 720 до 1920 X 180 и наоборот).

Я использую это масштабирование в захвате видео с экрана. Масштабирование на основе программного обеспечения потребляет много ресурсов ЦП и медленнее.

Есть ли аппаратное ускорение API или библиотеки для масштабирования?

Некоторые методы обсуждаются в теме Как использовать аппаратные видео скейлеры?. Но не окончательный вывод.

Необходима поддержка: Windows 7 и выше

2

Решение

Если у вас есть IDirect3DTexture9 изображения для масштабирования, вы можете использовать StretchRect.

В D3D11 нет эквивалентной функции, однако, если у вас есть ID3D11Texture2D из масштабируемого изображения вы можете просто создать цель рендеринга с желаемым целевым размером, полноэкранным квадратором и рендерить на цель с помощью простого шейдера, который просто выбирает исходную текстуру. Полученная цель рендеринга будет масштабированным изображением ввода. Примечание: этот полноэкранный четырехугольный метод также будет работать в D3D9.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]