我想加载几个DirectDraw表面文件,特别是DXT1,并在我非常简单的UWP(主要是C#)应用程序中显示它们。
我已经读过DirectXTex,但是我不知道这是否是最简单的方法,如果是,那么如何在UWP应用程序中使用它。
最佳答案
在Windows 8.1和Windows 10中,Windows Imaging Component具有内置的编解码器,用于加载使用BC1 / DXT1压缩的DDS文件。从C#UWP使用WIC的最简单方法是使用Win2D。请记住,WIC将返回映像的未压缩版本,如果这是您想要的,那么您就很好了。
请注意,内置DDS编解码器仅支持DXT1-DXT5 / BC1-BC3 2D图像文件。它不会加载其他形式的DDS文件。快速检查的方法是在文件资源管理器中查看。如果DDS出现缩略图,则表示支持。
从您的问题尚不清楚,您打算如何处理加载的数据。如果要使用C#中的Direct3D,则应查看SharpDX或SlimDX之类的内容。如果您使用的是Direct2D,则必须使用Win2D。
有关何时使用DirectXTex和DDSTextureLoader加载DDS文件的信息,请参见this blog post。简而言之:DirectXTex适用于需要处理所有各种格式转换(特别是旧版DDS文件格式)的工具; DirectX Tool Kit中的DDSTextureLoader供“运行时”使用,您可以在其中确保加载已受支持的DXGI格式的DDS文件。