Directx 调整纹理2D SharpDX的大小

Directx 调整纹理2D SharpDX的大小,directx,sharpdx,ms-media-foundation,dxgi,Directx,Sharpdx,Ms Media Foundation,Dxgi,如何调整SharpDX的纹理2D?我使用SharpDX复制屏幕,并使用MediaFoundation将纹理编码到视频文件中。我的问题是,当我将一个应用程序打开到全屏时,它的分辨率与系统分辨率不同,我的录音中出现了一个空白屏幕。有没有更好的方法可以在编码到mediafoundation之前调整纹理大小而不影响性能?我使用硬件加速。谢谢。 这取决于你如何使用媒体基础,但是你可以使用显式的。如果使用IMFMediaSession/IMFTopology,则需要将此MFT添加到拓扑中。或者,如果使用Si

如何调整SharpDX的纹理2D?我使用SharpDX复制屏幕,并使用MediaFoundation将纹理编码到视频文件中。我的问题是,当我将一个应用程序打开到全屏时,它的分辨率与系统分辨率不同,我的录音中出现了一个空白屏幕。有没有更好的方法可以在编码到mediafoundation之前调整纹理大小而不影响性能?我使用硬件加速。谢谢。

这取决于你如何使用媒体基础,但是你可以使用显式的。如果使用IMFMediaSession/IMFTopology,则需要将此MFT添加到拓扑中。或者,如果使用Sink Writer,则使用此MFT初始化和处理样本。在这种情况下,您需要使用向MFT提供DX管理器

此MFT仅在Windows 8及更高版本上可用。因此,如果您需要支持较旧的Windows版本,您可以使用,但它不是硬件加速的


调整纹理大小的另一个选项是创建所需大小的渲染目标,并将纹理绘制到该目标上。之后,你需要将渲染目标输入到编码器。

这取决于你如何使用媒体基础,但是你可以使用显式的。如果使用IMFMediaSession/IMFTopology,则需要将此MFT添加到拓扑中。或者,如果使用Sink Writer,则使用此MFT初始化和处理样本。在这种情况下,您需要使用向MFT提供DX管理器

此MFT仅在Windows 8及更高版本上可用。因此,如果您需要支持较旧的Windows版本,您可以使用,但它不是硬件加速的


调整纹理大小的另一个选项是创建所需大小的渲染目标,并将纹理绘制到该目标上。之后,您需要将该渲染目标提供给编码器。

Hi Vulvrit感谢您的回复。最后一个选项正是我想要的,但我在网上找不到任何关于如何正确操作的源代码。我是d3d编程新手,还在学习。有时候我发现C++编写的代码,我只是把它转换成C语言。是的,我使用MftMyAdGeAdStIdD3DyMaung.In你在你的实现中使用IMFMETIAsAs/IfFr拓扑?我不完全确定,但是这是我如何初始化我的接收器写作者。请看链接我已经看到了你提供的链接,但它只支持调整大小到2的幂,不允许将较小的纹理调整为较大的纹理。我计划使用渲染目标,但是我找不到关于如何使用它以及如何从渲染目标抓取纹理并将其传递给我的纹理分配器的教程。您好,Vulvrit,谢谢您的回复。最后一个选项正是我想要的,但我在网上找不到任何关于如何正确操作的源代码。我是d3d编程新手,还在学习。有时候我发现C++编写的代码,我只是把它转换成C语言。是的,我使用MftMyAdGeAdStIdD3DyMaung.In你在你的实现中使用IMFMETIAsAs/IfFr拓扑?我不完全确定,但是这是我如何初始化我的接收器写作者。请看链接我已经看到了你提供的链接,但它只支持调整大小到2的幂,不允许将较小的纹理调整为较大的纹理。我计划使用渲染目标,但我找不到关于如何使用它以及如何从渲染目标抓取纹理并将其传递给我的纹理分配器的教程。