2016-05-04 9 views
0

Ich möchte ein paar DirectDraw-Oberflächen-Dateien speziell DXT1 laden und sie in meiner sehr einfachen UWP (C# hauptsächlich) -Anwendung anzeigen.Laden und Anzeigen von DDS (DXT1) Datei in UWP App

Ich habe DirectXTex gelesen, aber ich habe keine Ahnung, ob dies der einfachste Weg ist und wenn ja, wie man es in einer UWP-Anwendung verwendet.

Antwort

1

In Windows 8.1 und Windows 10 verfügt der Windows Imaging Component über einen integrierten Codec zum Laden von DDS-Dateien mit BC1/DXT1-Komprimierung. Der einfachste Weg zur Verwendung von WIC aus einem C# UWP ist die Verwendung von Win2D. Denken Sie daran, WIC wird eine unkomprimierte Version des Bildes zurückgeben, und wenn Sie das wollen, dann sind Sie gut drauf.

Beachten Sie, dass der integrierte DDS-Codec nur DXT1-DXT5/BC1-BC3 2D-Bilddateien unterstützt. Andere Formen von DDS-Dateien werden nicht geladen. Eine schnelle Möglichkeit zum Überprüfen besteht darin, im Datei-Explorer nachzusehen. Wenn das DDS mit einem Thumbnail angezeigt wird, wird es unterstützt.

Es ist nicht klar aus Ihrer Frage, was Sie mit den geladenen Daten tun werden. Wenn Sie Direct3D von C# verwenden möchten, sollten Sie etwas wie SharpDX oder SlimDX betrachten. Wenn Sie Direct2D verwenden, ist Win2D der Weg zu gehen.

Denn wenn zum Laden DDS Dateien DirectXTex vs. DDSTextureLoader Verwendung finden this blog post. Kurz gesagt: DirectXTex ist für Werkzeuge gedacht, die mit den verschiedenen Formatkonvertierungen umgehen müssen, insbesondere mit älteren DDS-Dateiformaten. DDSTextureLoader in DirectX Tool Kit ist für "Laufzeit" Verwendung gedacht, wo Sie sicherstellen können, dass Sie eine DDS-Datei laden, die bereits in einem unterstützten DXGI-Format ist.