diff --git a/.nuget/directxmesh_desktop_2017.nuspec b/.nuget/directxmesh_desktop_2017.nuspec
index 05020e90..a1db2e32 100644
--- a/.nuget/directxmesh_desktop_2017.nuspec
+++ b/.nuget/directxmesh_desktop_2017.nuspec
@@ -9,8 +9,8 @@
DirectXMesh geometry processing library
This version is for Windows desktop applications using Visual Studio 2017 or Visual Studio 2019 and supports Windows 7 / DirectX 11.
-DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, and vertex cache optimization.
- Matches the May 10, 2020 release on GitHub.
+DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, vertex cache optimization, and meshlet generation.
+ Matches the June 1, 2020 release on GitHub.
http://go.microsoft.com/fwlink/?LinkID=324981
images\icon.jpg
MIT
diff --git a/.nuget/directxmesh_desktop_win10.nuspec b/.nuget/directxmesh_desktop_win10.nuspec
index 79e3fdfc..5f9b0689 100644
--- a/.nuget/directxmesh_desktop_win10.nuspec
+++ b/.nuget/directxmesh_desktop_win10.nuspec
@@ -9,8 +9,8 @@
DirectXMesh geometry processing library
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.
-DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, and vertex cache optimization.
- Matches the May 10, 2020 release on GitHub.
+DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, vertex cache optimization, and meshlet generation.
+ Matches the June 1, 2020 release on GitHub.
http://go.microsoft.com/fwlink/?LinkID=324981
images\icon.jpg
MIT
diff --git a/.nuget/directxmesh_uwp.nuspec b/.nuget/directxmesh_uwp.nuspec
index 89289502..deca8a7b 100644
--- a/.nuget/directxmesh_uwp.nuspec
+++ b/.nuget/directxmesh_uwp.nuspec
@@ -9,8 +9,8 @@
DirectXMesh geometry processing library
This version is for Universal Windows Platform apps on Windows 10 using Visual Studio 2017 or Visual Studio 2019.
-DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, and vertex cache optimization.
- Matches the May 10, 2020 release on GitHub.
+DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, vertex cache optimization, and meshlet generation.
+ Matches the June 1, 2020 release on GitHub.
http://go.microsoft.com/fwlink/?LinkID=324981
images\icon.jpg
MIT
diff --git a/HISTORY.md b/HISTORY.md
index 29ac2aa8..5efe932f 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -2,16 +2,23 @@
http://go.microsoft.com/fwlink/?LinkID=324981
-Release available for download on [GitHub](https://github.com/microsoft/DirectXMesh/releases)
+Releases available for download on [GitHub](https://github.com/microsoft/DirectXMesh/releases)
## Release History
+### June 1, 2020
+* New functions **ComputeMeshlets** and **ComputeCullData** for use with Direct3D 12 Mesh Shaders
+* Converted to typed enum bitmask flags (see release notes for details on this potential *breaking change*)
+ + **ComputeNormals**, **Validate**
+* Minor fix for degenerate cases in point-reps generation
+* CMake project updates
+
### May 10, 2020
* Minor code review
* meshconvert: Updated with ``-l`` switch for case-sensitive file systems
### April 3, 2020
-* Code review (constexpr / noexcept usage)
+* Code review (``constexpr`` / ``noexcept`` usage)
* CMake updated for PCH usage with 3.16 or later
### February 14, 2020
@@ -73,10 +80,10 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXM
* Code and project cleanup
### February 7, 2018
-* New functions: ``WeldVertices``, ``CompactVB``
-* Added new optional parameter to ``OptimizeVertices``
+* New functions: **WeldVertices**, **CompactVB**, **OptimizeFacesLRU**
+* Added new optional parameter to **OptimizeVertices**
* Fixed bug in remap functions which were applying vertex remaps backwards
- + ``FinalizeIB``, ``FinalizeVB``, and ``FinalizeVBAndPointReps``
+ + **FinalizeIB**, **FinalizeVB**, and **FinalizeVBAndPointReps**
* meshconvert: added ``-oplru`` switch
* WaveFrontReader utility header made more robust
* Minor code cleanup
@@ -103,11 +110,11 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXM
### April 7, 2017
* VS 2017 updated for Windows Creators Update SDK (15063)
-* VBReader/VBWriter ``GetElement`` adapter for ``GetElement11``
+* VBReader/VBWriter **GetElement** adapter for ``GetElement11``
### January 31, 2017
-* DirectX 12 support for VBReader, VBWriter, IsValid, and ComputeInputLayout
-* *breaking change*: VBReader/VBWriter method ``GetElement`` method now named ``GetElement11`` for DirectX 11
+* DirectX 12 support for **VBReader**, **VBWriter**, **IsValid**, and **ComputeInputLayout**
+* *breaking change*: VBReader/VBWriter method **GetElement** method now named ``GetElement11`` for DirectX 11
### October 27, 2016
* x2bias optional parameter for VB reader/writer
@@ -150,7 +157,7 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXM
### March 27, 2015
* Added projects for Windows apps Technical Preview
-* Fixed attributes usage for ``OptimizeFacesEx``
+* Fixed attributes usage for **OptimizeFacesEx**
* meshconvert: fix when importing from .vbo
* Minor code cleanup
@@ -161,8 +168,8 @@ Release available for download on [GitHub](https://github.com/microsoft/DirectXM
### October 28, 2014
* meshconvert command-line sample
-* Added VBReader/VBWriter::GetElement method
-* Added more ``ComputeTangentFrame`` overloads
+* Added **VBReader/VBWriter::GetElement** method
+* Added more **ComputeTangentFrame** overloads
* Explicit calling-convention annotation for public headers
* Windows phone 8.1 platform support
* Minor code and project cleanup
diff --git a/README.md b/README.md
index 663e923d..80b636c2 100644
--- a/README.md
+++ b/README.md
@@ -6,11 +6,11 @@ http://go.microsoft.com/fwlink/?LinkID=324981
Copyright (c) Microsoft Corporation. All rights reserved.
-**May 10, 2020**
+**June 1, 2020**
-This package contains DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, and vertex cache optimization.
+This package contains DirectXMesh, a shared source library for performing various geometry content processing operations including generating normals and tangent frames, triangle adjacency computations, vertex cache optimization, and meshlet generation.
-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).
@@ -47,10 +47,10 @@ This project has adopted the [Microsoft Open Source Code of Conduct](https://ope
## Release Notes
-* 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.
+* 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:
-* 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.
+ * You cannot pass the ``0`` literal as your flags value. Instead you must make use of the appropriate default enum value: ``CNORM_DEFAULT``, ``VALIDATE_DEFAULT``, or ``MESHLET_DEFAULT``.
-* 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.
+ * Use the enum type instead of ``DWORD`` if building up flags values locally with bitmask operations. For example, ```CNORM_FLAGS flags = CNORM_DEFAULT; if (...) flags |= CNORM_WIND_CW;```
* 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.