mirror of
https://github.com/microsoft/DirectXTex
synced 2024-11-24 05:10:17 +00:00
22 KiB
22 KiB
DirectXTex texture processing library
http://go.microsoft.com/fwlink/?LinkId=248926
Release available for download on GitHub
Release History
April 6, 2021
- DDS reader updated to accept nVidia Texture Tool v1 single-channel and dual-channel files marked as RGB instead of LUMINANCE
- Fixed TGA reader regression with files smaller than 26 bytes total
- Removed use of
CreateStreamOnHGlobal
,CreateStreamOverRandomAccessStream
, andSHCreateMemStream
for WICToMemory functions - Fix for the DirectX 12
CaptureTexture
for reserved and MSAA resources - Minor code and project cleanup
- texassemble: added
-stripmips
switch - texassemble, texconv: the
swizzle
switch now accepts0
and1
values in swizzle masks - texconv: added "709toDisplayP3" and "DisplayP3to709" to
-rotatecolor
switch - texconv: Fixed
-reconstructz
for UNORM formats - texassemble, texconv, texdiag: Updated with descriptions for HRESULT failure codes, and always uses exit code 1 on failure
January 9, 2021
- Windows Subsystem for Linux support
- Code review for improved conformance
- CMake updated to support package install
- texassemble: Merge command now supports
-swizzle
option - texconv: Updated with
-r:keep
and-swizzle
options
November 11, 2020
- Use
SHCreateMemStream
instead ofCreateStreamOnHGlobal
for Win32 on Windows 8.x or Windows 10 - Updated D3DX12 internal copy with latest change from GitHub
- Minor code and project cleanup
September 30, 2020
- Added
TGA_FLAGS
flags to TGA reader/writer to control RGB vs. BGR, handling for all zero alpha channels, and TGA 2.0 colorspace metadata- TGA reader will now return a
DXGI_FORMAT_*_SRGB
format if TGA 2.0 colorspace metadata contains 2.2 or 2.4 gamma - Added forwarders for existing non-flags TGA functions, so there are no breaking changes
- TGA reader will now return a
R16_SNORM
andR8_SNORM
pixel write code updated to round instead of truncate to better match DirectXMath behavior- Fixed bug in standalone WICTextureLoader for DX11/DX12 that resulted in
WINCODEC_ERR_INSUFFICIENTBUFFER
for some resize requests - Added
Ex
variants for DDSTextureLoader/WICTextureLoader for DX9 to support loading resources for non-DEFAULT pools - Minor code and project cleanup
August 15, 2020
- Added
DDS_FLAGS_ALLOW_LARGE_FILES
flag for DDS loader to allow textures with dimensions that are too big for Direct3D - Added
FormatDataType
function - Fixed bug with DX12
Capture
with 'small alignment' textures - Code review and project updates
- Added GDK projects
- texassemble: updated with
-fl
switch for feature level based warning - texconv: updated with
-reconstructz
switch for BC5 compressed normal map view conversion
July 2, 2020
- Minor warning fixes for VS 2019 (16.7)
- CMake updates
- texassemble: Fixed animated gif handling with transparency
June 15, 2020
- Code cleanup for some new VC++ 16.7 warnings and static code analysis
- texconv: Updated with support for Portable Pix Map (ppm) & Portable Float Map (pfm) file formats
June 1, 2020
- Converted to typed enum bitmask flags (see release notes for details on this potential breaking change)
- ComputePitch, xxxDDSxxx, xxxWICxxx, FlipRotate, Resize, Convert, GenerateMipMaps, GenerateMipMaps3D, PremultiplyAlpha, Compress, ComputeNormalMap, CopyRectangle, ComputeMSE
WIC_FLAGS_DEFAULT_SRGB
/WIC_LOADER_SRGB_DEFAULT
flag added when loading image via WIC without explicit colorspace metadata- WIC loader for
PNG
codec now checksgAMA
chunk to determine colorspace if thesRGB
chunk is not found for legacy sRGB detection. - Fixed conformance issues when using
/Zc:preprocessor
- CMake project updates
May 10, 2020
- HDR (RGBE Radiance) file format writer updated to accept half16 input
- Code cleanup
- Updated D3DX12 internal copy to Windows 10 SDK (19041) version
- texassemble, texconv, texdiag: Updated with
-l
switch for case-sensitive file systems - texconv: Added
-dx9
switch to force legacy compatible DDS files - texconv: Collapsed
-bcuniform
,-bcdither
,-bcquick
, and-bcmax
into one-bc
switch - Updates to DDSTextureLoader, ScreenGrab, and WICTextureLoader including new DX9 version
April 3, 2020
- Updated D3DX12 internal copy to latest version
- DDS loader updated for another BC7 FourCC variant
- Code review (
constexpr
/noexcept
usage) - CMake updated for PCH usage with 3.16 or later
February 14, 2020
- Fixed quality bug in BC4S/BC5S compressor
- Guard for divide-by-zero case in PremultiplyAlpha
- texconv: added
-at
switch for alpha threshold value with BC1 compression - texconv: Fixed
-nmap
when outputting compressed UNORM formats - Code and project cleaup
- Retired VS 2015 projects
December 17, 2019
- Added ARM64 platform to VS 2019 Win32 desktop Win10 project
- Updated CMake project
- Code cleaup
October 17, 2019
- Codec readers updated to return
TEX_ALPHA_MODE_OPAQUE
if reader returned an alpha channel due to conversion - Added DDS reader support for 'non-standard' BC6H/BC7 FourCC codes used by nVidia texture tools
- TGA codec updated for TGA 2.0
- Minor code review
- Updated ScreenGrab module
- texconv: Added
-fixbc4x4switch
August 21, 2019
- Updated D3DX12 internal copy to latest version
- Added texassemble, texconv, and texdiag to CMake project
- Code cleanup
June 30, 2019
- Additional validation for Direct3D 11 texture loaders
- Clang/LLVM warning cleanup
- Renamed
DirectXTex_Windows10.vcxproj
to_Windows10_2017.vcxproj
- Added VS 2019 UWP project
May 30, 2019
- Regenerated shaders using Windows 10 April 2019 Update SDK (18362)
- Added CMake project files
- Code cleanup
April 26, 2019
- Added VS 2019 desktop projects
- Code cleanup for texture loaders
- Officially dropped Windows Vista support
- Minor code cleanup
February 7, 2019
- Added ScaleMipMapsAlphaForCoverage function to the library
- WIC Writer now has two new flags:
WIC_FLAGS_FORCE_SRGB
andWIC_FLAGS_FORCE_LINEAR
- texassemble: added
array-strip
command - texconv: added
-inverty
,-keepcoverage
switches
November 16, 2018
- VS 2017 updated for Windows 10 October 2018 Update SDK (17763)
- ARM64 platform configurations added to UWP projects
October 25, 2018
- Use UTF-8 instead of ANSI for narrow strings
- Updated D3DX12 internal copy to latest version
- Minor code cleanup
August 17, 2018
- Fixed problem loading legacy DDS files containing FOURCC pixel formats with
ALPHAPIXELS
also set - Fixed
FlipRotate
bug when doing 180 degree rotation - Updated for VS 2017 15.8
August 5, 2018
- Improved support and validation for 16k textures (requires x64 native)
ComputePitch
now returns an HRESULT- Fix BC7 GPU shaders on WARP device
July 3, 2018
- BC7 CPU codec fix for 3subsets/
-bcmax
and minor optimization - BC7 GPU codec quantize fix and pbit optimization
- BC6H CPU codec bounds checking fix
- Code and project cleanup
May 31, 2018
- Fix for IsAlphaAllOpaque for 'near opaque' values
- VS 2017 updated for Windows 10 April 2018 Update SDK (17134)
May 11, 2018
- Workaround for WIC issue doing FP32->FP16 conversions
- Updated for VS 2017 15.7 update warnings
- Code and project cleanup
- Retired VS 2013 projects
April 23, 2018
- Code cleanup
- texconv: Updated with support reading "Extended BMP" files using DXTn
- texconv: Updated to handle non-power-of-2 volume textures with mipmaps
- texassemble, texconv, texdiag: support format name aliases like DXT3, RGBA, BGRA, FP16, etc. in addition to truncated
DXGI_FORMAT_
values
February 9, 2018
- HDR (RGBE Radiance) file format reader updated to support
#?RGBE
signature - texconv: Added
-rotatecolor
and-nits
switches - texassemble: Added merge and gif commands
- texdiag: added dumpdds command
February 7, 2018
- Fixed bug with GPU BC7 encoding (mode 1, fixup 6)
- Updated for a few more VS 2017 warnings
- Code cleanup
December 13, 2017
- Updated for VS 2017 15.5 update warnings
- Support building library with
_XM_NO_XMVECTOR_OVERLOADS_
- Code cleanup
November 1, 2017
- VS 2017 updated for Windows 10 Fall Creators Update SDK (16299)
September 22, 2017
- Updated for VS 2017 15.3 update
/permissive-
changes - WIC writer and ScreenGrab updated to use non-sRGB metadata for PNG
- texassemble, texconv, texdiag: added
-flist
option
July 26, 2017
- Support for reading non-standard DDS files written by nVidia Texture Tools (NVTT)
- Fix for ComputeMSE when using
CMSE_IMAGE2_X2_BIAS
- Fix for WIC writer then codec target format requires a palette
- Code cleanup
April 24, 2017
- VS 2017 project updates
- Regenerated shaders using Windows 10 Creators Update SDK (15063)
- Updated D3DX12 internal copy to latest version
April 7, 2017
- VS 2017 updated for Windows Creators Update SDK (15063)
- texassemble:
-tonemap
switch - texconv:
-wicmulti
switch
January 31, 2017
- DirectX 12 versions of IsSupported, CreateTexture (PrepareUpload), and CaptureTexture
- Update to DirectX 11 version of IsSupported
- WIC format 40bppCMYKAlpha should be converted to RGBA8 rather than RGBA16
- DDS support for L8A8 with bit-count 8 rather than 16
DXGI_FORMAT_R32G8X24_TYPELESS
andDXGI_FORMAT_R24G8_TYPELESS
should be IsDepthStencil formats- Updates to DDSTextureLoader, ScreenGrab, and WICTextureLoader
- Minor code cleanup
December 5, 2016
- Fixed over-validation in DDS header parsing
- VS 2017 RC projects added
- Minor code cleanup
October 5, 2016
- breaking change Renamed Evaluate to EvaluateImage, Transform to TransformImage
- texdiag: new command-line tool for texture debugging
- texconv:
-bcmax
,-bcquick
,-tonemap
, and-x2bias
switches - texconv: overwrite writing and
-y
switch - texconv/texassemble: optional OpenEXR support
- texassemble: command syntax with support for generating strip and cross images from cubemap
- Updates to DDSTextureLoader, WICTextureLoader, and ScreenGrab
- Minor code cleanup
September 14, 2016
- HDR (RGBE Radiance) file format reader and writer
- Evaluate and Transform functions for computing user-defined functions on images
- Fix BC6H GPU shaders on WARP device
- Fix for alignment issues on ARM devices in software compression codec
- Added
TEX_THRESHOLD_DEFAULT
(0.5f) constant default alpha threshold value for Convert & Compress - Minor CaptureTexture optimization
- texconv/texassemble: Support for .hdr file format
- texconv: added
-gpu
switch to specify adapter to use for GPU-based compression codecs - texconv: added
-badtails
switch to enable loading of legacy DXTn DDS files with incomplete mipchain tails - texconv: added
-c
switch for old-school colorkey/chromakey transparency to alpha conversion - texconv: added
-alpha
switch for reverse premultiply along withTEX_PMALPHA_REVERSE
flag - texconv: added wildcard support for input filename and optional
-r
switch for recursive search
August 4, 2016
CompileShader
script updated to build external pdbs- Regenerated shaders using Windows 10 Anniversary Update SDK (14393)
August 2, 2016
- Updated for VS 2015 Update 3 and Windows 10 SDK (14393)
August 1, 2016
- Workaround for bug in XMStoreFloat3SE (impacts conversions to
DXGI_FORMAT_R9G9B9E5_SHAREDEXP
) - DDSTextureLoader12, WICTextureLoader12, and ScreenGrab12 for Direct3D 12 support
- Minor code cleanup
June 27, 2016
- texconv command-line tool
-wicq
and-wiclossless
switches - Code cleanup
April 26, 2016
- Optional callback from WIC reader functions to query additional metadata
- Retired obsolete adapter code
- Minor code cleanup
February 23, 2016
- Fix to clean up partial or zero-length image files on failed write
- Retired VS 2012 projects
November 30, 2015
- texconv command-line tool
-fl
switch now supports 12.0 and 12.1 feature levels - Updated for VS 2015 Update 1 and Windows 10 SDK (10586)
October 30, 2015
- DDS support for legacy bumpmap formats (V8U8, Q8W8V8U8, V16U16)
- Fix for buffer overread in BC CPU compressor
- Minor code cleanup
August 18, 2015
- Added GetWICFactory and SetWICFactory
- Updates for new DXGI 1.3 types
- Xbox One platform updates
July 29, 2015
- Fixed rounding problem with 32-bit RGBA/BGRA format conversions
- texconv: use CPU parallel compression for BC1-BC5 (
-singleproc
disables) - Updated for VS 2015 and Windows 10 SDK RTM
- Retired VS 2010 and Windows 8.0 Store projects
June 18, 2015
- New
BC_FLAGS_USE_3SUBSETS
option for BC7 compressors; now defaults to skipping 3 subset blocks - Fixed bug with MakeTypeless and
A8_UNORM
- Fixed file length validation problem in LoadDDSFromFile
March 27, 2015
- Added projects for Windows apps Technical Preview
- Fixed bug with WIC-based mipmap generation for non-WIC supported formats
- Fixed bug with WIC multiframe loader when resizing required
- texconv: Added
-nmap
/-nmapamp
for generating normal maps from height maps - texconv/texassemble: Updated to load multiframe WIC files (tiff, gif)
- Minor code cleanup
November 24, 2014
- Updates for Visual Studio 2015 Technical Preview
- Minor code cleanup
September 22, 2014
- Format conversion improvements and bug fixes (depth/stencil, alpha-only, float16, RGB -> 1 channel)
- Fixed issue when BC decompressing non-standard compressed rowPitch images
- Explicit calling-convention annotation for all 'public' functions
- Code cleanup
- Xbox One platform updates
July 15, 2014
- texconv command-line tool fixes
- Fixed problem with 'wide' images with CPU Compress
- Updates to Xbox One platform support
April 3, 2014
- Windows phone 8.1 platform support
February 24, 2014
- Direct3D 11 video and Xbox One extended format support
- New APIs: IsPlanar, IsPalettized, IsDepthStencil, ConvertToSinglePlane
- Added 'alphaWeight' parameter to GPU Compress breaking change
- texconv
-aw
switch to control the alpha weighting for the BC7 GPU compressor - Fixed bug with ordered dithering in non-WIC conversion codepaths
- Fixed SaveToDDSxxx functions when using arbitrary row pitch values
January 24, 2014
- Added sRGB flags for Compress (
TEX_COMPRESS_SRGB*
) - Added 'compress' flag parameter to GPU versions of Compress breaking change
- Minor fix for potential rounding problem in GPU Compress
- Code cleanup (removed
DXGI_1_2_FORMATS
control define;ScopedObject
typedef removed) - Dropped VS 2010 support without the Windows 8.1 SDK (removed
USE_XNAMATH
control define)
December 24, 2013
- texconv updated with
-fl
and-pow2
command-line switches - Fixed bug in Resize when doing custom filtering which occurred when exactly doubling the image size
- Added move operators to ScratchImage and Blob classes
- Xbox One platform support
October 21, 2013
- Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
- PremultiplyAlpha updated with new 'flags' parameter and to use sRGB correct blending
- Fixed colorspace conversion issue with DirectCompute compressor when compressing for BC7 SRGB
August 13, 2013
- DirectCompute 4.0 BC6H/BC7 compressor integration
- texconv utility uses DirectCompute compression by default for BC6H/BC7,
-nogpu
disables use of DirectCompute
August 1, 2013
- Support for BC compression/decompression of non-power-of-2 mipmapped textures
- Fixes for BC6H / BC7 codecs to better match published standard
- Fix for BC4 / BC5 codecs when compressing RGB images
- Minor fix for the BC1-3 codec
- New optional flags for ComputeMSE to compare UNORM vs. SNORM images
- New WIC loading flag added to control use of WIC metadata to return sRGB vs. non-sRGB formats
- Code cleanup and /analyze fixes
- Project file cleanup
- texconv utility uses parallel BC compression by default for BC6H/BC7,
-singleproc
disables multithreaded behavior
July 1, 2013
- VS 2013 Preview projects added
- SaveToWIC functions updated with new optional
setCustomProps
parameter
June 15, 2013
- Custom filtering implementation for Resize & GenerateMipMaps(3D) - Point, Box, Linear, Cubic, and Triangle
TEX_FILTER_TRIANGLE
finite low-pass triangle filterTEX_FILTER_WRAP
,TEX_FILTER_MIRROR
texture semantics for custom filteringTEX_FILTER_BOX
alias forTEX_FILTER_FANT WIC
- Ordered and error diffusion dithering for non-WIC conversion
- sRGB gamma correct custom filtering and conversion
DDS_FLAGS_EXPAND_LUMINANCE
- Reader conversion option for L8, L16, and A8L8 legacy DDS files- Added use of WIC metadata for sRGB pixel formats
- Added BitsPerColor utility function
- Fixed Convert threshold parameter usage
- Non-power-of-2 volume map support, fixed bug with non-square volume maps
- texconv utility update with
-xlum
,-wrap
, and-mirror
options; reworked-if
options for improved dithering - texassemble utility for creating cubemaps, volume maps, and texture arrays
- DDSTextureLoader and WICTextureLoader sync'd with DirectXTK versions
April 16, 2013
- Updated alpha-mode metadata details in .DDS files
- Added new control flags for Convert
- Added new optional flags for ComputeMSE
- Fixed conversion handling for sRGB formats
- Fixed internal routines for handling
R10G10B10_XR_BIAS_A2_UNORM
,R9G9B9E5_SHAREDEXP
, andFORMAT_R1_UNORM
- Fixed WIC I/O for
GUID_WICPixelFormat32bppRGBE
4 pixel format files (HD Photo) - Fixed non-square image handling in GenerateMipMaps3D
- Fixed some error handling in the DDS load code
March 22, 2013
- Supports reading and writing alpha-mode (straight, premultiplied, etc.) metadata in .DDS files
- Added build option to use WICCreateImagingFactory_Proxy instead of
CoCreateInstance
to obtain WIC factory
January 29, 2013
- Added PremultiplyAlpha to DirectXTex;
-pmalpha
switch for texconv command-line tool - Fixed problem with forceSRGB implementation for Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader
December 11, 2012
- Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader
- Fixed BC2 and BC3 decompression issue for unusual color encoding case
- Converted annotation to SAL2 for improved VS 2012 /analyze experience
- Updated DirectXTex, DDSView, and Texconv with VS 2010 + Windows 8.0 SDK project using official 'property sheets'
November 15, 2012
- Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
- Added optional
targetGUID
parameter to SaveWIC* APIs to influence final container pixel format choice - Fixed bug in SaveDDSxxx which was generating invalid DDS files for 1D dimension textures
- Improved robustness of CaptureTexture when resolving MSAA source textures
- Sync'd DDSTextureLoader, ScreenGrab, and WICTextureLoader standalone versions with latest DirectXTK release
September 28, 2012
- Added ScreenGrab module for creating runtime screenshots
- Renamed project files for better naming consistency
- New Typeless utilities for DirectXTex
- Some minor code cleanup for DirectXTex's WIC writer function
- Bug fixes and new
-tu
/-tf
options for texconv
June 22, 2012
- Moved to using XNA Math 2.05 instead of XNA Math 2.04 for
USE_XNAMATH
builds - Fixed BGR vs. RGB color channel swizzle problem with 24bpp legacy .DDS files in DirectXTex
- Update to DirectXTex WIC and WICTextureLoader for additional 96bpp float format handling on Windows 8
May 31, 2012
- Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels
- Switched to use
_DEBUG
instead ofDEBUG
and cleaned up debug warnings - added Windows Store style application project files for DirectXTex
April 20, 2012
- DirectTex's WIC-based writer opts-in for the Windows 8 BMP encoder option for writing 32 bpp RGBA files with the
BITMAPV5HEADER
March 30, 2012
- WICTextureLoader updated with Windows 8 WIC pixel formats
- DirectXTex updated with limited non-power-of-2 texture support and
TEX_FILTER_SEPARATE_ALPHA
option - Texconv updated with
-sepalpha
command-line option - Added
USE_XNAMATH
control define to build DirectXTex using either XNAMath or DirectXMath - Added VS 2012 project files (which use DirectXMath instead of XNAMath and define
DXGI_1_2_FORMATS
)
March 15, 2012
- Fix for resource leak in CreateShaderResourceView Direct3D 11 helper function in DirectXTex
March 5, 2012
- Fix for too much temp memory allocated by WICTextureLoader; cleaned up legacy 'min/max' macro usage in DirectXTex
February 21, 2012
- WICTextureLoader updated to handle systems and device drivers without BGRA or 16bpp format support
February 20, 2012
- Some code cleanup for DirectXTex and DDSTextureLoader
- Fixed bug in 10:10:10:2 format fixup in the LoadDDSFromMemory function
- Fixed bugs in "non-zero alpha" special-case handling in LoadTGAFromFile
- Fixed bug in
_SwizzleScanline
when copying alpha channel for BGRA<->RGBA swizzling
February 11, 2012
- Update of DDSTextureLoader to also build in Windows Store style apps; added WICTextureLoader
- Added CMYK WIC pixel formats to the DirectXTex conversion table
January 30, 2012
- Minor code-cleanup for DirectXTex to enable use of PCH through 'directxtexp.h' header
January 24, 2012
- Some code-cleanup for DirectXTex
- Added DXGI 1.2 implementation for DDSTextureLoader and DirectXTex guarded with
DXGI_1_2_FORMATS
compilation define
December 16, 2011
- Fixed x64 compilation warnings in DDSTextureLoader
November 30, 2011
- Fixed some of the constants used in IsSupportedTexture
- added ability to strip off top levels of mips in DDSTextureLoader
- changed DirectXTex to use CoCreateInstance rather than LoadLibrary to obtain the WIC factory
- a few minor
/analyze
related annotations for DirectXTex
October 27, 2011
- Original release