diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index f3e35dda77..08a1887f1a 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -4,8 +4,6 @@ on: push: branches: - main - - 2.2.0 - - release/* paths: - 'deps/**' - 'src/**' @@ -18,23 +16,6 @@ on: - ".github/workflows/build_*.yml" - 'scripts/flatpak/**' - pull_request: - branches: - - main - - 2.2.0 - - release/* - paths: - - 'deps/**' - - 'src/**' - - '**/CMakeLists.txt' - - 'version.inc' - - 'CHANGELOG*.md' - - 'RELEASE_NOTES*.md' - - ".github/workflows/build_*.yml" - - 'build_linux.sh' - - 'build_release_vs2022.bat' - - 'build_release_macos.sh' - - 'scripts/flatpak/**' workflow_dispatch: # allows for manual dispatch inputs: build-deps-only: @@ -65,13 +46,13 @@ jobs: os: ${{ matrix.os }} arch: ${{ matrix.arch }} build-deps-only: ${{ inputs.build-deps-only || false }} - force-build: ${{ github.event_name == 'schedule' }} + force-build: false secrets: inherit publish_release: name: Publish Release needs: [build_all] - if: ${{ !cancelled() && needs.build_all.result == 'success' && github.event_name != 'pull_request' && github.repository != 'Snapmaker/OrcaSlicer' && inputs.build-deps-only != true }} + if: ${{ !cancelled() && needs.build_all.result == 'success' && github.repository != 'Snapmaker/OrcaSlicer' && inputs.build-deps-only != true }} runs-on: ubuntu-latest permissions: actions: read @@ -91,7 +72,7 @@ jobs: safe_ref=$(printf '%s' "$ref_name" | tr '/ ' '--' | tr -cd '[:alnum:]._-' ) version=$(grep 'set(Snapmaker_VERSION' version.inc | cut -d '"' -f2) tag="v${version}" - title="Snapmaker Orca Full Spectrum v${version}" + title="SnapmakerOrca-FullSpectrum v${version}" notes_content="" for notes_file in \ diff --git a/.github/workflows/build_orca.yml b/.github/workflows/build_orca.yml index aff33ee32a..6d15d6c1d8 100644 --- a/.github/workflows/build_orca.yml +++ b/.github/workflows/build_orca.yml @@ -257,12 +257,6 @@ jobs: if: inputs.os == 'windows-latest' uses: microsoft/setup-msbuild@v2 - - name: Install nsis - if: inputs.os == 'windows-latest' - run: | - dir "C:/Program Files (x86)/Windows Kits/10/Include" - choco install nsis - - name: Build slicer Win if: inputs.os == 'windows-latest' working-directory: ${{ github.workspace }} @@ -271,12 +265,6 @@ jobs: WindowsSDKVersion: '10.0.26100.0\' run: .\build_release_vs2022.bat slicer - - name: Create installer Win - if: inputs.os == 'windows-latest' - working-directory: ${{ github.workspace }}/build - run: | - cpack -G NSIS - - name: Pack app if: inputs.os == 'windows-latest' working-directory: ${{ github.workspace }}/build @@ -296,13 +284,6 @@ jobs: name: Snapmaker_Orca_Windows_${{ env.ver }}_portable path: ${{ github.workspace }}/build/Snapmaker_Orca_Windows_${{ env.ver }}_portable.zip - - name: Upload artifacts Win installer - if: inputs.os == 'windows-latest' - uses: actions/upload-artifact@v4 - with: - name: Snapmaker_Orca_Windows_${{ env.ver }} - path: ${{ github.workspace }}/build/Snapmaker_Orca*.exe - - name: Upload artifacts Win PDB if: inputs.os == 'windows-latest' uses: actions/upload-artifact@v4 @@ -328,16 +309,6 @@ jobs: asset_content_type: application/x-zip-compressed max_releases: 1 - - name: Deploy Windows release installer - if: ${{ github.repository == 'Snapmaker/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/2.3.0-final') && inputs.os == 'windows-latest' }} - uses: WebFreak001/deploy-nightly@v3.2.0 - with: - upload_url: https://uploads.github.com/repos/Snapmaker/OrcaSlicer/releases/169912305/assets{?name,label} - release_id: 169912305 - asset_path: ${{ github.workspace }}/build/Snapmaker_Orca_Windows_Installer_${{ env.ver }}.exe - asset_name: Snapmaker_Orca_Windows_Installer_${{ env.ver }}.exe - asset_content_type: application/x-msdownload - max_releases: 1 - name: Deploy Windows Snapmaker_Orca_profile_validator release if: ${{ github.repository == 'Snapmaker/OrcaSlicer' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/2.3.0-final') && inputs.os == 'windows-latest' }} uses: WebFreak001/deploy-nightly@v3.2.0 diff --git a/CMakeLists.txt b/CMakeLists.txt index eda197229f..6326346ba2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -936,7 +936,7 @@ set (CPACK_PACKAGE_VERSION_MAJOR "${ORCA_VERSION_MAJOR}") set (CPACK_PACKAGE_VERSION_MINOR "${ORCA_VERSION_MINOR}") set (CPACK_PACKAGE_VERSION_PATCH "${ORCA_VERSION_PATCH}") set (CPACK_PACKAGE_FILE_NAME "Snapmaker_Orca_Windows_Installer_V${Snapmaker_VERSION}") -set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "Snapmaker Orca is an open source slicer for FDM printers") +set (CPACK_PACKAGE_DESCRIPTION_SUMMARY "SnapmakerOrca-FullSpectrum is an open source slicer for FDM printers") set (CPACK_PACKAGE_HOMEPAGE_URL "https://github.com/Snapmaker/OrcaSlicer") set (CPACK_PACKAGE_INSTALL_DIRECTORY ${CPACK_PACKAGE_NAME}) set (CPACK_PACKAGE_ICON "${CMAKE_SOURCE_DIR}/resources/images\\\\Snapmaker_Orca.ico") @@ -944,14 +944,14 @@ set (CPACK_NSIS_MUI_ICON "${CPACK_PACKAGE_ICON}") set (CPACK_NSIS_MUI_UNIICON "${CPACK_PACKAGE_ICON}") set (CPACK_NSIS_INSTALLED_ICON_NAME "$INSTDIR\\\\snapmaker orca.exe") set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS " - CreateShortCut \\\"$DESKTOP\\\\Snapmaker Orca.lnk\\\" \\\"$INSTDIR\\\\snapmaker-orca.exe\\\" + CreateShortCut \\\"$DESKTOP\\\\SnapmakerOrca-FullSpectrum.lnk\\\" \\\"$INSTDIR\\\\snapmaker-orca.exe\\\" ") set (CPACK_PACKAGE_CHECKSUM SHA256) set (CPACK_PACKAGE_INSTALL_REGISTRY_KEY "Snapmaker_Orca") set (CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON) set (CPACK_NSIS_EXECUTABLES_DIRECTORY ".") # set (CPACK_NSIS_MODIFY_PATH "ON") -set(CPACK_PACKAGE_EXECUTABLES "snapmaker-orca;Snapmaker Orca") +set(CPACK_PACKAGE_EXECUTABLES "snapmaker-orca;SnapmakerOrca-FullSpectrum") set(CPACK_CREATE_DESKTOP_LINKS "snapmaker-orca") set (CPACK_RESOURCE_FILE_LICENSE ${CMAKE_SOURCE_DIR}/LICENSE.txt) # must also include in install command diff --git a/FS_icon.png b/FS_icon.png new file mode 100644 index 0000000000..a2bb35303b Binary files /dev/null and b/FS_icon.png differ diff --git a/README.md b/README.md index 664952877c..5228de59a5 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -

Full Spectrum

+

Snapmaker Orca FullSpectrum

### A Snapmaker Orca Fork with Mixed-Color Filament Support @@ -17,18 +17,13 @@ If you find this fun or interesting! ## ⚠️ **IMPORTANT DISCLAIMER** ⚠️ -**This fork is currently in active development and has NOT been tested on actual hardware! ** +**This fork is currently in active development and has been tested on actual hardware.** -- **Not Production Ready**: The mixed-color filament feature is experimental and untested -- **No U1 Access**: Development is being done without access to a Snapmaker U1 printer -- **Help Needed**: If you have a U1 and are willing to test this fork, please reach out! -- **Use at Your Own Risk**: This software may produce incorrect G-code or unexpected behavior - -**I am actively seeking testers with Snapmaker U1 printers to help validate and improve this feature.** +- **Use at Your Own Risk**: As with any slicer fork, please review critical prints and generated G-code before production use --- -**Full Spectrum** is an open source slicer for FDM printers based on Snapmaker Orca and OrcaSlicer, optimized for Snapmaker's U1 multi-color 3D printer with independent tool heads. This fork adds support for virtual mixed-color filaments, enabling you to create new colors by alternating layers between physical filaments. +**Snapmaker Orca FullSpectrum** is an open source slicer for FDM printers based on Snapmaker Orca and OrcaSlicer, optimized for Snapmaker's U1 multi-color 3D printer with independent tool heads. This fork adds support for virtual mixed-color filaments, enabling you to create new colors by alternating layers between physical filaments. @@ -36,12 +31,12 @@ If you find this fun or interesting! ### Stable Release 📥 **[Download the Latest Stable Release](https://github.com/ratdoux/OrcaSlicer-FullSpectrum/releases)** -Visit our GitHub Releases page for the latest stable version of Full Spectrum, recommended for most users. +Visit our GitHub Releases page for the latest stable version of Snapmaker Orca FullSpectrum, recommended for most users. # Features ## Mixed-Color Filaments -Full Spectrum includes support for **virtual mixed-color filaments** designed for the Snapmaker U1 multi-color printer with independent print heads. +Snapmaker Orca FullSpectrum includes support for **virtual mixed-color filaments** designed for the Snapmaker U1 multi-color printer with independent print heads. ### How It Works - **Create new colors by mixing**: Combine two physical filaments to create a new color appearance through layer alternation @@ -67,7 +62,7 @@ Full Spectrum includes support for **virtual mixed-color filaments** designed fo 5. During slicing, the mixed filament resolves to alternating layers of its components ### Dithering Settings -Full Spectrum includes advanced dithering controls to fine-tune the layer alternation behavior for mixed filaments. These settings are found in **Others → Dithering** in the print settings: +Snapmaker Orca FullSpectrum includes advanced dithering controls to fine-tune the layer alternation behavior for mixed filaments. These settings are found in **Others → Dithering** in the print settings: #### Dithering Cadence Height A & B - **What it does**: Controls the height (in mm) of each alternating segment for the two component filaments @@ -92,7 +87,7 @@ These settings give you precise control over how your mixed colors appear in the # How to install **Windows**: -1. Download the installer for your preferred version from the [releases page](https://github.com/Snapmaker/OrcaSlicer/releases). +1. Download the installer for your preferred version from the [releases page](https://github.com/ratdoux/OrcaSlicer-FullSpectrum/releases). - *For convenience there is also a portable build available.* - *If you have troubles to run the build, you might need to install following runtimes:* - [MicrosoftEdgeWebView2RuntimeInstallerX64](https://github.com/SoftFever/OrcaSlicer/releases/download/v1.0.10-sf2/MicrosoftEdgeWebView2RuntimeInstallerX64.exe) @@ -167,7 +162,7 @@ resolution: 0.1 ## Some background -**Full Spectrum** is forked from Snapmaker Orca, which is originally forked from Orca Slicer by SoftFever. +**Snapmaker Orca FullSpectrum** is forked from Snapmaker Orca, which is originally forked from Orca Slicer by SoftFever. Orca Slicer was originally forked from Bambu Studio, it was previously known as BambuStudio-SoftFever. Bambu Studio is forked from [PrusaSlicer](https://github.com/prusa3d/PrusaSlicer) by Prusa Research, which is from [Slic3r](https://github.com/Slic3r/Slic3r) by Alessandro Ranellucci and the RepRap community. @@ -179,7 +174,7 @@ Special thanks to [u/Aceman11100](https://www.reddit.com/user/Aceman11100/) for # License -Full Spectrum is licensed under the GNU Affero General Public License, version 3. Full Spectrum is based on Snapmaker Orca. +Snapmaker Orca FullSpectrum is licensed under the GNU Affero General Public License, version 3. Snapmaker Orca FullSpectrum is based on Snapmaker Orca. Snapmaker Orca is licensed under the GNU Affero General Public License, version 3. Snapmaker Orca is based on Orca Slicer by SoftFever. @@ -200,6 +195,6 @@ The Bambu networking plugin is based on non-free libraries from BambuLab. It is Filament color blending is powered by [FilamentMixer](https://github.com/justinh-rahb/filament-mixer), an openly licensed library. # Feedback & Contribution -We greatly value feedback and contributions from our users. Your feedback will help us to further develop Full Spectrum for our community. +We greatly value feedback and contributions from our users. Your feedback will help us to further develop Snapmaker Orca FullSpectrum for our community. - To submit a bug or feature request, file an issue in GitHub Issues. - To contribute some code, make sure you have read and followed our guidelines for contributing. diff --git a/RELEASE_NOTES_v0.9.5.md b/RELEASE_NOTES_v0.9.5.md new file mode 100644 index 0000000000..498136e8e4 --- /dev/null +++ b/RELEASE_NOTES_v0.9.5.md @@ -0,0 +1,46 @@ +# Snapmaker Orca FullSpectrum v0.95 + +Mixed-color workflow improvements, Snapmaker 2.3.1 sync, and release polish. +Based on Snapmaker Orca v2.3.1. + +## Quick Overview + +- Rebased the fork onto the newer Snapmaker Orca 2.3.x line and updated the base to 2.3.1. +- Improved mixed-color generation so it can find better color matches and manage gradients more cleanly. +- Added more control over how infill uses filaments, including first-layer and last-layer behavior. +- Reduced fragmentation in painted mixed-color areas by collapsing same-color regions where possible. +- Refreshed release branding with the Snapmaker Orca FullSpectrum name, updated About dialog information, and the new FS app icon. + +## More Detailed Overview + +### Base Sync And Stability + +- Synced FullSpectrum with the Snapmaker 2.3.0 update path and bumped the base version to Snapmaker Orca 2.3.1. +- Pulled in a wide set of upstream Linux, macOS, packaging, Flutter-resource, and web/download-flow fixes from the Snapmaker 2.3.x branch. +- Included the OpenVDB clang patch fix from PR #66. +- Kept the fork release flow focused on the fork itself, including the fork release link in the README and Windows portable packaging for releases. + +### Mixed-Color And Dithering Improvements + +- Added a brute-force color mixer path that can search for closer 2-, 3-, or 4-filament combinations from the selected physical filaments. +- Added `min_component_percent` validation so suggested mixes stay within more useful and realistic component ranges. +- Added controls for auto-generated mixed filament gradients, including preference handling and guardrails for very large generated sets. +- Added an explicit infill filament override setting so infill can use a different filament without relying on implicit behavior. +- Added per-layer control to keep base filament on the first and last layers before switching infill to the override filament. +- Added support for collapsing same-color mixed filament regions across painted areas so equivalent output colors can slice as larger continuous regions instead of separate islands. +- Added additional Local-Z and mixed-filament slicing fixes plus broader regression coverage in tests. + +### Workflow And Usability Improvements + +- Fixed the `.gcode.3mf` filename issue. +- Fixed wipe tower brim behavior inherited from the 2.2.3 line. +- Added and expanded tests around mixed filament handling, slicing behavior, and output generation. +- Updated visible app branding to Snapmaker Orca FullSpectrum. +- Updated the About page to show both the Snapmaker Orca base version and the FullSpectrum fork version. +- Replaced the app icon set with the new FS branding assets. + +## Notes + +- This release has been tested on actual hardware. +- macOS builds from this fork remain unsigned and not notarized. +- Release downloads for this fork are available here: https://github.com/ratdoux/OrcaSlicer-FullSpectrum/releases diff --git a/resources/images/Snapmaker_Orca-mac_128px.png b/resources/images/Snapmaker_Orca-mac_128px.png index cf16b5d730..75301d9143 100644 Binary files a/resources/images/Snapmaker_Orca-mac_128px.png and b/resources/images/Snapmaker_Orca-mac_128px.png differ diff --git a/resources/images/Snapmaker_Orca-mac_256px.ico b/resources/images/Snapmaker_Orca-mac_256px.ico index 3f9fa08e19..568144e5c5 100644 Binary files a/resources/images/Snapmaker_Orca-mac_256px.ico and b/resources/images/Snapmaker_Orca-mac_256px.ico differ diff --git a/resources/images/Snapmaker_Orca.icns b/resources/images/Snapmaker_Orca.icns index a9999b38ab..f013e25998 100644 Binary files a/resources/images/Snapmaker_Orca.icns and b/resources/images/Snapmaker_Orca.icns differ diff --git a/resources/images/Snapmaker_Orca.ico b/resources/images/Snapmaker_Orca.ico index 3a12cd1f23..568144e5c5 100644 Binary files a/resources/images/Snapmaker_Orca.ico and b/resources/images/Snapmaker_Orca.ico differ diff --git a/resources/images/Snapmaker_Orca.png b/resources/images/Snapmaker_Orca.png index 506b68e69c..2610afa1ce 100644 Binary files a/resources/images/Snapmaker_Orca.png and b/resources/images/Snapmaker_Orca.png differ diff --git a/resources/images/Snapmaker_OrcaTitle.ico b/resources/images/Snapmaker_OrcaTitle.ico index 6107ce2ea0..568144e5c5 100644 Binary files a/resources/images/Snapmaker_OrcaTitle.ico and b/resources/images/Snapmaker_OrcaTitle.ico differ diff --git a/resources/images/Snapmaker_OrcaTitle.png b/resources/images/Snapmaker_OrcaTitle.png index 8c6776414c..2610afa1ce 100644 Binary files a/resources/images/Snapmaker_OrcaTitle.png and b/resources/images/Snapmaker_OrcaTitle.png differ diff --git a/resources/images/Snapmaker_Orca_128px.png b/resources/images/Snapmaker_Orca_128px.png index cf16b5d730..75301d9143 100644 Binary files a/resources/images/Snapmaker_Orca_128px.png and b/resources/images/Snapmaker_Orca_128px.png differ diff --git a/resources/images/Snapmaker_Orca_154.png b/resources/images/Snapmaker_Orca_154.png index 64bad0a1a3..2f93b36045 100644 Binary files a/resources/images/Snapmaker_Orca_154.png and b/resources/images/Snapmaker_Orca_154.png differ diff --git a/resources/images/Snapmaker_Orca_154_title.png b/resources/images/Snapmaker_Orca_154_title.png index 9cc51caba9..2f93b36045 100644 Binary files a/resources/images/Snapmaker_Orca_154_title.png and b/resources/images/Snapmaker_Orca_154_title.png differ diff --git a/resources/images/Snapmaker_Orca_192px.png b/resources/images/Snapmaker_Orca_192px.png index 60871703df..cb885713f6 100644 Binary files a/resources/images/Snapmaker_Orca_192px.png and b/resources/images/Snapmaker_Orca_192px.png differ diff --git a/resources/images/Snapmaker_Orca_192px_grayscale.png b/resources/images/Snapmaker_Orca_192px_grayscale.png index 60871703df..253270463b 100644 Binary files a/resources/images/Snapmaker_Orca_192px_grayscale.png and b/resources/images/Snapmaker_Orca_192px_grayscale.png differ diff --git a/resources/images/Snapmaker_Orca_192px_transparent.png b/resources/images/Snapmaker_Orca_192px_transparent.png index e66de32767..dfb37875fc 100644 Binary files a/resources/images/Snapmaker_Orca_192px_transparent.png and b/resources/images/Snapmaker_Orca_192px_transparent.png differ diff --git a/resources/images/Snapmaker_Orca_32px.png b/resources/images/Snapmaker_Orca_32px.png index 58f0615c4f..93f7eac947 100644 Binary files a/resources/images/Snapmaker_Orca_32px.png and b/resources/images/Snapmaker_Orca_32px.png differ diff --git a/resources/images/Snapmaker_Orca_64.png b/resources/images/Snapmaker_Orca_64.png index 369dd27802..c2c344eefe 100644 Binary files a/resources/images/Snapmaker_Orca_64.png and b/resources/images/Snapmaker_Orca_64.png differ diff --git a/resources/images/Snapmaker_Orca_about.svg b/resources/images/Snapmaker_Orca_about.svg index 401babdf82..4a5496abd8 100644 --- a/resources/images/Snapmaker_Orca_about.svg +++ b/resources/images/Snapmaker_Orca_about.svg @@ -1,87 +1,18 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/resources/images/Snapmaker_Orca_gradient.png b/resources/images/Snapmaker_Orca_gradient.png index 506b68e69c..2610afa1ce 100644 Binary files a/resources/images/Snapmaker_Orca_gradient.png and b/resources/images/Snapmaker_Orca_gradient.png differ diff --git a/resources/images/Snapmaker_Orca_gradient_circle.png b/resources/images/Snapmaker_Orca_gradient_circle.png index 506b68e69c..995025f2a9 100644 Binary files a/resources/images/Snapmaker_Orca_gradient_circle.png and b/resources/images/Snapmaker_Orca_gradient_circle.png differ diff --git a/resources/images/Snapmaker_Orca_gradient_narrow.png b/resources/images/Snapmaker_Orca_gradient_narrow.png index 506b68e69c..2610afa1ce 100644 Binary files a/resources/images/Snapmaker_Orca_gradient_narrow.png and b/resources/images/Snapmaker_Orca_gradient_narrow.png differ diff --git a/resources/images/Snapmaker_Orca_gray.png b/resources/images/Snapmaker_Orca_gray.png index 506b68e69c..fd44f1da8e 100644 Binary files a/resources/images/Snapmaker_Orca_gray.png and b/resources/images/Snapmaker_Orca_gray.png differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 257b15ed19..8f1b474325 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -293,7 +293,7 @@ else () set(MACOSX_BUNDLE_ICON_FILE Icon.icns) set_target_properties(Snapmaker_Orca PROPERTIES MACOSX_BUNDLE TRUE - MACOSX_BUNDLE_BUNDLE_NAME "Snapmaker Orca" + MACOSX_BUNDLE_BUNDLE_NAME "SnapmakerOrca-FullSpectrum" MACOSX_BUNDLE_SHORT_VERSION_STRING ${Snapmaker_VERSION} MACOSX_BUNDLE_COPYRIGHT "Copyright © 2024-2026 Snapmaker. All rights reserved.") # Get the bundle directory by going up from the executable to the .app bundle diff --git a/src/common_func/common_func.hpp b/src/common_func/common_func.hpp index cd985e1908..b4021face3 100644 --- a/src/common_func/common_func.hpp +++ b/src/common_func/common_func.hpp @@ -3,10 +3,11 @@ #include -#define SLIC3R_APP_NAME "Snapmaker Orca" +#define SLIC3R_APP_NAME "SnapmakerOrca-FullSpectrum" #define SLIC3R_APP_KEY "Snapmaker_Orca" #define SLIC3R_VERSION "01.10.01.50" #define Snapmaker_VERSION "2.3.1" +#define FULLSPECTRUM_VERSION "0.9.5" #define MIN_FIRM_VER "1.0.0" #ifndef GIT_COMMIT_HASH #define GIT_COMMIT_HASH "0000000" // 0000000 means uninitialized @@ -33,4 +34,4 @@ namespace common } // namespace common -#endif \ No newline at end of file +#endif diff --git a/src/dev-utils/platform/osx/Info.plist.in b/src/dev-utils/platform/osx/Info.plist.in index 0f353a274d..93796b7168 100644 --- a/src/dev-utils/platform/osx/Info.plist.in +++ b/src/dev-utils/platform/osx/Info.plist.in @@ -9,7 +9,7 @@ CFBundleIconFile images/Snapmaker_Orca.icns CFBundleName - @SLIC3R_APP_KEY@ + @SLIC3R_APP_NAME@ CFBundleShortVersionString @SLIC3R_APP_NAME@ @SLIC3R_BUILD_ID@ CFBundleIdentifier @@ -131,7 +131,7 @@ NSHighResolutionCapable NSLocalNetworkUsageDescription - Snapmaker Orca needs access to your local network to discover and connect to your 3D printer(s), and to serve the app's device interface on localhost. + SnapmakerOrca-FullSpectrum needs access to your local network to discover and connect to your 3D printer(s), and to serve the app's device interface on localhost. NSBonjourServices _http._tcp diff --git a/src/dev-utils/platform/unix/Snapmaker_Orca.desktop b/src/dev-utils/platform/unix/Snapmaker_Orca.desktop index 8d52159124..311ecd7b20 100644 --- a/src/dev-utils/platform/unix/Snapmaker_Orca.desktop +++ b/src/dev-utils/platform/unix/Snapmaker_Orca.desktop @@ -1,5 +1,5 @@ [Desktop Entry] -Name=Snapmaker Orca +Name=SnapmakerOrca-FullSpectrum GenericName=3D Printing Software Icon=Snapmaker_Orca Exec=snapmaker-orca %U diff --git a/src/libslic3r/libslic3r.h b/src/libslic3r/libslic3r.h index 8d0f779129..fc127f5ed9 100644 --- a/src/libslic3r/libslic3r.h +++ b/src/libslic3r/libslic3r.h @@ -2,7 +2,7 @@ #define _libslic3r_h_ #include "common_func/common_func.hpp" -#define SLIC3R_APP_FULL_NAME "Snapmaker Orca" +#define SLIC3R_APP_FULL_NAME "SnapmakerOrca-FullSpectrum" #define GCODEVIEWER_APP_NAME "Snapmaker_Orca G-code Viewer" #define GCODEVIEWER_APP_KEY "Snapmaker_OrcaGcodeViewer" #define GCODEVIEWER_BUILD_ID std::string("Snapmaker_Orca G-code Viewer-") + std::string(SLIC3R_VERSION) + std::string("-RC") diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index e2d8364a70..d68f2e189f 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -149,9 +149,9 @@ wxString CopyrightsDialog::get_html_text() "", bgr_clr_str, text_clr_str, text_clr_str, _L("License"), - _L("Snapmaker Orca is licensed under "), + _L("SnapmakerOrca-FullSpectrum is licensed under "), "https://www.gnu.org/licenses/agpl-3.0.html",_L("GNU Affero General Public License, version 3"), - _L("Snapmaker Orca is Based on Orca Slicer"), + _L("SnapmakerOrca-FullSpectrum is based on Orca Slicer"), _L("Libraries"), _L("This software uses open source components whose copyright and other proprietary rights belong to their respective owners")); @@ -212,7 +212,7 @@ void CopyrightsDialog::onCloseDialog(wxEvent &) AboutDialog::AboutDialog() : DPIDialog(static_cast(wxGetApp().mainframe), wxID_ANY, - wxString::Format(_L("About %s"), _L("Snapmaker Orca Full Spectrum")), + wxString::Format(_L("About %s"), _L("Snapmaker Orca FullSpectrum")), wxDefaultPosition, wxDefaultSize, /*wxCAPTION*/wxDEFAULT_DIALOG_STYLE) @@ -245,26 +245,39 @@ AboutDialog::AboutDialog() // version { + const int title_wrap_width = FromDIP(520); + const wxString sm_version_label = format_wxstr("Snapmaker Orca %1%", Snapmaker_VERSION); + const wxString fs_version_label = format_wxstr("FullSpectrum %1%", FULLSPECTRUM_VERSION); vesizer->Add(0, FromDIP(165), 1, wxEXPAND, FromDIP(5)); - auto version_string = _L("Snapmaker Orca Full Spectrum") + " " + std::string(Snapmaker_VERSION); - wxStaticText* version = new wxStaticText(this, wxID_ANY, version_string.c_str(), wxDefaultPosition, wxDefaultSize); + wxStaticText* version = new wxStaticText(this, wxID_ANY, _L("Snapmaker Orca FullSpectrum"), wxDefaultPosition, wxSize(title_wrap_width, -1), wxALIGN_CENTER_HORIZONTAL); + wxStaticText* sm_version = new wxStaticText(this, wxID_ANY, sm_version_label, wxDefaultPosition, wxSize(title_wrap_width, -1), wxALIGN_CENTER_HORIZONTAL); + wxStaticText* fs_version = new wxStaticText(this, wxID_ANY, fs_version_label, wxDefaultPosition, wxSize(title_wrap_width, -1), wxALIGN_CENTER_HORIZONTAL); wxStaticText* bs_version = new wxStaticText(this, wxID_ANY, wxString::Format("Based on Orca Slicer"), wxDefaultPosition, wxDefaultSize); bs_version->SetFont(Label::Body_12); + sm_version->SetFont(Label::Body_12); + fs_version->SetFont(Label::Body_12); wxFont version_font = GetFont(); #ifdef __WXMSW__ version_font.SetPointSize(version_font.GetPointSize()-1); #else version_font.SetPointSize(11); #endif - version_font.SetPointSize(FromDIP(16)); + version_font.SetPointSize(14); version->SetFont(version_font); + version->Wrap(title_wrap_width); version->SetForegroundColour(wxColour("#FFFFFD")); + sm_version->SetForegroundColour(wxColour("#FFFFFD")); + fs_version->SetForegroundColour(wxColour("#FFFFFD")); bs_version->SetForegroundColour(wxColour("#FFFFFD")); version->SetBackgroundColour(wxColour("#4d4d4d")); + sm_version->SetBackgroundColour(wxColour("#4d4d4d")); + fs_version->SetBackgroundColour(wxColour("#4d4d4d")); bs_version->SetBackgroundColour(wxColour("#4d4d4d")); vesizer->Add(version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); + vesizer->Add(sm_version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(2)); + vesizer->Add(fs_version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(2)); vesizer->Add(bs_version, 0, wxALL | wxALIGN_CENTER_HORIZONTAL, FromDIP(5)); // #if BBL_INTERNAL_TESTING // wxString build_time = wxString::Format("Build Time: %s", std::string(SLIC3R_BUILD_TIME)); @@ -290,12 +303,13 @@ AboutDialog::AboutDialog() // SM Beta text_list.push_back(_L("Note: The firmware version of SnapmakerU1 should be no less than") + " " + std::string(MIN_FIRM_VER)); + text_list.push_back(_L("SnapmakerOrca-FullSpectrum is based on Snapmaker Orca.")); text_list.push_back(_L("Snapmaker Orca is forked from Orca Slicer by SoftFever.")); text_list.push_back(_L("OrcaSlicer is forked from Bambu Studio by Bambu Lab.")); text_list.push_back(_L("Bambu Studio is forked from PrusaSlicer by Prusa Research, which is from Slic3r by Alessandro Ranellucci and the RepRap community. Orca Slicer incorporates a lot of features from SuperSlicer by @supermerill.")); - text_list.push_back(_L("Snapmaker Orca integrates some features from the 3D printing open-source community, with specific attributions provided in the code comments.")); + text_list.push_back(_L("SnapmakerOrca-FullSpectrum integrates FullSpectrum-specific changes on top of the Snapmaker Orca codebase.")); text_list.push_back(_L("")); - text_list.push_back(_L("Snapmaker Orca is licensed under the GNU Affero Generall Public License, version 3.")); + text_list.push_back(_L("SnapmakerOrca-FullSpectrum is licensed under the GNU Affero Generall Public License, version 3.")); text_sizer->Add( 0, 0, 0, wxTOP, FromDIP(33)); bool is_zh = wxGetApp().app_config->get("language") == "zh_CN"; diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index d52e767bb9..e4645aef08 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -834,7 +834,7 @@ static void generic_exception_handle() // and terminate the app so it is at least certain to happen now. BOOST_LOG_TRIVIAL(error) << boost::format("std::bad_alloc exception: %1%") % ex.what(); flush_logs(); - wxString errmsg = wxString::Format(_L("Snapmaker Orca will terminate because of running out of memory." + wxString errmsg = wxString::Format(_L("SnapmakerOrca-FullSpectrum will terminate because of running out of memory." "It may be a bug. It will be appreciated if you report the issue to our team.")); wxMessageBox(errmsg + "\n\n" + wxString(ex.what()), _L("Fatal error"), wxOK | wxICON_ERROR); @@ -843,13 +843,13 @@ static void generic_exception_handle() } catch (const boost::io::bad_format_string& ex) { BOOST_LOG_TRIVIAL(error) << boost::format("Uncaught exception: %1%") % ex.what(); flush_logs(); - wxString errmsg = _L("Snapmaker Orca will terminate because of a localization error. " + wxString errmsg = _L("SnapmakerOrca-FullSpectrum will terminate because of a localization error. " "It will be appreciated if you report the specific scenario this issue happened."); wxMessageBox(errmsg + "\n\n" + wxString(ex.what()), _L("Critical error"), wxOK | wxICON_ERROR); std::terminate(); //throw; } catch (const std::exception& ex) { - wxLogError(format_wxstr(_L("Snapmaker Orca got an unhandled exception: %1%"), ex.what())); + wxLogError(format_wxstr(_L("SnapmakerOrca-FullSpectrum got an unhandled exception: %1%"), ex.what())); BOOST_LOG_TRIVIAL(error) << boost::format("Uncaught exception: %1%") % ex.what(); flush_logs(); throw; @@ -2023,7 +2023,7 @@ void GUI_App::init_webview_runtime() { // Check WebView Runtime if (!WebView::CheckWebViewRuntime()) { - int nRet = wxMessageBox(_L("Snapmaker Orca requires the Microsoft WebView2 Runtime to operate certain features.\nClick Yes to install it now."), + int nRet = wxMessageBox(_L("SnapmakerOrca-FullSpectrum requires the Microsoft WebView2 Runtime to operate certain features.\nClick Yes to install it now."), _L("WebView2 Runtime"), wxYES_NO); if (nRet == wxYES) { WebView::DownloadAndInstallWebViewRuntime(); @@ -2466,7 +2466,7 @@ bool GUI_App::on_init_inner() RichMessageDialog dlg(nullptr, wxString::Format(_L("%s\nDo you want to continue?"), msg), - "Snapmaker Orca", wxICON_QUESTION | wxYES_NO); + "SnapmakerOrca-FullSpectrum", wxICON_QUESTION | wxYES_NO); dlg.ShowCheckBox(_L("Remember my choice")); if (dlg.ShowModal() != wxID_YES) return false; @@ -2638,7 +2638,7 @@ bool GUI_App::on_init_inner() wxString tips = wxString::Format(_L("Click to download new version in default browser: %s"), version_str); DownloadDialog dialog(this->mainframe, tips, - _L("The Snapmaker Orca needs an upgrade"), + _L("SnapmakerOrca-FullSpectrum needs an upgrade"), false, wxCENTER | wxICON_INFORMATION); dialog.SetExtendedMessage(description_text); @@ -2887,7 +2887,7 @@ bool GUI_App::on_init_inner() m_config_corrupted = false; show_error(nullptr, _u8L( - "The Snapmaker Orca configuration file may be corrupted and cannot be parsed.\nSnapmaker Orca has attempted to recreate the " + "The SnapmakerOrca-FullSpectrum configuration file may be corrupted and cannot be parsed.\nSnapmakerOrca-FullSpectrum has attempted to recreate the " "configuration file.\nPlease note, application settings will be lost, but printer profiles will not be affected.")); } @@ -4528,7 +4528,7 @@ void GUI_App::on_http_error(wxCommandEvent &evt) // Version limit if (code == HttpErrorVersionLimited) { - MessageDialog msg_dlg(nullptr, _L("The version of Snapmaker Orca is too low and needs to be updated to the latest version before it can be used normally"), "", wxAPPLY | wxOK); + MessageDialog msg_dlg(nullptr, _L("The version of SnapmakerOrca-FullSpectrum is too low and needs to be updated to the latest version before it can be used normally"), "", wxAPPLY | wxOK); if (msg_dlg.ShowModal() == wxOK) { } @@ -5074,7 +5074,7 @@ std::string GUI_App::format_display_version() { if (!version_display.empty()) return version_display; - version_display = Snapmaker_VERSION; + version_display = std::string("Snapmaker Orca ") + Snapmaker_VERSION + " / FullSpectrum " + FULLSPECTRUM_VERSION; return version_display; } @@ -5786,14 +5786,14 @@ bool GUI_App::load_language(wxString language, bool initial) if (! wxLocale::IsAvailable(language_info->Language)) { // Loading the language dictionary failed. - wxString message = "Switching Snapmaker Orca to language " + language_info->CanonicalName + " failed."; + wxString message = "Switching SnapmakerOrca-FullSpectrum to language " + language_info->CanonicalName + " failed."; #if !defined(_WIN32) && !defined(__APPLE__) // likely some linux system message += "\nYou may need to reconfigure the missing locales, likely by running the \"locale-gen\" and \"dpkg-reconfigure locales\" commands.\n"; #endif if (initial) message + "\n\nApplication will close."; - wxMessageBox(message, "Snapmaker Orca - Switching language failed", wxOK | wxICON_ERROR); + wxMessageBox(message, "SnapmakerOrca-FullSpectrum - Switching language failed", wxOK | wxICON_ERROR); if (initial) std::exit(EXIT_FAILURE); else diff --git a/src/slic3r/GUI/GUI_Init.cpp b/src/slic3r/GUI/GUI_Init.cpp index 96f377e826..54b51b2e48 100644 --- a/src/slic3r/GUI/GUI_Init.cpp +++ b/src/slic3r/GUI/GUI_Init.cpp @@ -65,10 +65,10 @@ int GUI_Run(GUI_InitParams ¶ms) } } catch (const Slic3r::Exception &ex) { BOOST_LOG_TRIVIAL(error) << ex.what() << std::endl; - wxMessageBox(boost::nowide::widen(ex.what()), _L("Snapmaker Orca GUI initialization failed"), wxICON_STOP); + wxMessageBox(boost::nowide::widen(ex.what()), _L("SnapmakerOrca-FullSpectrum GUI initialization failed"), wxICON_STOP); } catch (const std::exception &ex) { BOOST_LOG_TRIVIAL(error) << ex.what() << std::endl; - wxMessageBox(format_wxstr(_L("Fatal error, exception caught: %1%"), ex.what()), _L("Snapmaker Orca GUI initialization failed"), wxICON_STOP); + wxMessageBox(format_wxstr(_L("Fatal error, exception caught: %1%"), ex.what()), _L("SnapmakerOrca-FullSpectrum GUI initialization failed"), wxICON_STOP); } // error return 1; diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index b8b78ce273..5c14f979e6 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -260,7 +260,7 @@ DPIFrame(NULL, wxID_ANY, "", wxDefaultPosition, wxDefaultSize, BORDERLESS_FRAME_ default: case GUI_App::EAppMode::Editor: m_taskbar_icon = std::make_unique(wxTBI_DOCK); - m_taskbar_icon->SetIcon(wxIcon(Slic3r::var("Snapmaker_Orca-mac_256px.ico"), wxBITMAP_TYPE_ICO), "Snapmaker Orca"); + m_taskbar_icon->SetIcon(wxIcon(Slic3r::var("Snapmaker_Orca-mac_256px.ico"), wxBITMAP_TYPE_ICO), "SnapmakerOrca-FullSpectrum"); break; case GUI_App::EAppMode::GCodeViewer: break; diff --git a/src/slic3r/GUI/Plater.cpp b/src/slic3r/GUI/Plater.cpp index b3d6bdf01a..9eec1e559c 100644 --- a/src/slic3r/GUI/Plater.cpp +++ b/src/slic3r/GUI/Plater.cpp @@ -14346,7 +14346,7 @@ void Plater::priv::set_project_name(const wxString& project_name) m_project_name = project_name; //update topbar title #ifdef __WINDOWS__ - wxGetApp().mainframe->SetTitle(m_project_name + " - Snapmaker Orca"); + wxGetApp().mainframe->SetTitle(m_project_name + " - SnapmakerOrca-FullSpectrum"); wxGetApp().mainframe->topbar()->SetTitle(m_project_name); #else wxGetApp().mainframe->SetTitle(m_project_name); diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index 5015d4dad2..00297e2203 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -252,7 +252,7 @@ void UpdatePluginDialog::update_info(std::string json_path) } UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent) - : DPIDialog(parent, wxID_ANY, _L("New version of Snapmaker Orca"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER) + : DPIDialog(parent, wxID_ANY, _L("New version of SnapmakerOrca-FullSpectrum"), wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX | wxRESIZE_BORDER) { std::string icon_path = (boost::format("%1%/images/Snapmaker_OrcaTitle.ico") % resources_dir()).str(); SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO)); diff --git a/src/slic3r/GUI/WebDownPluginDlg.cpp b/src/slic3r/GUI/WebDownPluginDlg.cpp index a1141ab48c..4049405080 100644 --- a/src/slic3r/GUI/WebDownPluginDlg.cpp +++ b/src/slic3r/GUI/WebDownPluginDlg.cpp @@ -31,7 +31,7 @@ using namespace nlohmann; namespace Slic3r { namespace GUI { -DownPluginFrame::DownPluginFrame(GUI_App *pGUI) : wxDialog((wxWindow *) (pGUI->mainframe), wxID_ANY, "Snapmaker Orca"), m_appconfig_new() +DownPluginFrame::DownPluginFrame(GUI_App *pGUI) : wxDialog((wxWindow *) (pGUI->mainframe), wxID_ANY, "SnapmakerOrca-FullSpectrum"), m_appconfig_new() { // INI m_MainPtr = pGUI; diff --git a/src/slic3r/GUI/WebGuideDialog.cpp b/src/slic3r/GUI/WebGuideDialog.cpp index 9a67906dba..01acc897f2 100644 --- a/src/slic3r/GUI/WebGuideDialog.cpp +++ b/src/slic3r/GUI/WebGuideDialog.cpp @@ -109,7 +109,7 @@ static wxString update_custom_filaments() } GuideFrame::GuideFrame(GUI_App *pGUI, long style) - : DPIDialog((wxWindow *) (pGUI->mainframe), wxID_ANY, "Snapmaker Orca", wxDefaultPosition, wxDefaultSize, style), + : DPIDialog((wxWindow *) (pGUI->mainframe), wxID_ANY, "SnapmakerOrca-FullSpectrum", wxDefaultPosition, wxDefaultSize, style), m_appconfig_new() { SetBackgroundColour(*wxWHITE); diff --git a/src/slic3r/GUI/WebPresetDialog.cpp b/src/slic3r/GUI/WebPresetDialog.cpp index b8f07a3da8..0dc93dd86d 100644 --- a/src/slic3r/GUI/WebPresetDialog.cpp +++ b/src/slic3r/GUI/WebPresetDialog.cpp @@ -114,7 +114,7 @@ static wxString update_custom_filaments() } WebPresetDialog::WebPresetDialog(GUI_App* pGUI, long style) - : DPIDialog((wxWindow*) (nullptr), wxID_ANY, "Snapmaker Orca", wxDefaultPosition, wxDefaultSize, style), m_appconfig_new() + : DPIDialog((wxWindow*) (nullptr), wxID_ANY, "SnapmakerOrca-FullSpectrum", wxDefaultPosition, wxDefaultSize, style), m_appconfig_new() { SetBackgroundColour(*wxWHITE); // INI diff --git a/src/slic3r/GUI/WebSMUserLoginDialog.cpp b/src/slic3r/GUI/WebSMUserLoginDialog.cpp index 9b23e17535..174f427995 100644 --- a/src/slic3r/GUI/WebSMUserLoginDialog.cpp +++ b/src/slic3r/GUI/WebSMUserLoginDialog.cpp @@ -40,7 +40,7 @@ END_EVENT_TABLE() int SMUserLogin::web_sequence_id = 20000; -SMUserLogin::SMUserLogin(bool isLogout) : wxDialog((wxWindow *) (wxGetApp().mainframe), wxID_ANY, "Snapmaker Orca") +SMUserLogin::SMUserLogin(bool isLogout) : wxDialog((wxWindow *) (wxGetApp().mainframe), wxID_ANY, "SnapmakerOrca-FullSpectrum") { // url auto region = wxGetApp().app_config->get_country_code(); diff --git a/src/slic3r/GUI/WebUserLoginDialog.cpp b/src/slic3r/GUI/WebUserLoginDialog.cpp index 17d1ad3f5b..f80571e16b 100644 --- a/src/slic3r/GUI/WebUserLoginDialog.cpp +++ b/src/slic3r/GUI/WebUserLoginDialog.cpp @@ -39,7 +39,7 @@ END_EVENT_TABLE() int ZUserLogin::web_sequence_id = 20000; -ZUserLogin::ZUserLogin() : wxDialog((wxWindow *) (wxGetApp().mainframe), wxID_ANY, "Snapmaker Orca") +ZUserLogin::ZUserLogin() : wxDialog((wxWindow *) (wxGetApp().mainframe), wxID_ANY, "SnapmakerOrca-FullSpectrum") { SetBackgroundColour(*wxWHITE); // Url diff --git a/version.inc b/version.inc index 384693fbe4..9b9df5d1a3 100644 --- a/version.inc +++ b/version.inc @@ -1,7 +1,7 @@ # Included by CMakeLists, edited by the build script # (the version numbers are generated by the build script from the git current label) -set(SLIC3R_APP_NAME "Snapmaker Orca") +set(SLIC3R_APP_NAME "SnapmakerOrca-FullSpectrum") set(SLIC3R_APP_KEY "Snapmaker_Orca") if(NOT DEFINED BBL_RELEASE_TO_PUBLIC) @@ -10,7 +10,8 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "0") endif() -set(Snapmaker_VERSION "0.9.4") +set(Snapmaker_VERSION "0.9.5") +set(FULLSPECTRUM_VERSION "0.9.5") set(MIN_FIRM_VER "1.0.0") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" Snapmaker_VERSION_MATCH ${Snapmaker_VERSION})