Изменение размера текстуры перед отправкой в ​​SinkWriter SharpDX

Я работаю над приложением для записи экрана. Моя проблема в том, что мне нужно изменить размер Texure2d перед созданием образца с помощью CreateDXGISurfaceBuffer. Я новичок в Mediafoundation, и, прочитав документацию, я не смог найти ни одного образца кода на веб-сайте. Я использую IDXGIOutput1::DuplicateOutput для получения текстуры экрана. Есть ли лучший способ изменить размер текстуры без ущерба для производительности?


person kripto    schedule 13.06.2018    source источник
comment
Вы имеете в виду интерполяцию содержимого текстуры или просто изменение размеров текстуры?   -  person user7860670    schedule 13.06.2018
comment
Это реальный сценарий. Я беру полноэкранное изображение рабочего стола и сохраняю его в текстуру с точным размером разрешения экрана. то, что мне нужно сделать сейчас, это изменить размер текстуры, прежде чем делать образец медиа-основы. Это похоже на растеризацию текстуры с новым измерением. Может быть больше оригинала или меньше. Я считаю, что Video Processor MFT — это решение, но я не знаю, с чего начать, потому что я впервые работаю с Media Foundation.   -  person kripto    schedule 14.06.2018


Ответы (1)


Video Processor MFT может масштабировать ваши текстуры. Когда вы используете его в режиме с поддержкой Direct3D 11, он масштабируется с использованием графического процессора. Вы кормите IMFSample текстурами и получаете IMFSample с масштабированными текстурами.

Несмотря на то, что это неполный пример, это фрагмент кода может дать представление о задействованных методах интерфейса.

Вы также найдете похожие вопросы здесь, в StackOverflow:

person Roman R.    schedule 13.06.2018