From 026ac1d4759224caad16b51e209de429de5eb570 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Concei=C3=A7=C3=A3o?= Date: Thu, 19 Dec 2024 06:55:48 +0000 Subject: [PATCH] v5.0.1 - (Fix) Windows MSI: System.IO.Compression.Native is missing when upgrading from 4.4.3 (#957) - (Fix) Index out of range when saving some file formats (#957) - (Change) Exposure time finder: Allow using 0 for the normal step in the multiple exposure generator (#958) --- CHANGELOG.md | 6 + Directory.Build.props | 3 +- RELEASE_NOTES.md | 27 +- UVtools.Core/Extensions/BitExtensions.cs | 4 +- UVtools.Core/FileFormats/FileFormat.cs | 2 +- .../OperationCalibrateExposureFinder.cs | 5 +- UVtools.Installer/Code/Product.wxs | 276 +++++++++--------- UVtools.Installer/Code/UI.wxs | 20 +- .../Code/UI_CustomInstallDir.wxs | 124 ++++---- .../CalibrateExposureFinderControl.axaml | 2 +- 10 files changed, 232 insertions(+), 237 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e597a0e..dddde4e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 19/12/2024 - v5.0.1 + +- (Fix) Windows MSI: System.IO.Compression.Native is missing when upgrading from 4.4.3 (#957) +- (Fix) Index out of range when saving some file formats (#957) +- (Change) Exposure time finder: Allow using 0 for the normal step in the multiple exposure generator (#958) + ## 18/12/2024 - v5.0.0 - **File formats:** diff --git a/Directory.Build.props b/Directory.Build.props index 501e5112..39080b48 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -37,13 +37,14 @@ true - 5.0.0 + 5.0.1 11.2.2 false + true diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 9359112b..8ec4bd89 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,26 +1,3 @@ -- **File formats:** - - (Add) Anycubic PWSZ Zip file format (#892) - - (Add) Support for Anycubic Photon Mono 4 (pm4n) and corresponding PrusaSlicer profile - - (Add) Support for Anycubic Photon Mono 4 Ultra (pm4u) and corresponding PrusaSlicer profile - - (Add) Support for Anycubic Photon Mono M7 (pm7) and corresponding PrusaSlicer profile - - (Add) Support for Anycubic Photon Mono M7 Max (pm7m) and corresponding PrusaSlicer profile - - (Add) Support for Anycubic Photon Mono M7 Pro (pwsz) and corresponding PrusaSlicer profile -- (Add) PrusaSlicer printer: Phrozen Sonic Mighty Revo (#950) -- (Add) Litophane tool: Option to enable or disable the separation of grayscale pixels (#954) -- (Add) Exposure time finder: Re-arrange exposure text layout and allow to change it font (#955) -- (Add) Setting: Available RAM lower limit - Sets a lower limiter for the available memory RAM the program is allowed to run operations. - When meet the threshold, a stopping action will be queued to relief pressure and maintain the system stability. - In cases where is unable to pause or cancel the operation, the program will be forced to close and trigger an exception to ensure the system stability. - Note: This limiter will check the RAM every 2 seconds while operations are running, if you have set a very low limit there is a chance to consume more RAM in the time and cause system instability. - System can also reserve some RAM to prevent depletion and start to use SWAP memory, doing such with a low limit and is possible that the limiter never trigger. - 0: Ignore the RAM limiter. - Default: 1 GB -- (Improvement) Change the gif animation library to a more efficient and compatible one -- (Fix) Contour traverse function was duplicating the contours, causing wrong calculations -- (Fix) Blur: Prevent stack blur from use even values -- (Upgrade) AvaloniaUI from 11.1.3 to 11.2.2 -- (Upgrade) .NET from 6.0.33 to 9.0.0 - - .NET 6.0 is end of life and will no longer supported - - This represents three major upgrades and will increase the system os version requirements, see more here: https://github.com/dotnet/core/blob/main/release-notes/9.0/supported-os.md - - With this upgrade the software will be able to take advantage of the new features and improvements of the .NET 9.0, including a significant performance boost +- (Fix) Index out of range when saving some file formats (#957) +- (Change) Exposure time finder: Allow using 0 for the normal step in the multiple exposure generator (#958) diff --git a/UVtools.Core/Extensions/BitExtensions.cs b/UVtools.Core/Extensions/BitExtensions.cs index d117e26c..77b6004b 100644 --- a/UVtools.Core/Extensions/BitExtensions.cs +++ b/UVtools.Core/Extensions/BitExtensions.cs @@ -112,7 +112,7 @@ public static byte[] ToBytesLittleEndian(float value) return bytes; } - public static void ToBytesLittleEndian(float value, byte[] buffer, uint offset = 0) + public static void ToBytesLittleEndian(float value, byte[] buffer, int offset = 0) { BinaryPrimitives.WriteSingleLittleEndian(buffer.AsSpan((int)offset, 4), value); } @@ -124,7 +124,7 @@ public static byte[] ToBytesBigEndian(float value) return bytes; } - public static void ToBytesBigEndian(float value, byte[] buffer, uint offset = 0) + public static void ToBytesBigEndian(float value, byte[] buffer, int offset = 0) { BinaryPrimitives.WriteSingleBigEndian(buffer.AsSpan((int)offset, 4), value); } diff --git a/UVtools.Core/FileFormats/FileFormat.cs b/UVtools.Core/FileFormats/FileFormat.cs index f6ab0a66..2ce2fc4f 100644 --- a/UVtools.Core/FileFormats/FileFormat.cs +++ b/UVtools.Core/FileFormats/FileFormat.cs @@ -815,7 +815,7 @@ or DATATYPE_BGR888 { var bytesPerPixel = dataType is "RGB888" or "BGR888" ? 3 : 2; var bytes = new byte[mat.Width * mat.Height * bytesPerPixel]; - uint index = 0; + int index = 0; var span = mat.GetDataByteReadOnlySpan(); for (int i = 0; i < span.Length;) { diff --git a/UVtools.Core/Operations/OperationCalibrateExposureFinder.cs b/UVtools.Core/Operations/OperationCalibrateExposureFinder.cs index d562cd00..0a30c632 100644 --- a/UVtools.Core/Operations/OperationCalibrateExposureFinder.cs +++ b/UVtools.Core/Operations/OperationCalibrateExposureFinder.cs @@ -2005,7 +2005,7 @@ lastExposureItem is not null && lastCurrentHeight == currentHeight && lastExposureItem.LayerHeight == layerHeight && ( - (isBottomLayer && lastExposureItem.BottomExposure == bottomExposure || !isBottomLayer && lastExposureItem.Exposure == normalExposure) || + ((isBottomLayer && lastExposureItem.BottomExposure == bottomExposure) || (!isBottomLayer && lastExposureItem.Exposure == normalExposure)) || (!isBottomLayer && isBaseLayer && _multipleExposuresBaseLayersPrintMode != CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.Iterative) ); @@ -2125,11 +2125,12 @@ lastExposureItem is not null && { layer.ExposureTime = _multipleExposuresBaseLayersPrintMode switch { + CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.Iterative => (float)normalExposure, CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.UseLowest => (float) _exposureTable[0].Exposure, CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.UseMiddle => (float) _exposureTable[(int) Math.Ceiling((_exposureTable.Count - 1) / 2.0)].Exposure, CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.UseHighest => (float) _exposureTable[^1].Exposure, CalibrateExposureFinderMultipleExposuresBaseLayersPrintModes.Custom => (float) _multipleExposuresBaseLayersCustomExposure, - _ => throw new ArgumentOutOfRangeException($"Unhandled type for {_multipleExposuresBaseLayersCustomExposure}") + _ => throw new ArgumentOutOfRangeException($"Unhandled type for {_multipleExposuresBaseLayersPrintMode}") }; } } diff --git a/UVtools.Installer/Code/Product.wxs b/UVtools.Installer/Code/Product.wxs index b83764bb..ee01df54 100644 --- a/UVtools.Installer/Code/Product.wxs +++ b/UVtools.Installer/Code/Product.wxs @@ -1,5 +1,5 @@ - - - + + - - - - - + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + - + diff --git a/UVtools.Installer/Code/UI.wxs b/UVtools.Installer/Code/UI.wxs index 6512e9bd..55780854 100644 --- a/UVtools.Installer/Code/UI.wxs +++ b/UVtools.Installer/Code/UI.wxs @@ -1,16 +1,16 @@  - - + + - - - + + + - + - - + + - - + + \ No newline at end of file diff --git a/UVtools.Installer/Code/UI_CustomInstallDir.wxs b/UVtools.Installer/Code/UI_CustomInstallDir.wxs index 011969e3..76fd4848 100644 --- a/UVtools.Installer/Code/UI_CustomInstallDir.wxs +++ b/UVtools.Installer/Code/UI_CustomInstallDir.wxs @@ -21,66 +21,66 @@ Patch dialog sequence: --> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/UVtools.UI/Controls/Calibrators/CalibrateExposureFinderControl.axaml b/UVtools.UI/Controls/Calibrators/CalibrateExposureFinderControl.axaml index 053116b1..5f4212f4 100644 --- a/UVtools.UI/Controls/Calibrators/CalibrateExposureFinderControl.axaml +++ b/UVtools.UI/Controls/Calibrators/CalibrateExposureFinderControl.axaml @@ -855,7 +855,7 @@