From 1000c638403f9dbe4c704d14613590d595a248db Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Mon, 1 Jun 2020 21:38:11 -0700 Subject: [PATCH] June 1, 2020 --- .nuget/directxtex_desktop_2017.nuspec | 2 +- .nuget/directxtex_desktop_win10.nuspec | 2 +- .nuget/directxtex_uwp.nuspec | 2 +- DirectXTex/DirectXTex.h | 2 +- HISTORY.md | 104 +++++++++++++------------ README.md | 20 ++--- 6 files changed, 71 insertions(+), 61 deletions(-) diff --git a/.nuget/directxtex_desktop_2017.nuspec b/.nuget/directxtex_desktop_2017.nuspec index 8602af7..cbbe722 100644 --- a/.nuget/directxtex_desktop_2017.nuspec +++ b/.nuget/directxtex_desktop_2017.nuspec @@ -10,7 +10,7 @@ This version is for Windows desktop applications using Visual Studio 2017 or Visual Studio 2019 and supports Windows 7 / DirectX 11. 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 format are commonly used for texture content processing pipelines, but are not currently supported by a built-in WIC codec. - Matches the May 10, 2020 release on GitHub. + Matches the June 1, 2020 release on GitHub. http://go.microsoft.com/fwlink/?LinkId=248926 images\icon.jpg MIT diff --git a/.nuget/directxtex_desktop_win10.nuspec b/.nuget/directxtex_desktop_win10.nuspec index 517443d..bc9f62e 100644 --- a/.nuget/directxtex_desktop_win10.nuspec +++ b/.nuget/directxtex_desktop_win10.nuspec @@ -10,7 +10,7 @@ This version is for Windows desktop applications using Visual Studio 2017 or Visual Studio 2019 and supports Windows 10 including both DirectX 11 and DirectX 12. 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 format are commonly used for texture content processing pipelines, but are not currently supported by a built-in WIC codec. - Matches the May 10, 2020 release on GitHub. + Matches the June 1, 2020 release on GitHub. http://go.microsoft.com/fwlink/?LinkId=248926 images\icon.jpg MIT diff --git a/.nuget/directxtex_uwp.nuspec b/.nuget/directxtex_uwp.nuspec index aef7280..915a0d5 100644 --- a/.nuget/directxtex_uwp.nuspec +++ b/.nuget/directxtex_uwp.nuspec @@ -10,7 +10,7 @@ This version is for Universal Windows Platform apps on Windows 10 using Visual Studio 2017 or Visual Studio 2019. 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 format are commonly used for texture content processing pipelines, but are not currently supported by a built-in WIC codec. - Matches the May 10, 2020 release on GitHub. + Matches the June 1, 2020 release on GitHub. http://go.microsoft.com/fwlink/?LinkId=248926 images\icon.jpg MIT diff --git a/DirectXTex/DirectXTex.h b/DirectXTex/DirectXTex.h index 7133d26..aa1b086 100644 --- a/DirectXTex/DirectXTex.h +++ b/DirectXTex/DirectXTex.h @@ -28,7 +28,7 @@ #include -#define DIRECTX_TEX_VERSION 170 +#define DIRECTX_TEX_VERSION 180 struct IWICImagingFactory; struct IWICMetadataQueryReader; diff --git a/HISTORY.md b/HISTORY.md index fbba7d4..0f817b1 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -6,6 +6,14 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ## Release History +### 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 checks ``gAMA`` chunk to determine colorspace if the ``sRGB`` 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 @@ -13,19 +21,19 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * 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 +* 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) +* 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 +* Guard for divide-by-zero case in **PremultiplyAlpha** * texconv: added ``-at`` switch for alpha threshold value with BC1 compression -* texconv: Fixed ``-nmap`` when outputing compressed UNORM formats +* texconv: Fixed ``-nmap`` when outputting compressed UNORM formats * Code and project cleaup * Retired VS 2015 projects @@ -65,7 +73,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * Minor code cleanup ### February 7, 2019 -* Added ``ScaleMipMapsAlphaForCoverage`` function to the library +* Added **ScaleMipMapsAlphaForCoverage** function to the library * WIC Writer now has two new flags: ``WIC_FLAGS_FORCE_SRGB`` and ``WIC_FLAGS_FORCE_LINEAR`` * texassemble: added ``array-strip`` command * texconv: added ``-inverty``, ``-keepcoverage`` switches @@ -96,7 +104,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * Code and project cleanup ### May 31, 2018 -* Fix for ``IsAlphaAllOpaque`` for 'near opaque' values +* Fix for **IsAlphaAllOpaque** for 'near opaque' values * VS 2017 updated for Windows 10 April 2018 Update SDK (17134) ### May 11, 2018 @@ -137,7 +145,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### 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 **ComputeMSE** when using ``CMSE_IMAGE2_X2_BIAS`` * Fix for WIC writer then codec target format requires a palette * Code cleanup @@ -152,10 +160,10 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * texconv: ``-wicmulti`` switch ### January 31, 2017 -* DirectX 12 versions of IsSupported, CreateTexture (PrepareUpload), and CaptureTexture -* Update to DirectX 11 version of IsSupported +* 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 +* DDS support for L8A8 with bit-count 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 @@ -166,7 +174,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * Minor code cleanup ### October 5, 2016 -* *breaking change* Renamed Evaluate to ``EvaluateImage``, Transform to ``TransformImage`` +* *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 @@ -176,12 +184,12 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * 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 +* [HDR (RGBE Radiance)](https://en.wikipedia.org/wiki/RGBE_image_format) 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 +* 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 @@ -190,7 +198,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * texconv: added wildcard support for input filename and optional ``-r`` switch for recursive search ### August 4, 2016 -* CompileShader script updated to build external pdbs +* ``CompileShader`` script updated to build external pdbs * Regenerated shaders using Windows 10 Anniversary Update SDK (14393) ### August 2, 2016 @@ -198,7 +206,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### August 1, 2016 * Workaround for bug in XMStoreFloat3SE (impacts conversions to ``DXGI_FORMAT_R9G9B9E5_SHAREDEXP``) -* DDSTextureLoader12, WICTextureLoader12, and ScreenGrab12 for Direct3D 12 support +* **DDSTextureLoader12**, **WICTextureLoader12**, and **ScreenGrab12** for Direct3D 12 support * Minor code cleanup ### June 27, 2016 @@ -224,7 +232,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * Minor code cleanup ### August 18, 2015 -* Added ``GetWICFactory`` and ``SetWICFactory`` +* Added **GetWICFactory** and **SetWICFactory** * Updates for new DXGI 1.3 types * Xbox One platform updates @@ -236,8 +244,8 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### 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 +* Fixed bug with **MakeTypeless** and ``A8_UNORM`` +* Fixed file length validation problem in **LoadDDSFromFile** ### March 27, 2015 * Added projects for Windows apps Technical Preview @@ -260,7 +268,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### July 15, 2014 * texconv command-line tool fixes -* Fixed problem with 'wide' images with CPU Compress +* Fixed problem with 'wide' images with CPU **Compress** * Updates to Xbox One platform support ### April 3, 2014 @@ -268,28 +276,28 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### 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* +* 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 +* 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) +* 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 +* 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 +* **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 @@ -301,7 +309,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * 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 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 @@ -312,7 +320,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * SaveToWIC functions updated with new optional ``setCustomProps`` parameter ### June 15, 2013 -* Custom filtering implementation for Resize & GenerateMipMaps(3D) - Point, Box, Linear, Cubic, and Triangle +* 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`` @@ -320,8 +328,8 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * 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 +* 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 @@ -329,24 +337,24 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### April 16, 2013 * Updated alpha-mode metadata details in .DDS files -* Added new control flags for Convert -* Added new optional flags for ComputeMSE +* 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``4 pixel format files (HD Photo) -* Fixed non-square image handling in GenerateMipMaps3D +* 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 +* 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 +* 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 +* 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' @@ -354,12 +362,12 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### 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 +* 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 +* 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 @@ -386,7 +394,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * 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 +* 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 @@ -396,12 +404,12 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT ### 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 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 +* 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 @@ -415,7 +423,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXT * Fixed x64 compilation warnings in DDSTextureLoader ### November 30, 2011 -* Fixed some of the constants used in IsSupportedTexture +* 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 diff --git a/README.md b/README.md index 6771a23..af11a6d 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ http://go.microsoft.com/fwlink/?LinkId=248926 Copyright (c) Microsoft Corporation. All rights reserved. -**May 10, 2020** +**June 1, 2020** 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 ``.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. -This code is designed to build with Visual Studio 2017 ([15.9](https://walbourn.github.io/vs-2017-15-9-update/)), Visual Studio 2019, or clang for Windows v9. It is recommended that you make use of the Windows 10 May 2019 Update SDK ([18362](https://walbourn.github.io/windows-10-may-2019-update/)). +This code is designed to build with Visual Studio 2017 ([15.9](https://walbourn.github.io/vs-2017-15-9-update/)), Visual Studio 2019, or clang for Windows v9 or later. It is recommended that you make use of the Windows 10 May 2020 Update SDK ([19041](https://walbourn.github.io/windows-10-may-2020-update-sdk/)). These components are designed to work without requiring any content from the legacy DirectX SDK. For details, see [Where is the DirectX SDK?](https://aka.ms/dxsdk). @@ -27,7 +27,7 @@ These components are designed to work without requiring any content from the leg + This DirectXTex sample is an implementation of the [texconv](https://github.com/Microsoft/DirectXTex/wiki/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) legacy DirectX SDK utility. 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. + It supports the same arguments as the *Texture Conversion Tool Extended* (``texconvex.exe``) legacy DirectX SDK utility. 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. * ``Texassemble\`` @@ -71,6 +71,14 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope ## Release Notes +* Starting with the June 2020 release, this library makes use of typed enum bitmask flags per the recommendation of the _C++ Standard_ section *17.5.2.1.3 Bitmask types*. This is consistent with Direct3D 12's use of the ``DEFINE_ENUM_FLAG_OPERATORS`` macro. This may have *breaking change* impacts to client code: + + * You cannot pass the ``0`` literal as your flags value. Instead you must make use of the appropriate default enum value: ``CP_FLAGS_NONE``, ``DDS_FLAGS_NONE``, ``WIC_FLAGS_NONE``, ``TEX_FR_ROTATE0``, ``TEX_FILTER_DEFAULT``, ``TEX_FILTER_DEFAULT``, ``TEX_FILTER_DEFAULT``, ``CNMAP_DEFAULT``, or ``CNMAP_DEFAULT``. + + * Use the enum type instead of ``DWORD`` if building up flags values locally with bitmask operations. For example, ```DDS_FLAGS flags = DDS_FLAGS_NONE; if (...) flags |= DDS_FLAGS_EXPAND_LUMINANCE;``` + + * In cases where some of the flags overlap, you can use the ``|`` to combine the relevant types: ``TEX_FILTER_FLAGS`` filter modes combine with ``WIC_FLAGS``, ``TEX_FILTER_FLAGS`` sRGB flags combine with ``TEX_PMALPHA_FLAGS`` or ``TEX_COMPRESS_FLAGS``. No other bitwise operators are defined. For example, ```WIC_FLAGS wicFlags = WIC_FLAGS_NONE | TEX_FILTER_CUBIC;``` + * 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](https://walbourn.github.io/directx-11-1-and-windows-7-update/) 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). @@ -79,12 +87,6 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope * 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. -* The VS 2017/2019 projects make use of ``/permissive-`` for improved C++ standard conformance. Use of a Windows 10 SDK prior to the Fall Creators Update (16299) or an Xbox One XDK prior to June 2017 QFE 4 may result in failures due to problems with the system headers. You can work around these by disabling this switch in the project files which is found in the ```` elements, or in some cases adding ``/Zc:twoPhase-`` to the ```` elements. - -* The VS 2017 projects require the 15.5 update or later. For UWP and Win32 classic desktop projects with the 15.5 - 15.7 updates, you need to install the standalone Windows 10 SDK (17763) which is otherwise included in the 15.8.6 or later update. Older VS 2017 updates will fail to load the projects due to use of the element. If using the 15.5 or 15.6 updates, you will see ``warning D9002: ignoring unknown option '/Zc:__cplusplus'`` because this switch isn't supported until 15.7. It is safe to ignore this warning, or you can edit the project files ```` elements. - -* The VS 2019 projects use a ```` of ``10.0`` which indicates to use the latest installed version. This should be Windows 10 SDK (17763) or later. - * The UWP projects and the VS 2019 Win10 classic desktop project include configurations for the ARM64 platform. These require VS 2017 (15.9 update) or VS 2019 to build, with the ARM64 toolset installed. * The ``CompileShaders.cmd`` script must have Windows-style (CRLF) line-endings. If it is changed to Linux-style (LF) line-endings, it can fail to build all the required shaders.