From 2d1da4ccbe814e8b68956ebff171835a1303bee9 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 29 Oct 2024 12:44:15 -0700 Subject: [PATCH] October 28, 2024 (#192) --- .nuget/uvatlas_desktop_2019.nuspec | 2 +- CHANGELOG.md | 9 ++++++ CMakeLists.txt | 2 +- README.md | 45 ++++++++++++++++++---------- UVAtlas/inc/UVAtlas.h | 2 +- UVAtlasTool/MeshOBJ.cpp | 6 ++-- UVAtlasTool/UVAtlasTool_2019.vcxproj | 8 ++--- UVAtlasTool/UVAtlasTool_2022.vcxproj | 8 ++--- UVAtlasTool/packages.config | 4 +-- 9 files changed, 56 insertions(+), 30 deletions(-) diff --git a/.nuget/uvatlas_desktop_2019.nuspec b/.nuget/uvatlas_desktop_2019.nuspec index d69e1c32..00e137c9 100644 --- a/.nuget/uvatlas_desktop_2019.nuspec +++ b/.nuget/uvatlas_desktop_2019.nuspec @@ -10,7 +10,7 @@ This version is for Windows desktop applications using Visual Studio 2019 (16.11) or Visual Studio 2022. UVAtlas, a shared source library for creating and packing an isochart texture atlas. - Matches the September 4, 2024 release on GitHub. + Matches the October 29, 2024 release on GitHub. http://go.microsoft.com/fwlink/?LinkID=512686 images\icon.jpg diff --git a/CHANGELOG.md b/CHANGELOG.md index e9569cce..79397492 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,10 +6,19 @@ Release available for download on [GitHub](https://github.com/microsoft/UVAtlas/ ## Release History +### October 29, 2024 +* All enums now use ``uint32_t`` as the underlying type rather than ``unsigned long`` or ``int``. +* uvatlastool: + * Add "GNU-style" *--long-options* to the command-line tools (all existing switches are still supported) + * Refactored code to use shared header + * Updated for October 2024 DirectXTex & DirectXMesh releases +* CMake and MSBuild project updates + ### September 4, 2024 * CMake project updates including support for ARM64EC * Code review * Added GitHub Actions YAML files +* uvatlastool: Updated for September 2024 DirectXTex & DirectXMesh releases ### June 5, 2024 * CMake project updates diff --git a/CMakeLists.txt b/CMakeLists.txt index a6c8e24d..9be54f3f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required (VERSION 3.20) -set(UVATLAS_VERSION 1.8.8) +set(UVATLAS_VERSION 1.8.9) if(WINDOWS_STORE OR (DEFINED XBOX_CONSOLE_TARGET)) set(CMAKE_TRY_COMPILE_TARGET_TYPE "STATIC_LIBRARY") diff --git a/README.md b/README.md index b70b5e44..adce0584 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ http://go.microsoft.com/fwlink/?LinkID=512686 Copyright (c) Microsoft Corporation. -**September 4, 2024** +**October 29, 2024** This package contains UVAtlas, a shared source library for creating and packing an isochart texture atlas. @@ -16,25 +16,27 @@ These components are designed to work without requiring any content from the leg ## Directory Layout -* ``Inc\`` +* ``UVAtlas\`` - + Public Header File (in the DirectX C++ namespace): + + ``Inc\`` - * UVtlas.h - - UVAtlasCreate - - UVAtlasPartition - - UVAtlasPack - - UVAtlasComputeIMTFromPerVertexSignal - - UVAtlasComputeIMTFromSignal - - UVAtlasComputeIMTFromTexture - - UVAtlasComputeIMTFromPerTexelSignal - - UVAtlasApplyRemap + + Public Header File (in the DirectX C++ namespace): -* ``geodesics\``, ``isochart\`` + * UVtlas.h + - UVAtlasCreate + - UVAtlasPartition + - UVAtlasPack + - UVAtlasComputeIMTFromPerVertexSignal + - UVAtlasComputeIMTFromSignal + - UVAtlasComputeIMTFromTexture + - UVAtlasComputeIMTFromPerTexelSignal + - UVAtlasApplyRemap - + Library source files + * ``geodesics\``, ``isochart\`` -* ``UVAtasTool\`` + + Library source files + +* ``UVAtlasTool\`` + Command line tool and sample for UVAtlas library @@ -78,6 +80,19 @@ For a full change history, see [CHANGELOG.md](https://github.com/microsoft/UVAtl * When using clang/LLVM for the ARM64/AArch64 platform, the Windows 11 SDK ([22000](https://walbourn.github.io/windows-sdk-for-windows-11/)) or later is required. +* As of the October 2024 release, the command-line tool also supports GNU-style long options using ``--``. All existing switches continue to function, but some of the `-` options are now deprecated per this table: + +|Old switch|New switch| +|---|---| +|-sdkmesh|-ft sdkmesh
--file-type sdkmesh| +|-sdkmesh2|-ft sdkmesh2
--file-type sdkmesh2| +|-cmo|-ft cmo
--file-type cmo| +|-vbo|-ft vbo
--file-type vbo| +|-wf|-ft obj
--file-type obj| +|-flipu|--flip-u| +|-flipv|--flip-v| +|-flipz|--flip-z| + ## Contributing This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. diff --git a/UVAtlas/inc/UVAtlas.h b/UVAtlas/inc/UVAtlas.h index 0d4ff5c6..b57ceaa4 100644 --- a/UVAtlas/inc/UVAtlas.h +++ b/UVAtlas/inc/UVAtlas.h @@ -42,7 +42,7 @@ #include -#define UVATLAS_VERSION 188 +#define UVATLAS_VERSION 189 namespace DirectX diff --git a/UVAtlasTool/MeshOBJ.cpp b/UVAtlasTool/MeshOBJ.cpp index 07352596..1c8777c1 100644 --- a/UVAtlasTool/MeshOBJ.cpp +++ b/UVAtlasTool/MeshOBJ.cpp @@ -65,7 +65,9 @@ HRESULT LoadFromOBJ( bool ccw, bool dds) { - WaveFrontReader wfReader; + using Vertex = DX::WaveFrontReader::Vertex; + + DX::WaveFrontReader wfReader; HRESULT hr = wfReader.Load(szFilename, ccw); if (FAILED(hr)) return hr; @@ -117,7 +119,7 @@ HRESULT LoadFromOBJ( if (FAILED(hr)) return hr; - hr = vbr.AddStream(wfReader.vertices.data(), wfReader.vertices.size(), 0, sizeof(WaveFrontReader::Vertex)); + hr = vbr.AddStream(wfReader.vertices.data(), wfReader.vertices.size(), 0, sizeof(Vertex)); if (FAILED(hr)) return hr; diff --git a/UVAtlasTool/UVAtlasTool_2019.vcxproj b/UVAtlasTool/UVAtlasTool_2019.vcxproj index 8f0e4bd8..bd92bbf6 100644 --- a/UVAtlasTool/UVAtlasTool_2019.vcxproj +++ b/UVAtlasTool/UVAtlasTool_2019.vcxproj @@ -315,14 +315,14 @@ - - + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/UVAtlasTool/UVAtlasTool_2022.vcxproj b/UVAtlasTool/UVAtlasTool_2022.vcxproj index a5547d8b..fa351e29 100644 --- a/UVAtlasTool/UVAtlasTool_2022.vcxproj +++ b/UVAtlasTool/UVAtlasTool_2022.vcxproj @@ -315,14 +315,14 @@ - - + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. - - + + \ No newline at end of file diff --git a/UVAtlasTool/packages.config b/UVAtlasTool/packages.config index 001f7bf9..241b3ca1 100644 --- a/UVAtlasTool/packages.config +++ b/UVAtlasTool/packages.config @@ -1,5 +1,5 @@  - - + + \ No newline at end of file