| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- DIRECTX TEXTURE LIBRARY (DirectXTex)
- ------------------------------------
- Copyright (c) Microsoft Corporation. All rights reserved.
- April 7, 2017
- This package contains DirectXTex, a shared source library for reading and writing DDS
- files, and performing various texture content processing operations including
- resizing, format conversion, mip-map generation, block compression for Direct3D runtime
- texture resources, and height-map to normal-map conversion. This library makes
- use of the Windows Image Component (WIC) APIs. It also includes simple .TGA and .HDR
- readers and writers since these image file formats are commonly used for texture content
- processing pipelines, but are not currently supported by a built-in WIC codec.
- The source is written for Visual Studio 2013 or 2015. It is recommended that you
- make use of VS 2013 Update 5 or VS 2015 Update 3 and Windows 7 Service Pack 1 or later.
- DirectXTex\
- This contains the DirectXTex library. This includes a full-featured DDS reader and writer
- including legacy format conversions, a TGA reader and writer, a HDR reader and writer,
- a WIC-based bitmap reader and writer (BMP, JPEG, PNG, TIFF, and HD Photo), and various
- texture processing functions. This is intended primarily for tool usage.
- Note that the majority of the header files here are intended for internal implementation
- of the library only (BC.h, BCDirectCompute.h, DDS.h, DirectXTexP.h, filters.h, and scoped.h).
- Only DirectXTex.h is meant as a 'public' header for the library.
- Texconv\
- This DirectXTex sample is an implementation of the "texconv" command-line texture utility
- from the DirectX SDK utilizing DirectXTex rather than D3DX.
- It supports the same arguments as the Texture Conversion Tool Extended (texconvex.exe) DirectX
- SDK utility. See <http://msdn.microsoft.com/en-us/library/ee422506.aspx>. The primary differences
- are the -10 and -11 arguments are not applicable and the filter names (POINT, LINEAR, CUBIC,
- FANT or BOX, TRIANGLE, *_DITHER, *_DITHER_DIFFUSION). This also includes support for the JPEG XR
- (HD Photo) bitmap format.
- (see <http://blogs.msdn.com/b/chuckw/archive/2011/01/19/known-issue-texconvex.aspx>)
- Texassemble\
- This DirectXTex sample is a command-line utility for creating cubemaps, volume maps, or
- texture arrays from a set of individual input image files.
-
- DDSView\
- This DirectXTex sample is a simple Direct3D 11-based viewer for DDS files. For array textures
- or volume maps, the "<" and ">" keyboard keys will show different images contained in the DDS.
- The "1" through "0" keys can also be used to jump to a specific image index.
- DDSTextureLoader\
- This contains a streamlined version of the DirectX SDK sample DDSWithoutD3DX11 texture
- loading code for a simple light-weight runtime DDS loader. This version only supports
- Direct3D 11 or Direct3D 12 and performs no runtime pixel data conversions (i.e. 24bpp
- legacy DDS files always fail). This is ideal for runtime usage, and supports the full
- complement of Direct3D texture resources (1D, 2D, volume maps, cubemaps, mipmap levels,
- texture arrays, BC formats, etc.).
- ScreenGrab\
- This contains screen grab modules for Direct3D 11 and Direct3D 12 primarily intended
- for creating screenshots. The images are written as a DDS or as an image file format
- using WIC.
- WICTextureLoader\
- This contains a Direct3D 11 and Direct3D 12 2D texture loader that uses WIC to load a
- bitmap (BMP, JPEG, PNG, HD Photo, or other WIC supported file container), resize if needed
- based on the current feature level (or by explicit parameter), format convert to a
- DXGI_FORMAT if required, and then create a 2D texture. Note this does not support 1D textures,
- volume textures, cubemaps, or texture arrays. DDSTextureLoader is recommended for fully
- "precooked" textures for maximum performance and image quality, but this loader can be useful
- for creating simple 2D texture from standard image files at runtime.
- NOTE: DDSTextureLoader, ScreenGrab, and WICTextureLoader are 'stand-alone' versions of the same
- modules provided in the DirectX Tool Kit.
- All content and source code for this package are subject to the terms of the MIT License.
- <http://opensource.org/licenses/MIT>.
- Documentation is available at <https://github.com/Microsoft/DirectXTex/wiki>.
- For the latest version of DirectXTex, bug reports, etc. please visit the project site.
- http://go.microsoft.com/fwlink/?LinkId=248926
- This project has adopted the Microsoft Open Source Code of Conduct. For more information see the
- Code of Conduct FAQ or contact [email protected] with any additional questions or comments.
- https://opensource.microsoft.com/codeofconduct/
- ------------------------------------
- RELEASE NOTES
- * The alpha mode specification for DDS files was updated between the March 2013 and April 2013 releases. Any
- DDS files created using the DDS_FLAGS_FORCE_DX10_EXT_MISC2 flag or the texconv -dx10 switch using the
- March 2013 release should be refreshed.
- * Due to the underlying Windows BMP WIC codec, alpha channels are not supported for 16bpp or 32bpp BMP pixel format
- files. The Windows 8.x and Windows 10 version of the Windows BMP WIC codec does support 32bpp pixel formats with
- alpha when using the BITMAPV5HEADER file header. Note the updated WIC is available on Windows 7 SP1 with KB 2670838
- installed.
- * While DXGI 1.0 and DXGI 1.1 include 5:6:5 (DXGI_FORMAT_B5G6R5_UNORM) and 5:5:5:1 (DXGI_FORMAT_B5G5R5A1_UNORM)
- pixel format enumerations, the DirectX 10.x and 11.0 Runtimes do not support these formats for use with Direct3D.
- The DirectX 11.1 runtime, DXGI 1.2, and the WDDM 1.2 driver model fully support 16bpp formats (5:6:5, 5:5:5:1, and
- 4:4:4:4).
- * WICTextureLoader cannot load .TGA or .HDR files unless the system has a 3rd party WIC codec installed. You
- must use the DirectXTex library for TGA/HDR file format support without relying on an add-on WIC codec.
- * Loading of 96bpp floating-point TIFF files results in a corrupted image prior to Windows 8. This fix is available
- on Windows 7 SP1 with KB 2670838 installed.
- ------------------------------------
- RELEASE HISTORY
- 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 bitcount 8 rather than 16
- DXGI_FORMAT_R32G8X24_TYPELESS and DXGI_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 with TEX_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 SaveToDDS* 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 filter
- TEX_FILTER_WRAP, TEX_FILTER_MIRROR texture semantics for custom filtering
- TEX_FILTER_BOX alias for TEX_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, and FORMAT_R1_UNORM
- Fixed WIC I/O for GUID_WICPixelFormat32bppRGBE 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 SaveDDS* 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 of "DEBUG" 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, 2011
- Some code-cleanup for DirectXTex
- Added DXGI 1.2 implementation for DDSTextureLoader and DirectXTex guarded with DXGI_1_2_FORMATS compiliation 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
|