http://go.microsoft.com/fwlink/?LinkId=248926
Urheberrecht (c) Microsoft Corporation.
28. Oktober 2024
Dieses Paket enthält DirectXTex, eine gemeinsam genutzte Quellbibliothek zum Lesen und Schreiben .DDS
Dateien und zur Durchführung verschiedener Verarbeitungsvorgänge für Texturinhalte, einschließlich Größenänderung, Formatkonvertierung, Mip-Map-Generierung, Blockkomprimierung für Direct3D-Laufzeit-Texturressourcen und Höhenzuordnung zu Normalwerten. Kartenkonvertierung. Diese Bibliothek nutzt die Windows Image Component (WIC)-APIs. Es umfasst auch .TGA
und .HDR
Reader und -Writer, da diese Bilddateiformate häufig für Pipelines zur Verarbeitung von Texturinhalten verwendet werden, derzeit jedoch nicht von einem integrierten WIC-Codec unterstützt werden.
Dieser Code ist für die Erstellung mit Visual Studio 2019 (16.11), Visual Studio 2022, Clang für Windows v12 oder höher oder MinGW 12.2 konzipiert. Für Visual Studio ist die Verwendung des Windows 10 May 2020 Update SDK (19041) oder höher erforderlich. Es kann auch für das Windows-Subsystem für Linux mit GCC 11 oder höher erstellt werden.
Diese Komponenten sind so konzipiert, dass sie funktionieren, ohne dass Inhalte aus dem alten DirectX SDK erforderlich sind. Einzelheiten finden Sie unter Wo ist das DirectX SDK?.
DirectXTex
Die meisten Header-Dateien hier sind nur für die interne Implementierung der Bibliothek gedacht (
BC.h
,BCDirectCompute.h
,DDS.h
,DirectXTexP.h
usw.). NurDirectXTex.h
undDirectXTex.inl
sind als „öffentlicher“ Header für die Bibliothek gedacht.
Auxiliary
Common
Texconv
Dieses DirectXTex-Beispiel ist eine Implementierung des Befehlszeilen-Texturdienstprogramms texconv aus dem DirectX SDK, das DirectXTex anstelle von D3DX verwendet.
Es unterstützt die gleichen Argumente wie das alte DirectX SDK-Dienstprogramm Texture Conversion Tool Extended ( texconvex.exe
). Die Hauptunterschiede bestehen darin, dass die Argumente -10
und -11
nicht anwendbar sind und die Filternamen ( POINT
, LINEAR
, CUBIC
, FANT
oder BOX
, TRIANGLE
, *_DITHER
, *_DITHER_DIFFUSION
). Dazu gehört auch die Unterstützung des Bitmap-Formats JPEG XR (HD Photo).
Texassemble
Texdiag
DDSView
DDSTextureLoader
ScreenGrab
WICTextureLoader
DDSTextureLoader11, ScreenGrab11 und WICTextureLoader11 sind „eigenständige“ Versionen derselben Module, die im DirectX Tool Kit für DX11 enthalten sind
DDSTextureLoader12, ScreenGrab12 und WICTextureLoader12 sind „eigenständige“ Versionen derselben Module, die im DirectX Tool Kit für DX12 enthalten sind.
build
Die Dokumentation ist im GitHub-Wiki verfügbar.
Alle Inhalte und Quellcodes für dieses Paket unterliegen den Bedingungen der MIT-Lizenz.
Für die neueste Version von DirectXTex, Fehlerberichte usw. besuchen Sie bitte die Projektseite auf GitHub.
SICHERHEITSHINWEISE finden Sie auf GitHub.
Eine vollständige Änderungshistorie finden Sie unter CHANGELOG.md.
Ab der Version vom Juli 2022 ist der bool forceSRGB
Parameter für die Funktionen CreateTextureEx und CreateShaderResourceViewEx nun ein CREATETEX_FLAGS
typisierter Enum-Bitmasken-Flag-Parameter. Dies kann bahnbrechende Auswirkungen auf den Clientcode haben. Ersetzen Sie true
durch CREATETEX_FORCE_SRGB
und false
durch CREATETEX_DEFAULT
.
Ab der Version vom Juni 2020 verwendet diese Bibliothek typisierte Enum-Bitmaskenflags gemäß der Empfehlung des C++-Standards Abschnitt 17.5.2.1.3 Bitmaskentypen . Dies steht im Einklang mit der Verwendung des DEFINE_ENUM_FLAG_OPERATORS
-Makros durch Direct3D 12. Dies kann Auswirkungen auf den Clientcode haben:
Sie können das 0
Literal nicht als Flag-Wert übergeben. Stattdessen müssen Sie den entsprechenden Standard-Enumerationswert verwenden: CP_FLAGS_NONE
, DDS_FLAGS_NONE
, WIC_FLAGS_NONE
, TEX_FR_ROTATE0
, TEX_FILTER_DEFAULT
, TEX_FILTER_DEFAULT
, TEX_FILTER_DEFAULT
, CNMAP_DEFAULT
oder CNMAP_DEFAULT
.
Verwenden Sie den Enum-Typ anstelle von DWORD
, wenn Sie Flag-Werte lokal mit Bitmaskenoperationen erstellen. Zum Beispiel: DDS_FLAGS flags = DDS_FLAGS_NONE; if (...) flags |= DDS_FLAGS_EXPAND_LUMINANCE;
In Fällen, in denen sich einige der Flags überschneiden, können Sie das |
verwenden um die relevanten Typen zu kombinieren: TEX_FILTER_FLAGS
Filtermodi kombinieren mit WIC_FLAGS
, TEX_FILTER_FLAGS
sRGB Flags kombinieren mit TEX_PMALPHA_FLAGS
oder TEX_COMPRESS_FLAGS
. Es sind keine anderen bitweisen Operatoren definiert. Beispiel: WIC_FLAGS wicFlags = WIC_FLAGS_NONE | TEX_FILTER_CUBIC;
WICTextureLoader kann keine .TGA
oder .HDR
Dateien laden, es sei denn, auf dem System ist ein WIC-Codec eines Drittanbieters installiert. Sie müssen die DirectXTex-Bibliothek für die Unterstützung des TGA/HDR-Dateiformats verwenden, ohne auf einen zusätzlichen WIC-Codec angewiesen zu sein.
Die UWP-Projekte und das klassische Win10-Desktop-Projekt enthalten Konfigurationen für die ARM64-Plattform. Für deren Erstellung ist die Installation des ARM64-Toolsets erforderlich.
Für die ARM64/AArch64-Entwicklung wird der VS 2022-Compiler gegenüber dem VS 2019-Toolset dringend empfohlen. Das Windows SDK (26100 oder höher) ist nicht mit VS 2019 für Win32 bei der ARM64-Entwicklung kompatibel. Beachten Sie, dass die ARM32/AArch32-Plattform veraltet ist .
Bei Verwendung von clang/LLVM für die ARM64/AArch64-Plattform ist das Windows 11 SDK (22000) oder höher erforderlich.
Das CompileShaders.cmd
-Skript muss über Zeilenenden im Windows-Stil (CRLF) verfügen. Wenn es auf Zeilenenden im Linux-Stil (LF) geändert wird, kann es sein, dass nicht alle erforderlichen Shader erstellt werden.
Ab der Veröffentlichung vom Oktober 2024 unterstützen die Befehlszeilentools auch lange Optionen im GNU-Stil mit --
. Alle vorhandenen Schalter funktionieren weiterhin, einige der -
sind jedoch gemäß dieser Tabelle jetzt veraltet:
texassemble | texconv | texdiag | |||
---|---|---|---|---|---|
-Tonemap | --tonemap | -Badtails | --bad-tails | -Badtails | --bad-tails |
-bgcolor | --gif-bg-color | -fixbc4x4 | --fix-bc-4x4 | -ignoremips | --ignore-mips |
-schwenken | --swizzle | -ignoremips | --ignore-mips | -freizügig | --permissiv |
-Stripmips | --strip-mips | -invertiert | --invert-y | -targetx | --target-x |
-Deckung behalten | --keep-coverage | ||||
-freizügig | --permissiv | ||||
-rekonstruiert | --reconstruct-z | ||||
-rotatecolor | --rotate-color | ||||
-singleproc | --single-proc | ||||
-schwenken | --swizzle | ||||
-tgazeroalpha | --tga-zero-alpha | ||||
-Timing | --Timing | ||||
-Tonemap | --tonemap | ||||
-wilosslos | --wic-lossless | ||||
-wicmulti | --wic-multiframe | ||||
-x2bias | --x2-bias |
Bei Fragen können Sie Stack Overflow mit dem Tag „directxtk“ oder den DirectX Discord Server im dx12-developers- oder dx9-dx11-developers -Kanal verwenden.
Für Fehlerberichte und Funktionsanfragen nutzen Sie bitte GitHub Issues für dieses Projekt.
Dieses Projekt freut sich über Beiträge und Vorschläge. Für die meisten Beiträge müssen Sie einem Contributor License Agreement (CLA) zustimmen, in dem Sie erklären, dass Sie das Recht haben, uns die Rechte zur Nutzung Ihres Beitrags zu gewähren, und dies auch tatsächlich tun. Weitere Informationen finden Sie unter https://cla.opensource.microsoft.com.
Wenn Sie eine Pull-Anfrage einreichen, ermittelt ein CLA-Bot automatisch, ob Sie eine CLA bereitstellen müssen, und schmückt die PR entsprechend (z. B. Statusprüfung, Kommentar). Folgen Sie einfach den Anweisungen des Bots. Sie müssen dies nur einmal für alle Repos tun, die unsere CLA verwenden.
Tests für neue Funktionen sollten auch als PR an das Test Suite-Repository übermittelt werden.
Dieses Projekt hat den Microsoft Open Source Verhaltenskodex übernommen. Weitere Informationen finden Sie in den FAQ zum Verhaltenskodex oder wenden Sie sich bei weiteren Fragen oder Kommentaren an [email protected].
Dieses Projekt kann Marken oder Logos für Projekte, Produkte oder Dienstleistungen enthalten. Die autorisierte Nutzung von Microsoft-Marken oder -Logos unterliegt den Marken- und Markenrichtlinien von Microsoft und muss diesen entsprechen. Die Verwendung von Microsoft-Marken oder -Logos in geänderten Versionen dieses Projekts darf keine Verwirrung stiften oder eine Sponsorschaft durch Microsoft implizieren. Jegliche Nutzung von Marken oder Logos Dritter unterliegt den Richtlinien dieser Drittanbieter.
Die DirectXTex-Bibliothek ist das Werk von Chuck Walbourn, mit Beiträgen von Matt Lee, Xin Huang, Craig Peeper und den zahlreichen anderen Microsoft-Ingenieuren, die im Laufe der Jahre die D3DX-Dienstprogrammbibliothek entwickelt haben.
Vielen Dank an Paul Penson für seine Hilfe bei der Implementierung von MemoryStreamOnBlob
.
Vielen Dank an Andrew Farrier und Scott Matloff für ihre fortlaufende Hilfe bei Codeüberprüfungen.
Vielen Dank an Park DongHa für ihren Beitrag zu den JPEG/PNG-Hilfsfunktionen.