65 Commits

Author SHA1 Message Date
Wu JY
1c213cf00c Merge pull request #155 from Rudokhvist/CI
Fix MacOS build on CI
2025-12-23 12:29:07 +08:00
Rudokhvist
682d7fa8c2 Clean up debug output in main.yml
Removed debug echo statements from workflow.
2025-12-22 15:32:22 +02:00
Rudokhvist
984eab839f Merge branch 'QIDITECH:main' into CI 2025-12-22 13:29:21 +02:00
wjyLearn
97dcb7faee fix some bug 2025-12-22 19:27:47 +08:00
Rudokhvist
07f3f57ff9 Remove boost installation from workflow
Removed unnecessary installation command for boost.
2025-12-22 10:58:07 +02:00
Rudokhvist
af515a1dd8 Update Homebrew formula for boost@1.76 2025-12-22 10:54:05 +02:00
Rudokhvist
0d7743b677 Update Homebrew formula URL for boost@1.76 2025-12-22 10:51:43 +02:00
Rudokhvist
671ddc1a6a Add debug echo and cat commands in workflow
Added debug output for boost@1.76.rb installation.
2025-12-22 10:47:37 +02:00
Rudokhvist
2ed80815f0 Refactor Homebrew installation for boost@1.76
Updated Homebrew installation script to fetch boost@1.76.rb directly and modified the source URL for boost download.
2025-12-22 10:45:14 +02:00
Rudokhvist
37c90ca9ab Fix Homebrew installation script for macOS 2025-12-22 10:41:19 +02:00
Rudokhvist
a7c46d239e Remove boost@1.76 installation from workflow
Removed installation of boost@1.76 from macOS workflow.
2025-12-22 10:35:25 +02:00
Rudokhvist
0235484d93 Fix boost formulae in Homebrew workflow
Update boost formula URL in main.yml for Homebrew.
2025-12-22 10:31:31 +02:00
Rudokhvist
6d18e77544 Update Homebrew formula file names in workflow 2025-12-22 10:22:07 +02:00
Rudokhvist
374619bf24 Fix file paths for Homebrew formula installation 2025-12-22 10:19:41 +02:00
Rudokhvist
79257f9f9c Update Homebrew setup for libraries on Mac
Replaced Homebrew formula modifications with direct curl downloads for boost and icu4c.
2025-12-22 10:16:36 +02:00
Rudokhvist
a8f256aaa0 Add boost search command in Mac setup workflow 2025-12-22 09:26:51 +02:00
wjyLearn
c94ff49059 fix macos build 2025-12-22 12:26:51 +08:00
Wu JY
5d5b4e9d63 Merge pull request #146 from Rudokhvist/CI
Add CI to build on every push
2025-12-22 10:27:58 +08:00
wjyLearn
7f8ce1141c update version 2025-12-20 20:21:01 +08:00
wjyLearn
c23ce3c50a update src 2025-12-20 20:19:00 +08:00
wjyLearn
1a5e691672 update src\slic3r 2025-12-20 20:17:14 +08:00
wjyLearn
1078fe3389 update src\platform 2025-12-20 19:16:47 +08:00
wjyLearn
50572b196e update src\libslic3r 2025-12-20 19:15:57 +08:00
wjyLearn
69be99b00a update resources\web 2025-12-20 17:45:44 +08:00
wjyLearn
328f91afc2 update profiles 2025-12-20 17:41:25 +08:00
wjyLearn
408593c742 update resources 2025-12-20 17:21:00 +08:00
wjyLearn
e2c100f32d update translation 2025-12-20 17:19:07 +08:00
wjyLearn
d68307db4f update deps of mac 2025-12-20 16:15:38 +08:00
Rudokhvist
0acf5a33a2 Add CI to build on every push 2025-11-29 22:07:59 +02:00
wjyLearn
923263352a fix some bug 2025-11-26 15:10:44 +08:00
wjyLearn
8cdbd765df update version to 02.03.01.70 2025-11-25 15:02:54 +08:00
wjyLearn
8ce31ed7e1 fix some bug 2025-11-25 15:02:34 +08:00
wjyLearn
2809d34cb6 Add the configuration of the new machine Q2C and X-Max 4. 2025-11-25 15:01:15 +08:00
wjyLearn
82268132e9 fix some bug 2025-10-24 17:20:44 +08:00
wjyLearn
81ea36fdd8 fix some bug 2025-10-24 14:48:36 +08:00
wjyLearn
96cf7d2194 fix some bug 2025-10-24 14:37:50 +08:00
Wu JY
7878c0d2f4 Merge pull request #121 from Rudokhvist/debug
Fix build issues. Closes #120
2025-10-21 11:57:15 +08:00
Wu JY
6db0e20de9 Merge pull request #129 from Psych0h3ad/main
Fixed Japanese translation
2025-10-21 11:52:24 +08:00
Psych0h3ad
300b4e046d Merge pull request #1 from Psych0h3ad/Psych0h3ad-patch-1
Update index.html
2025-10-13 23:58:44 +09:00
Psych0h3ad
9ffbc2c959 Update index.html
Fixed Japanese translation
2025-10-13 23:58:04 +09:00
QIDI TECH
d8620a4d4d version update 2025-09-28 17:53:59 +08:00
QIDI TECH
6b46f9fd48 fix some bug 2025-09-26 11:05:45 +08:00
QIDI TECH
71252cf326 Update Qidi Q2 0.4 nozzle.json 2025-09-25 13:01:38 +08:00
QIDI TECH
6ec016a6f8 fix some bug 2025-09-25 12:07:30 +08:00
QIDI TECH
8177bf8912 fix some bug 2025-09-23 14:20:39 +08:00
QIDI TECH
523aea89af Update Qidi Q2 0.4 nozzle.json 2025-09-23 09:30:21 +08:00
QIDI TECH
f16489db9c version update 2025-09-22 19:17:43 +08:00
QIDI TECH
56232999f5 fix some bug 2025-09-22 15:42:42 +08:00
Rudokhvist
4648145b67 switch to new tool for appimage building 2025-09-19 18:12:47 +03:00
Rudokhvist
89a8103bad fix build 2025-09-19 11:08:36 +03:00
QIDI TECH
5cdfef9f9e update slic3r 2025-09-17 12:32:36 +08:00
QIDI TECH
0c78224f1a update libslic3r 2025-09-17 09:42:58 +08:00
QIDI TECH
eec6d77112 update resources 2025-09-17 09:23:01 +08:00
QIDI TECH
72a3a1e841 Update PrinterWebView.cpp 2025-08-18 14:27:10 +08:00
QIDI TECH
87acaa14f7 version update 2025-08-18 11:08:15 +08:00
QIDI TECH
dab82d0248 update src 2025-08-18 10:34:25 +08:00
QIDI TECH
15dd71693d update resources 2025-08-18 10:06:13 +08:00
QIDI TECH
2fa18f50c6 fix some bug 2025-08-06 15:29:14 +08:00
QIDI TECH
38c3592758 fix some bug 2025-08-05 16:12:34 +08:00
QIDI TECH
8a68adb427 update version 2025-08-04 16:37:41 +08:00
QIDI TECH
661b112a68 update slic3r 2025-08-04 16:30:53 +08:00
QIDI TECH
8d4d60ec48 update libslic3r 2025-08-04 10:13:51 +08:00
QIDI TECH
e3f49c2fb5 update resources 2025-08-01 14:48:54 +08:00
QIDI TECH
5effa59bd0 update i18n 2025-08-01 14:20:48 +08:00
QIDI TECH
8ed41b9f06 update deps 2025-08-01 14:19:36 +08:00
2353 changed files with 179567 additions and 45789 deletions

148
.github/workflows/main.yml vendored Normal file
View File

@@ -0,0 +1,148 @@
name: QIDIStudio-CI
on: [push, pull_request]
jobs:
main:
strategy:
matrix:
os: [ubuntu-latest, windows-2022, macos-15-intel]
runs-on: ${{ matrix.os }}
steps:
- name: Setup MSBUILD
if: startsWith(matrix.os, 'windows-')
uses: microsoft/setup-msbuild@v2
with:
vs-version: '[17.0,18.0)'
- name: Setup libraries on linux
if: startsWith(matrix.os, 'ubuntu-')
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
cmake \
extra-cmake-modules \
libglu1-mesa-dev \
libgtk-3-dev \
libdbus-1-dev \
libwebkit2gtk-4.1-dev \
libboost*1.74-dev \
libglfw3-dev \
libnlopt*-dev \
libtbb-dev \
nasm \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgstreamer-plugins-bad1.0-dev \
libcurl4-openssl-dev \
libosmesa6-dev
- name: Setup libraries on Mac
if: startsWith(matrix.os, 'macos-')
run: |
brew update
export HOMEBREW_NO_INSTALL_FROM_API=1
sed -i '' -e 's/disable!/#disable!/' /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/i/icu4c@74.rb
curl https://raw.githubusercontent.com/Homebrew/homebrew-core/aba405a30fa1a608a12adeb56bea8e1c5975a42d/Formula/b/boost%401.76.rb > /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/b/boost@1.76.rb
sed -i '' -e 's#https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2#https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2#' /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/b/boost@1.76.rb
brew install \
icu4c@74 \
boost@1.76 \
automake \
git \
nasm \
tbb \
texinfo \
zlib
- name: Setup PkgConfig
if: startsWith(matrix.os, 'windows-')
run: choco install pkgconfiglite -y
- name: Setup CMake
uses: ssrobins/install-cmake@v1
with:
version: 3.31.6
- name: Setup Perl
uses: shogo82148/actions-setup-perl@v1.36.0
- name: Checkout code
uses: actions/checkout@v2
- name: Build Dependencies on Windows
if: startsWith(matrix.os, 'windows-')
shell: cmd
run: |
set CMAKE_TLS_VERIFY=0
cd deps
mkdir build
cd build
mkdir QIDIStudio_dep
cmake ../ -G "Visual Studio 17 2022" -DDESTDIR="./QIDIStudio_dep" -DCMAKE_BUILD_TYPE=Release
msbuild /m ALL_BUILD.vcxproj
- name: Build QIDI Studio on Windows
if: startsWith(matrix.os, 'windows-')
shell: cmd
run: |
mkdir install_dir
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -DQDT_RELEASE_TO_PUBLIC=0 -DCMAKE_PREFIX_PATH="${{ github.workspace }}\deps\build\QIDIStudio_dep\usr\local" -DCMAKE_INSTALL_PREFIX="../install_dir" -DCMAKE_BUILD_TYPE=Release -DWIN10SDK_PATH="C:\Program Files (x86)\Windows Kits\10\Include\10.0.26100.0"
cmake --build . --target install --config Release
- name: Build QIDI Studio on Linux
if: startsWith(matrix.os, 'ubuntu-')
run: |
export CMAKE_TLS_VERIFY=0
sed -i "s/-DQDT_INTERNAL_TESTING=0/-DQDT_INTERNAL_TESTING=1 -DQDT_RELEASE_TO_PUBLIC=0/" BuildLinux.sh
chmod +x BuildLinux.sh
./BuildLinux.sh -dsi
- name: Build QIDI Studio on MacOS
if: startsWith(matrix.os, 'macos-')
run: |
export CMAKE_TLS_VERIFY=0
export PATH="/usr/local/opt/curl/bin:$PATH"
export PATH="/usr/local/opt/icu4c@78/bin:$PATH"
export PATH="/usr/local/opt/icu4c@78/sbin:$PATH"
export LDFLAGS="-L/usr/local/opt/curl/lib -L/usr/local/opt/boost@1.76/lib -L/usr/local/opt/icu4c@78/lib -L/usr/local/opt/zlib/lib -L/usr/local/opt/zstd/lib"
export CPPFLAGS="-I/usr/local/opt/curl/include -I/usr/local/opt/boost@1.76/include -I/usr/local/opt/icu4c@78/include -I/usr/local/opt/zlib/include -I/usr/local/opt/zstd/include"
export PKG_CONFIG_PATH="/usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/boost@1.76/lib/pkgconfig:/usr/local/opt/icu4c@78/lib/pkgconfig:/usr/local/opt/zlib/lib/pkgconfig://usr/local/opt/zstd/lib/pkgconfig"
export CMAKE_PREFIX_PATH="/usr/local/opt/boost@1.76;/usr/local/opt/curl;/usr/local/opt/icu4c@78"
sed -i '' -e 's/-DCMAKE_PREFIX_PATH="$DEPS/-DCMAKE_PREFIX_PATH="$CMAKE_PREFIX_PATH;$DEPS/' BuildMac.sh
sed -i '' -e 's/-DQDT_INTERNAL_TESTING=0/-DQDT_INTERNAL_TESTING=1/' BuildMac.sh
sed -i '' -e 's/-DQDT_RELEASE_TO_PUBLIC=1/-DQDT_RELEASE_TO_PUBLIC=0/' BuildMac.sh
chmod +x BuildMac.sh
./BuildMac.sh -t 14.0 -x
- name: Upload Artifacts on Windows
if: startsWith(matrix.os, 'windows-')
uses: actions/upload-artifact@v5.0.0
with:
name: QIDIStudio_windows
path: install_dir
- name: Upload Artifacts on MacOS
if: startsWith(matrix.os, 'macos-')
uses: actions/upload-artifact@v5.0.0
with:
name: QIDIStudio_macos
path: build/x86_64/QIDIStudio/QIDIStudio.app/
- name: Upload Artifacts on Linux
if: startsWith(matrix.os, 'ubuntu-')
uses: actions/upload-artifact@v5.0.0
with:
name: QIDIStudio_linux
path: build/QIDIStudio.tar
- name: Upload Artifacts on Linux - Appimage
if: startsWith(matrix.os, 'ubuntu-')
uses: actions/upload-artifact@v5.0.0
with:
name: QIDIStudio_AppImage
path: build/QIDIStudio_ubu64.AppImage

4
.gitignore vendored
View File

@@ -28,3 +28,7 @@ SVG
**/machine_full/
**/filament_full/
.idea/
test.js
/.cache/
.clangd
/src/slic3r/QIDI/

244
BuildMac.sh Normal file
View File

@@ -0,0 +1,244 @@
#!/bin/bash
set -e
set -o pipefail
while getopts "1dpa:st:xbc:h" opt; do
case "${opt}" in
d )
export BUILD_TARGET="deps"
;;
p )
export PACK_DEPS="1"
;;
a )
export ARCH="$OPTARG"
;;
s )
export BUILD_TARGET="slicer"
;;
t )
export OSX_DEPLOYMENT_TARGET="$OPTARG"
;;
x )
export SLICER_CMAKE_GENERATOR="Ninja"
export SLICER_BUILD_TARGET="all"
export DEPS_CMAKE_GENERATOR="Ninja"
;;
b )
export BUILD_ONLY="1"
;;
c )
export BUILD_CONFIG="$OPTARG"
;;
1 )
export CMAKE_BUILD_PARALLEL_LEVEL=1
;;
h ) echo "Usage: ./BuildMac.sh [-1][-d][-s][-x][-b][-c]"
echo " -d: Build deps"
echo " -a: Set ARCHITECTURE (arm64 or x86_64 or universal)"
echo " -s: Build slicer only"
echo " -t: Specify minimum version of the target platform, default is 10.15"
echo " -x: Use Ninja CMake generator, default is Xcode"
echo " -b: Build without reconfiguring CMake"
echo " -c: Set CMake build configuration, default is Release"
echo " -1: limit builds to 1 core (where possible)"
exit 0
;;
* )
;;
esac
done
if [ -z "$ARCH" ]; then
ARCH="$(uname -m)"
export ARCH
fi
if [ -z "$BUILD_CONFIG" ]; then
export BUILD_CONFIG="Release"
fi
if [ -z "$BUILD_TARGET" ]; then
export BUILD_TARGET="all"
fi
if [ -z "$SLICER_CMAKE_GENERATOR" ]; then
export SLICER_CMAKE_GENERATOR="Xcode"
fi
if [ -z "$SLICER_BUILD_TARGET" ]; then
export SLICER_BUILD_TARGET="ALL_BUILD"
fi
if [ -z "$DEPS_CMAKE_GENERATOR" ]; then
export DEPS_CMAKE_GENERATOR="Unix Makefiles"
fi
if [ -z "$OSX_DEPLOYMENT_TARGET" ]; then
export OSX_DEPLOYMENT_TARGET="10.15"
fi
echo "Build params:"
echo " - ARCH: $ARCH"
echo " - BUILD_CONFIG: $BUILD_CONFIG"
echo " - BUILD_TARGET: $BUILD_TARGET"
echo " - CMAKE_GENERATOR: $SLICER_CMAKE_GENERATOR for Slicer, $DEPS_CMAKE_GENERATOR for deps"
echo " - OSX_DEPLOYMENT_TARGET: $OSX_DEPLOYMENT_TARGET"
echo " - CMAKE_BUILD_PARALLEL_LEVEL: $CMAKE_BUILD_PARALLEL_LEVEL"
echo
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$ARCH"
DEPS_DIR="$PROJECT_DIR/deps"
DEPS_BUILD_DIR="$DEPS_DIR/build/$ARCH"
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
if [ "$SLICER_CMAKE_GENERATOR" == "Xcode" ]; then
export BUILD_DIR_CONFIG_SUBDIR="/$BUILD_CONFIG"
else
export BUILD_DIR_CONFIG_SUBDIR=""
fi
function build_deps() {
# iterate over two architectures: x86_64 and arm64
for _ARCH in x86_64 arm64; do
# if ARCH is universal or equal to _ARCH
if [ "$ARCH" == "universal" ] || [ "$ARCH" == "$_ARCH" ]; then
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$_ARCH"
DEPS_BUILD_DIR="$DEPS_DIR/build/$_ARCH"
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
echo "Building deps..."
(
set -x
mkdir -p "$DEPS"
cd "$DEPS_BUILD_DIR"
if [ "1." != "$BUILD_ONLY". ]; then
cmake "${DEPS_DIR}" \
-G "${DEPS_CMAKE_GENERATOR}" \
-DDESTDIR="$DEPS" \
-DOPENSSL_ARCH="darwin64-${_ARCH}-cc" \
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
-DCMAKE_OSX_ARCHITECTURES:STRING="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}"
fi
cmake --build . --parallel ${CMAKE_BUILD_PARALLEL_LEVEL} --config "$BUILD_CONFIG" --target deps
)
fi
done
}
function pack_deps() {
echo "Packing deps..."
(
set -x
cd "$DEPS_DIR"
tar -zcvf "QIDIStudio_dep_mac_${ARCH}_$(date +"%Y%m%d").tar.gz" "build"
)
}
function build_slicer() {
# iterate over two architectures: x86_64 and arm64
for _ARCH in x86_64 arm64; do
# if ARCH is universal or equal to _ARCH
if [ "$ARCH" == "universal" ] || [ "$ARCH" == "$_ARCH" ]; then
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$_ARCH"
DEPS_BUILD_DIR="$DEPS_DIR/build/$_ARCH"
DEPS="$DEPS_BUILD_DIR/QIDIStudio_deps"
echo "Building slicer for $_ARCH..."
(
set -x
mkdir -p "$PROJECT_BUILD_DIR"
cd "$PROJECT_BUILD_DIR"
if [ "1." != "$BUILD_ONLY". ]; then
cmake "${PROJECT_DIR}" \
-G "${SLICER_CMAKE_GENERATOR}" \
-DQDT_RELEASE_TO_PUBLIC=1 \
-DQDT_INTERNAL_TESTING=0 \
-DCMAKE_PREFIX_PATH="$DEPS/usr/local" \
-DCMAKE_INSTALL_PREFIX="$PWD/QIDIStudio" \
-DCMAKE_BUILD_TYPE="$BUILD_CONFIG" \
-DCMAKE_MACOSX_RPATH=ON \
-DCMAKE_INSTALL_RPATH="${DEPS}/usr/local" \
-DCMAKE_MACOSX_BUNDLE=ON \
-DCMAKE_OSX_ARCHITECTURES="${_ARCH}" \
-DCMAKE_OSX_DEPLOYMENT_TARGET="${OSX_DEPLOYMENT_TARGET}"
fi
cmake --build . --config "$BUILD_CONFIG" --target "$SLICER_BUILD_TARGET"
)
echo "Fix macOS app package..."
(
cd "$PROJECT_BUILD_DIR"
mkdir -p QIDIStudio
cd QIDIStudio
# remove previously built app
rm -rf ./QIDIStudio.app
# fully copy newly built app
cp -pR "../src$BUILD_DIR_CONFIG_SUBDIR/QIDIStudio.app" ./QIDIStudio.app
# fix resources
resources_path=$(readlink ./QIDIStudio.app/Contents/Resources)
rm ./QIDIStudio.app/Contents/Resources
cp -R "$resources_path" ./QIDIStudio.app/Contents/Resources
# delete .DS_Store file
find ./QIDIStudio.app/ -name '.DS_Store' -delete
)
fi
done
}
function build_universal() {
echo "Building universal binary..."
PROJECT_BUILD_DIR="$PROJECT_DIR/build/$ARCH"
# Create universal binary
echo "Creating universal binary..."
# PROJECT_BUILD_DIR="$PROJECT_DIR/build_Universal"
mkdir -p "$PROJECT_BUILD_DIR/QIDIStudio"
UNIVERSAL_APP="$PROJECT_BUILD_DIR/QIDIStudio/QIDIStudio.app"
rm -rf "$UNIVERSAL_APP"
cp -R "$PROJECT_DIR/build/arm64/QIDIStudio/QIDIStudio.app" "$UNIVERSAL_APP"
# Get the binary path inside the .app bundle
BINARY_PATH="Contents/MacOS/QIDIStudio"
# Create universal binary using lipo
lipo -create \
"$PROJECT_DIR/build/x86_64/QIDIStudio/QIDIStudio.app/$BINARY_PATH" \
"$PROJECT_DIR/build/arm64/QIDIStudio/QIDIStudio.app/$BINARY_PATH" \
-output "$UNIVERSAL_APP/$BINARY_PATH"
echo "Universal binary created at $UNIVERSAL_APP"
}
case "${BUILD_TARGET}" in
all)
build_deps
build_slicer
;;
deps)
build_deps
;;
slicer)
build_slicer
;;
*)
echo "Unknown target: $BUILD_TARGET. Available targets: deps, slicer, all."
exit 1
;;
esac
if [ "$ARCH" = "universal" ] && [ "$BUILD_TARGET" != "deps" ]; then
build_universal
fi
if [ "1." == "$PACK_DEPS". ]; then
pack_deps
fi

View File

@@ -1,4 +1,10 @@
cmake_minimum_required(VERSION 3.13)
# The CMake version on Windows must not be greater than 4.0.
if ( ((MSVC) OR (WIN32)) AND (${CMAKE_VERSION} VERSION_GREATER_EQUAL "4.0") )
message(FATAL_ERROR "Only cmake versions between 3.13.x and 4.0.x is supported on windows. Detected version: ${CMAKE_VERSION}")
endif()
project(QIDIStudio)
include("version.inc")
@@ -55,7 +61,10 @@ if (APPLE)
if (CMAKE_MACOSX_BUNDLE)
set(CMAKE_INSTALL_RPATH @executable_path/../Frameworks)
endif()
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
if (NOT CMAKE_OSX_DEPLOYMENT_TARGET)
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.15" CACHE STRING "Minimum OS X deployment version" FORCE)
endif ()
message(STATUS "CMAKE_OSX_DEPLOYMENT_TARGET: ${CMAKE_OSX_DEPLOYMENT_TARGET}")
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(CMAKE_INSTALL_RPATH "$ORIGIN")
endif ()
@@ -172,11 +181,15 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
# We pick it from environment if it is not defined in another way
if(WIN32)
if(EXISTS "${CMAKE_SOURCE_DIR}/scripts/hooks/pre-commit" AND EXISTS "${CMAKE_SOURCE_DIR}/.git")
message(STATUS ".git: directory")
configure_file(
"${CMAKE_SOURCE_DIR}/scripts/hooks/pre-commit"
"${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit"
)
if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git")
message(STATUS ".git: directory")
configure_file(
"${CMAKE_SOURCE_DIR}/scripts/hooks/pre-commit"
"${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit"
)
else()
message(STATUS "skip pre-commit git hook")
endif()
endif()
find_package(PkgConfig REQUIRED)
@@ -247,6 +260,8 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
# On GCC and Clang, no return from a non-void function is a warning only. Here, we make it an error.
add_compile_options(-Werror=return-type)
# add_compile_options(-Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-label -Wno-unused-local-typedefs)
# removes LOTS of extraneous Eigen warnings (GCC only supports it since 6.1)
# https://eigen.tuxfamily.org/bz/show_bug.cgi?id=1221
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" OR CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.0)
@@ -260,6 +275,10 @@ if (NOT MSVC AND ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMP
add_compile_options(-Wno-deprecated-declarations)
endif()
if((${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang" OR ${CMAKE_CXX_COMPILER_ID} STREQUAL "AppleClang") AND ${CMAKE_CXX_COMPILER_VERSION} VERSION_GREATER 15)
add_compile_options(-Wno-error=enum-constexpr-conversion)
endif()
#GCC generates loads of -Wunknown-pragmas when compiling igl. The fix is not easy due to a bug in gcc, see
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66943 or
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53431
@@ -314,7 +333,7 @@ if(WIN32)
add_definitions(-D_USE_MATH_DEFINES -D_WIN32 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
if(MSVC)
# BOOST_ALL_NO_LIB: Avoid the automatic linking of Boost libraries on Windows. Rather rely on explicit linking.
add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x601 -DBOOST_SYSTEM_USE_UTF8 )
add_definitions(-DBOOST_ALL_NO_LIB -DBOOST_USE_WINAPI_VERSION=0x602 -DBOOST_SYSTEM_USE_UTF8 )
# Force the source code encoding to UTF-8. See QIDIStudio GH pull request #5583
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
@@ -356,7 +375,7 @@ endif()
# set(Boost_COMPILER "-mgw81")
# boost::process was introduced first in version 1.64.0,
# boost::beast::detail::base64 was introduced first in version 1.66.0
set(MINIMUM_BOOST_VERSION "1.66.0")
set(MINIMUM_BOOST_VERSION "1.83.0")
set(_boost_components "system;filesystem;thread;log;locale;regex;chrono;atomic;date_time;iostreams")
find_package(Boost ${MINIMUM_BOOST_VERSION} REQUIRED COMPONENTS ${_boost_components})
@@ -552,12 +571,12 @@ foreach(po_file ${QDT_L10N_PO_FILES})
endforeach()
# copy pt-BR/QidiStudio.mo to pt_br/
SET(PT_BR "${L10N_DIR}/pt-BR/QIDIStudio.mo")
SET(PT_BR_DST "${L10N_DIR}/pt_br/")
add_custom_command(
TARGET gettext_po_to_mo POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PT_BR} ${PT_BR_DST}
)
#SET(PT_BR "${L10N_DIR}/pt-BR/QIDIStudio.mo")
#SET(PT_BR_DST "${L10N_DIR}/pt_br/")
#add_custom_command(
# TARGET gettext_po_to_mo POST_BUILD
# COMMAND ${CMAKE_COMMAND} -E copy_if_different ${PT_BR} ${PT_BR_DST}
#)
find_package(NLopt 1.4 REQUIRED)

View File

@@ -1,15 +1,73 @@
#!/bin/bash
PROJECT_ROOT=$(cd -P -- "$(dirname -- "$0")" && printf '%s\n' "$(pwd -P)")
set -x
set -e
# Wishlist hint: For developers, creating a Docker Compose
# setup with persistent volumes for the build & deps directories
# would speed up recompile times significantly. For end users,
# the simplicity of a single Docker image and a one-time compilation
# seems better.
docker build -t qidistudio \
--build-arg USER=${USER:-root} \
--build-arg UID=$(id -u) \
--build-arg GID=$(id -g) \
$PROJECT_ROOT
function usage() {
echo "Usage: ./DockerBuild.sh [-c][-d][-i][-v]"
echo " -c: Build a self-contained Docker image that can be run directly"
echo " -d: disable safe parallel number limit(By default, the maximum number of parallels is set to free memory/2.5)"
echo " -i: Build and export an AppImage"
echo " -v: Build System Version:ubu22 or ubu24"
echo " -h: this help output"
echo "If you only need to run the program on a built Docker container, just use './DockerBuild.sh -c'"
echo "If you need to build an AppImage using Docker, first run './DockerBuild.sh -d', then run './DockerBuild.sh -s'."
}
unset name
while getopts "hcdiv:" opt; do
case ${opt} in
c )
BUILD_RUNNER=1
;;
d )
BUILD_DEPS=1
;;
i )
BUILD_APPIMAGE=1
;;
v )
SYSTEM_VERSION="$OPTARG"
;;
h ) usage
exit 0
;;
esac
done
if [ -z "$SYSTEM_VERSION" ]; then
SYSTEM_VERSION="ubu22"
fi
if [[ -n "${BUILD_DEPS}" ]]; then
if [ "$SYSTEM_VERSION" == "ubu22" ]; then
echo "Building dependencies for Ubuntu 22.04..."
docker build -f docker/BuildDepsDockerfile -t studio_dep_22:1.0 .
else
docker build -f docker/BuildDepsDockerfile24 -t studio_dep_24:1.0 .
fi
fi
if [[ -n "${BUILD_APPIMAGE}" ]]; then
if [ "$SYSTEM_VERSION" == "ubu22" ]; then
docker build -f docker/BuildAppimageDockerfile --build-arg VERSION=studio_dep_22 -o type=local,dest=./build .
mv build/QIDIStudio_ubu64.AppImage build/QIDIStudio_ubu22.AppImage
else
docker build -f docker/BuildAppimageDockerfile --build-arg VERSION=studio_dep_24 -o type=local,dest=./build .
mv build/QIDIStudio_ubu64.AppImage build/QIDIStudio_ubu24.AppImage
fi
fi
if [[ -n "${BUILD_RUNNER}" ]]
then
# Wishlist hint: For developers, creating a Docker Compose
# setup with persistent volumes for the build & deps directories
# would speed up recompile times significantly. For end users,
# the simplicity of a single Docker image and a one-time compilation
# seems better.
docker build -t qidistudio \
--build-arg USER=${USER:-root} \
--build-arg UID=$(id -u) \
--build-arg GID=$(id -g) \
$PROJECT_ROOT
fi

View File

@@ -68,7 +68,7 @@ WORKDIR /QIDIStudio
# It might conflict with your mapped user, remove if user ubuntu exist
RUN if id "ubuntu" >/dev/null 2>&1; then userdel -r ubuntu; fi
# It's easier to run Bambu Studio as the same username,
# It's easier to run QIDI Studio as the same username,
# UID and GID as your workstation. Since we bind mount
# your home directory into the container, it's handy
# to keep permissions the same. Just in case, defaults

View File

@@ -0,0 +1,127 @@
From 45d9cd6bdba9b829fcfe40ff7c5f3f786afd41e1 Mon Sep 17 00:00:00 2001
From: "changyu.chen" <changyu.chen@bambulab.com>
Date: Fri, 7 Nov 2025 10:15:47 +0800
Subject: [PATCH] FIX: OBS cannot start streaming on MAC
jira: [STUDIO-14205]
Change-Id: I3f7c7982737b3b52729df856bc0cf69d89d1820d
---
.../include/boost/process/detail/posix/executor.hpp | 3 ++-
.../include/boost/process/detail/posix/pipe_out.hpp | 13 +++++++++++--
.../include/boost/process/detail/used_handles.hpp | 3 +++
.../boost/process/detail/windows/handles.hpp | 10 +++++++---
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/usr/local/include/boost/process/detail/posix/executor.hpp b/usr/local/include/boost/process/detail/posix/executor.hpp
index c4d99906..4d9b47ba 100644
--- a/usr/local/include/boost/process/detail/posix/executor.hpp
+++ b/usr/local/include/boost/process/detail/posix/executor.hpp
@@ -328,6 +328,7 @@ public:
}
void set_error(const std::error_code &ec, const std::string &msg) {set_error(ec, msg.c_str());};
+ int error_sink() const {return _pipe_sink;}
std::vector<int> get_used_handles() const
{
if (_pipe_sink == -1)
@@ -398,6 +399,7 @@ child executor<Sequence>::invoke(boost::mpl::false_, boost::mpl::false_)
set_error(err, "fcntl(2) failed");//this might throw, so we need to be sure our pipe is safe.
return child();
}
+ _pipe_sink = p.p[1];
_ec.clear();
boost::fusion::for_each(seq, call_on_setup(*this));
@@ -421,7 +423,6 @@ child executor<Sequence>::invoke(boost::mpl::false_, boost::mpl::false_)
}
else if (pid == 0)
{
- _pipe_sink = p.p[1];
::close(p.p[0]);
boost::fusion::for_each(seq, call_on_exec_setup(*this));
diff --git a/usr/local/include/boost/process/detail/posix/pipe_out.hpp b/usr/local/include/boost/process/detail/posix/pipe_out.hpp
index d54cca4e..7a711983 100644
--- a/usr/local/include/boost/process/detail/posix/pipe_out.hpp
+++ b/usr/local/include/boost/process/detail/posix/pipe_out.hpp
@@ -18,7 +18,7 @@
namespace boost { namespace process { namespace detail { namespace posix {
template<int p1, int p2>
-struct pipe_out : handler_base_ext
+struct pipe_out : handler_base_ext, ::boost::process::detail::uses_handles
{
int sink;
int source; //opposite end
@@ -31,6 +31,14 @@ struct pipe_out : handler_base_ext
p.assign_sink(-1);
}
+ std::array<int, 4> get_used_handles()
+ {
+ const auto pp1 = p1 != -1 ? p1 : p2;
+ const auto pp2 = p2 != -1 ? p2 : p1;
+
+ return {sink, source, pp1, pp2};
+ }
+
template<typename Executor>
void on_error(Executor &, const std::error_code &) const
{
@@ -66,7 +74,7 @@ void pipe_out<2,-1>::on_exec_setup(Executor &e) const
if (::dup2(sink, STDERR_FILENO) == -1)
e.set_error(::boost::process::detail::get_last_error(), "dup2() failed");
- if (sink != STDOUT_FILENO)
+ if (sink != STDERR_FILENO)
::close(sink);
::close(source);
}
@@ -81,6 +89,7 @@ void pipe_out<1,2>::on_exec_setup(Executor &e) const
e.set_error(::boost::process::detail::get_last_error(), "dup2() failed");
if ((sink != STDOUT_FILENO) && (sink != STDERR_FILENO))
::close(sink);
+ ::close(source);
}
class async_pipe;
diff --git a/usr/local/include/boost/process/detail/used_handles.hpp b/usr/local/include/boost/process/detail/used_handles.hpp
index 8db226d4..b7dc13d0 100644
--- a/usr/local/include/boost/process/detail/used_handles.hpp
+++ b/usr/local/include/boost/process/detail/used_handles.hpp
@@ -61,6 +61,9 @@ struct foreach_handle_invocator
template<typename Executor, typename Function>
void foreach_used_handle(Executor &exec, Function &&func)
{
+#if defined(BOOST_POSIX_API)
+ func(exec.error_sink());
+#endif
boost::fusion::for_each(boost::fusion::filter_if<does_use_handle<boost::mpl::_>>(exec.seq),
foreach_handle_invocator<Function>(func));
}
diff --git a/usr/local/include/boost/process/detail/windows/handles.hpp b/usr/local/include/boost/process/detail/windows/handles.hpp
index 901b339a..da78b1ce 100644
--- a/usr/local/include/boost/process/detail/windows/handles.hpp
+++ b/usr/local/include/boost/process/detail/windows/handles.hpp
@@ -141,10 +141,14 @@ struct limit_handles_ : handler_base_ext
::boost::winapi::DWORD_ flags = 0u;
if (itr != all_handles.end())
*itr = ::boost::winapi::INVALID_HANDLE_VALUE_;
- else if ((::boost::winapi::GetHandleInformation(*itr, &flags) != 0)
- &&((flags & ::boost::winapi::HANDLE_FLAG_INHERIT_) == 0)) //it is NOT inherited anyhow, so ignore too
- *itr = ::boost::winapi::INVALID_HANDLE_VALUE_;
});
+ for (auto& h : all_handles) {
+ ::boost::winapi::DWORD_ flags = 0u;
+ if ((h != ::boost::winapi::INVALID_HANDLE_VALUE_)
+ && (::boost::winapi::GetHandleInformation(h, &flags) != 0)
+ && ((flags & ::boost::winapi::HANDLE_FLAG_INHERIT_) == 0)) //it is NOT inherited anyhow, so ignore too
+ h = ::boost::winapi::INVALID_HANDLE_VALUE_;
+ }
auto part_itr = std::partition(all_handles.begin(), all_handles.end(),
[](::boost::winapi::HANDLE_ handle) {return handle != ::boost::winapi::INVALID_HANDLE_VALUE_;});
--
2.51.2.windows.1

175
deps/Boost/Boost.cmake vendored
View File

@@ -1,160 +1,27 @@
include(ExternalProject)
if (WIN32)
set(_bootstrap_cmd bootstrap.bat)
set(_build_cmd b2.exe)
else()
set(_bootstrap_cmd ./bootstrap.sh)
set(_build_cmd ./b2)
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
set(_boost_toolset gcc)
configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam boost-user-config.jam)
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/boost-user-config.jam ./tools/build/src/tools/user-config.jam)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
# https://cmake.org/cmake/help/latest/variable/MSVC_VERSION.html
if (MSVC_VERSION EQUAL 1800)
# 1800 = VS 12.0 (v120 toolset)
set(_boost_toolset "msvc-12.0")
elseif (MSVC_VERSION EQUAL 1900)
# 1900 = VS 14.0 (v140 toolset)
set(_boost_toolset "msvc-14.0")
elseif (MSVC_VERSION LESS 1920)
# 1910-1919 = VS 15.0 (v141 toolset)
set(_boost_toolset "msvc-14.1")
elseif (MSVC_VERSION LESS 1930)
# 1920-1929 = VS 16.0 (v142 toolset)
set(_boost_toolset "msvc-14.2")
elseif (MSVC_VERSION LESS 1950)
# 1930-1949 = VS 17.0 (v143 toolset)
set(_boost_toolset "msvc-14.3")
else ()
message(FATAL_ERROR "Unsupported MSVC version")
set(_context_abi_line "")
set(_context_arch_line "")
if (APPLE AND CMAKE_OSX_ARCHITECTURES)
if (CMAKE_OSX_ARCHITECTURES MATCHES "x86")
set(_context_abi_line "-DBOOST_CONTEXT_ABI:STRING=sysv")
elseif (CMAKE_OSX_ARCHITECTURES MATCHES "arm")
set (_context_abi_line "-DBOOST_CONTEXT_ABI:STRING=aapcs")
endif ()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
if (WIN32)
set(_boost_toolset "clang-win")
elseif (APPLE)
set(_boost_toolset "clang")
else()
set(_boost_toolset clang)
configure_file(${CMAKE_CURRENT_LIST_DIR}/user-config.jam boost-user-config.jam)
set(_patch_command ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/boost-user-config.jam ./tools/build/src/tools/user-config.jam)
endif()
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Intel")
set(_boost_toolset "intel")
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang")
set(_boost_toolset "clang")
endif()
message(STATUS "Deduced boost toolset: ${_boost_toolset} based on ${CMAKE_CXX_COMPILER_ID} compiler")
set(_libs "")
foreach(_comp ${DEP_Boost_COMPONENTS})
list(APPEND _libs "--with-${_comp}")
endforeach()
if (BUILD_SHARED_LIBS)
set(_link shared)
else()
set(_link static)
endif()
set(_bits "")
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
set(_bits 64)
elseif ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "4")
set(_bits 32)
set(_context_arch_line "-DBOOST_CONTEXT_ARCHITECTURE:STRING=${CMAKE_OSX_ARCHITECTURES}")
message(STATUS "BOOST param: ${_context_abi_line} ${_context_arch_line}")
endif ()
include(ProcessorCount)
ProcessorCount(NPROC)
file(TO_NATIVE_PATH ${DESTDIR}/usr/local/ _prefix)
set(_boost_flags "")
if (UNIX)
set(_boost_flags "cflags=-fPIC;cxxflags=-fPIC")
endif ()
if(APPLE)
set(_boost_flags
"cflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
"cxxflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
"mflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET};"
"mmflags=-fPIC -mmacosx-version-min=${DEP_OSX_TARGET}")
endif()
set(_boost_variants "")
if(CMAKE_BUILD_TYPE)
list(APPEND CMAKE_CONFIGURATION_TYPES ${CMAKE_BUILD_TYPE})
list(REMOVE_DUPLICATES CMAKE_CONFIGURATION_TYPES)
endif()
list(FIND CMAKE_CONFIGURATION_TYPES "Release" _cfg_rel)
list(FIND CMAKE_CONFIGURATION_TYPES "RelWithDebInfo" _cfg_relwdeb)
list(FIND CMAKE_CONFIGURATION_TYPES "MinSizeRel" _cfg_minsizerel)
list(FIND CMAKE_CONFIGURATION_TYPES "Debug" _cfg_deb)
if (_cfg_rel GREATER -1 OR _cfg_relwdeb GREATER -1 OR _cfg_minsizerel GREATER -1)
list(APPEND _boost_variants release)
endif()
if ( (NOT MSVC AND _cfg_deb GREATER -1) OR (MSVC AND ${DEP_DEBUG}) )
list(APPEND _boost_variants debug)
endif()
if (NOT _boost_variants)
set(_boost_variants release)
endif()
set(_build_cmd ${_build_cmd}
${_boost_flags}
-j${NPROC}
${_libs}
--layout=versioned
--debug-configuration
toolset=${_boost_toolset}
address-model=${_bits}
link=${_link}
threading=multi
boost.locale.icu=off
--disable-icu
${_boost_variants}
stage)
set(_install_cmd ${_build_cmd} --prefix=${_prefix} install)
list(APPEND _patch_command COMMAND git init && ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-Boost-fix.patch)
ExternalProject_Add(
dep_Boost
#URL "https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.zip"
URL "https://github.com/bambulab/boost/releases/download/1.78.0/boost_1_78_0.zip"
URL_HASH SHA256=f22143b5528e081123c3c5ed437e92f648fe69748e95fa6e2bd41484e2986cc3
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/Boost
CONFIGURE_COMMAND "${_bootstrap_cmd}"
PATCH_COMMAND ${_patch_command}
BUILD_COMMAND "${_build_cmd}"
BUILD_IN_SOURCE ON
INSTALL_COMMAND "${_install_cmd}"
qidistudio_add_cmake_project(Boost
URL "https://github.com/boostorg/boost/releases/download/boost-1.84.0/boost-1.84.0.tar.gz"
URL_HASH SHA256=4d27e9efed0f6f152dc28db6430b9d3dfb40c0345da7342eaa5a987dde57bd95
LIST_SEPARATOR |
#PATCH_COMMAND git apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-FIX-OBS-cannot-start-streaming-on-MAC.patch
CMAKE_ARGS
-DBOOST_EXCLUDE_LIBRARIES:STRING=contract|fiber|numpy|wave|test
-DBOOST_LOCALE_ENABLE_ICU:BOOL=OFF # do not link to libicu, breaks compatibility between distros
-DBUILD_TESTING:BOOL=OFF
"${_context_abi_line}"
"${_context_arch_line}"
)
if ("${CMAKE_SIZEOF_VOID_P}" STREQUAL "8")
# Patch the boost::polygon library with a custom one.
ExternalProject_Add(dep_boost_polygon
EXCLUDE_FROM_ALL ON
# GIT_REPOSITORY "https://github.com/prusa3d/polygon"
# GIT_TAG prusaslicer_gmp
URL https://github.com/prusa3d/polygon/archive/refs/heads/prusaslicer_gmp.zip
URL_HASH SHA256=abeb9710f0a7069fb9b22181ae5c56f6066002f125db210e7ffb27032aed6824
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/boost_polygon
DEPENDS dep_Boost
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
"${CMAKE_CURRENT_BINARY_DIR}/dep_boost_polygon-prefix/src/dep_boost_polygon/include/boost/polygon"
"${DESTDIR}/usr/local/include/boost/polygon"
)
# Only override boost::Polygon Voronoi implementation with Vojtech's GMP hacks on 64bit platforms.
list(APPEND _dep_list "dep_boost_polygon")
endif ()
set(DEP_Boost_DEPENDS ZLIB)

59
deps/CGAL/0001-clang19.patch vendored Normal file
View File

@@ -0,0 +1,59 @@
--- a/BGL/include/CGAL/boost/graph/iterator.h 2022-10-07 19:04:41 UTC
+++ b/BGL/include/CGAL/boost/graph/iterator.h
@@ -213,18 +213,7 @@ class Halfedge_around_source_iterator { (public)
{}
#ifndef DOXYGEN_RUNNING
- // design patter: "safe bool"
- // will be replaced by explicit operator bool with C++11
- typedef void (Halfedge_around_source_iterator::*bool_type)() const;
- void this_type_does_not_support_comparisons() const {}
-
- operator bool_type() const
- {
- return (! (this->base() == nullptr)) ?
- &Halfedge_around_source_iterator::this_type_does_not_support_comparisons : 0;
- }
-
bool operator==( const Self& i) const {
CGAL_assertion( anchor == anchor);
return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding);
@@ -313,18 +302,7 @@ class Halfedge_around_target_iterator { (public)
{}
#ifndef DOXYGEN_RUNNING
- // design patter: "safe bool"
- // will be replaced by explicit operator bool with C++11
- typedef void (Halfedge_around_target_iterator::*bool_type)() const;
- void this_type_does_not_support_comparisons() const {}
-
- operator bool_type() const
- {
- return (! (this->base() == nullptr)) ?
- &Halfedge_around_target_iterator::this_type_does_not_support_comparisons : 0;
- }
-
bool operator==( const Self& i) const {
CGAL_assertion( anchor == anchor);
return ( g == i.g) && ( pos == i.pos) && ( winding == i.winding);
@@ -411,18 +389,6 @@ class Halfedge_around_face_iterator { (public)
const value_type& operator * ( ) const { return pos; }
pointer operator -> ( ) { return &pos; }
const value_type* operator -> ( ) const { return &pos; }
-
- // design patter: "safe bool"
- // will be replaced by explicit operator bool with C++11
- typedef void (Halfedge_around_face_iterator::*bool_type)() const;
-
- void this_type_does_not_support_comparisons() const {}
-
- operator bool_type() const
- {
- return (! (this->base() == nullptr)) ?
- &Halfedge_around_face_iterator::this_type_does_not_support_comparisons : 0;
- }
bool operator==( const Self& i) const {
CGAL_assertion( anchor == anchor);

View File

@@ -1,10 +1,12 @@
if (IN_GIT_REPO)
set(CGAL_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_CGAL-prefix/src/dep_CGAL)
endif ()
qidistudio_add_cmake_project(
CGAL
# GIT_REPOSITORY https://github.com/CGAL/cgal.git
# GIT_TAG caacd806dc55c61cc68adaad99f2240f00493b29 # releases/CGAL-5.3
# For whatever reason, this keeps downloading forever (repeats downloads if finished)
URL https://github.com/CGAL/cgal/archive/refs/tags/v5.4.zip
URL_HASH SHA256=d7605e0a5a5ca17da7547592f6f6e4a59430a0bc861948974254d0de43eab4c0
PATCH_COMMAND git apply ${CGAL_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-clang19.patch
DEPENDS ${BOOST_PKG} dep_GMP dep_MPFR
)

33
deps/CMakeLists.txt vendored
View File

@@ -27,6 +27,9 @@ include(ExternalProject)
include(ProcessorCount)
ProcessorCount(NPROC)
if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL})
set(NPROC $ENV{CMAKE_BUILD_PARALLEL_LEVEL})
endif()
if (NPROC EQUAL 0)
set(NPROC 1)
endif ()
@@ -50,6 +53,24 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
option(DEP_WX_GTK3 "Build wxWidgets against GTK3" OFF)
endif()
set(IS_CROSS_COMPILE FALSE)
if (APPLE)
set(CMAKE_FIND_FRAMEWORK LAST)
set(CMAKE_FIND_APPBUNDLE LAST)
list(FIND CMAKE_OSX_ARCHITECTURES ${CMAKE_SYSTEM_PROCESSOR} _arch_idx)
message(STATUS "qidistudio_add_cmake_project for Apple")
if (CMAKE_OSX_ARCHITECTURES AND _arch_idx LESS 0)
message(STATUS "qidistudio_add_cmake_project for Apple crosscompiling")
set(IS_CROSS_COMPILE TRUE)
set(CMAKE_CXX_COMPILER_ID "Clang")
string(REPLACE ";" "$<SEMICOLON>" CMAKE_OSX_ARCHS "${CMAKE_OSX_ARCHITECTURES}")
set(_cmake_osx_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHS})
set(_cmake_args_osx_arch CMAKE_ARGS -DCMAKE_OSX_ARCHITECTURES:STRING=${CMAKE_OSX_ARCHS})
message(STATUS "Detect Cross-compilation. Will build for target ${CMAKE_OSX_ARCHS}" )
endif ()
endif ()
# On developer machines, it can be enabled to speed up compilation and suppress warnings coming from IGL.
# FIXME:
# Enabling this option is not safe. IGL will compile itself with its own version of Eigen while
@@ -72,6 +93,17 @@ if (NOT _is_multi AND NOT CMAKE_BUILD_TYPE)
message(STATUS "Forcing CMAKE_BUILD_TYPE to Release as it was not specified.")
endif ()
execute_process(
COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree
RESULT_VARIABLE REV_PARSE_RESULT
OUTPUT_VARIABLE REV_PARSE_OUTPUT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
if((REV_PARSE_RESULT EQUAL 0) AND (REV_PARSE_OUTPUT STREQUAL "true"))
# Find relative path from root to source used for adjusting patch command
file(RELATIVE_PATH BINARY_DIR_REL ${CMAKE_SOURCE_DIR}/.. ${CMAKE_BINARY_DIR})
endif ()
function(qidistudio_add_cmake_project projectname)
cmake_parse_arguments(P_ARGS "" "INSTALL_DIR;BUILD_COMMAND;INSTALL_COMMAND" "CMAKE_ARGS" ${ARGN})
@@ -102,6 +134,7 @@ function(qidistudio_add_cmake_project projectname)
-DCMAKE_CXX_COMPILER:STRING=${CMAKE_CXX_COMPILER}
-DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE}
-DBUILD_SHARED_LIBS:BOOL=OFF
${_cmake_osx_arch}
"${_configs_line}"
${DEP_CMAKE_OPTS}
${P_ARGS_CMAKE_ARGS}

View File

@@ -28,32 +28,58 @@ else ()
string(APPEND _extra_cmd "--enable-gpl")
string(APPEND _extra_cmd "--enable-nonfree")
if (APPLE)
set(_minos_cmd
"CFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}"
"LDFLAGS=-mmacosx-version-min=${DEP_OSX_TARGET}"
)
if (IS_CROSS_COMPILE)
set(_cross_cmd --enable-cross-compile)
set(_pic_cmd --enable-pic)
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
set(_arch_cmd --arch=arm64)
set(_cc_cmd "--cc=clang -arch arm64")
else()
set(_arch_cmd --arch=x86_64)
set(_cc_cmd "--cc=clang -arch x86_64")
endif()
endif()
endif()
set(_build_j -j)
if(DEFINED ENV{CMAKE_BUILD_PARALLEL_LEVEL})
set(_build_j "-j$ENV{CMAKE_BUILD_PARALLEL_LEVEL}")
endif()
ExternalProject_Add(dep_FFMPEG
URL https://github.com/FFmpeg/FFmpeg/archive/refs/tags/n7.0.2.tar.gz
URL_HASH SHA256=5EB46D18D664A0CCADF7B0ADEE03BD3B7FA72893D667F36C69E202A807E6D533
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/FFMPEG
CONFIGURE_COMMAND ${_conf_cmd}
"--prefix=${DESTDIR}/usr/local"
"--enable-shared"
"--disable-doc"
"--enable-small"
"--disable-outdevs"
"--disable-filters"
"--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*"
"--disable-protocols"
"--enable-protocol=file,fd,pipe,rtp,udp"
"--disable-muxers"
"--enable-muxer=rtp"
"--disable-encoders"
"--disable-decoders"
"--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*"
"--disable-demuxers"
"--enable-demuxer=h264,mp3,mov"
"--disable-zlib"
"--disable-avdevice"
${_cross_cmd}
${_pic_cmd}
${_arch_cmd}
${_cc_cmd}
--prefix="${DESTDIR}/usr/local"
--enable-shared
--disable-doc
--enable-small
--disable-outdevs
--disable-filters
--enable-filter=*null*,afade,*fifo,*format,*resample,aeval,allrgb,allyuv,atempo,pan,*bars,color,*key,crop,draw*,eq*,framerate,*_qsv,*_vaapi,*v4l2*,hw*,scale,volume,test*
--disable-protocols
--enable-protocol=file,fd,pipe,rtp,udp
--disable-muxers
--enable-muxer=rtp
--disable-encoders
--disable-decoders
--enable-decoder=*aac*,h264*,mp3*,mjpeg,rv*
--disable-demuxers
--enable-demuxer=h264,mp3,mov
--disable-zlib
--disable-avdevice
BUILD_IN_SOURCE ON
BUILD_COMMAND make -j
BUILD_COMMAND make ${_build_j}
INSTALL_COMMAND make install
)

View File

@@ -3,9 +3,12 @@ project(GLEW)
find_package(OpenGL REQUIRED)
if(OpenGL_EGL_FOUND)
message(STATUS "building GLEW for EGL (hope that wxWidgets agrees, otherwise you won't have any output!)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
# we do not support wayland for now
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
if(OpenGL_EGL_FOUND)
message(STATUS "building GLEW for EGL (hope that wxWidgets agrees, otherwise you won't have any output!)")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGLEW_EGL")
endif()
endif()
add_library(GLEW src/glew.c)

20
deps/GMP/GMP.cmake vendored
View File

@@ -22,10 +22,24 @@ else ()
if (APPLE)
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
set(_gmp_build_tgt aarch64)
set(_gmp_build_arch aarch64)
else ()
set(_gmp_build_arch ${CMAKE_SYSTEM_PROCESSOR})
endif()
if (IS_CROSS_COMPILE)
if (${CMAKE_OSX_ARCHITECTURES} MATCHES "arm")
set(_gmp_host_arch aarch64)
set(_gmp_host_arch_flags "-arch arm64")
elseif (${CMAKE_OSX_ARCHITECTURES} MATCHES "x86_64")
set(_gmp_host_arch x86_64)
set(_gmp_host_arch_flags "-arch x86_64")
endif()
set(_gmp_ccflags "${_gmp_ccflags} ${_gmp_host_arch_flags} -mmacosx-version-min=${DEP_OSX_TARGET}")
set(_gmp_build_tgt --build=${_gmp_build_arch}-apple-darwin --host=${_gmp_host_arch}-apple-darwin)
else ()
set(_gmp_ccflags "${_gmp_ccflags} -mmacosx-version-min=${DEP_OSX_TARGET}")
set(_gmp_build_tgt "--build=${_gmp_build_arch}-apple-darwin")
endif()
set(_gmp_ccflags "${_gmp_ccflags} -mmacosx-version-min=${DEP_OSX_TARGET}")
set(_gmp_build_tgt "--build=${_gmp_build_tgt}-apple-darwin")
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
set(_gmp_ccflags "${_gmp_ccflags} -march=armv7-a") # Works on RPi-4

View File

@@ -12,8 +12,8 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif()
qidistudio_add_cmake_project(JPEG
URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/2.0.6.zip
URL_HASH SHA256=017bdc33ff3a72e11301c0feb4657cb27719d7f97fa67a78ed506c594218bbf1
URL https://github.com/libjpeg-turbo/libjpeg-turbo/archive/refs/tags/3.0.1.zip
URL_HASH SHA256=d6d99e693366bc03897677650e8b2dfa76b5d6c54e2c9e70c03f0af821b0a52f
DEPENDS ${ZLIB_PKG}
CMAKE_ARGS
-DENABLE_SHARED=OFF

View File

@@ -218,4 +218,4 @@ index ab2d9b3c9f..cd701879b1 100644
+ const auto* aTags = &anOutline->tags[aStartIndex];
const short anEndIndex = anOutline->contours[aContour];
const short aPntsNb = (anEndIndex - aStartIndex) + 1;
aStartIndex = anEndIndex + 1;
aStartIndex = anEndIndex + 1;

View File

@@ -4,11 +4,14 @@ else()
set(library_build_type "Static")
endif()
if (BINARY_DIR_REL)
set(OCCT_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OCCT-prefix/src/dep_OCCT)
endif ()
qidistudio_add_cmake_project(OCCT
URL https://github.com/Open-Cascade-SAS/OCCT/archive/refs/tags/V7_6_0.zip
URL_HASH SHA256=28334f0e98f1b1629799783e9b4d21e05349d89e695809d7e6dfa45ea43e1dbc
#PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
PATCH_COMMAND ${GIT_EXECUTABLE} apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
PATCH_COMMAND git apply ${OCCT_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OCCT-fix.patch
#DEPENDS dep_Boost
#DEPENDS dep_FREETYPE
CMAKE_ARGS

24
deps/OpenCV/0002-clang19-macos.patch vendored Normal file
View File

@@ -0,0 +1,24 @@
diff --git a/3rdparty/libpng/pngpriv.h b/3rdparty/libpng/pngpriv.h
index 583c26f..83e0ab8 100644
--- a/3rdparty/libpng/pngpriv.h
+++ b/3rdparty/libpng/pngpriv.h
@@ -517,18 +517,7 @@
*/
# include <float.h>
-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
- /* We need to check that <math.h> hasn't already been included earlier
- * as it seems it doesn't agree with <fp.h>, yet we should really use
- * <fp.h> if possible.
- */
-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
-# include <fp.h>
-# endif
-# else
-# include <math.h>
-# endif
+# include <math.h>
# if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
/* Amiga SAS/C: We must include builtin FPU functions when compiling using
* MATH=68881

View File

@@ -4,10 +4,14 @@ else ()
set(_use_IPP "-DWITH_IPP=OFF")
endif ()
if (BINARY_DIR_REL)
set(OpenCV_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OpenCV-prefix/src/dep_OpenCV)
endif ()
qidistudio_add_cmake_project(OpenCV
URL https://github.com/opencv/opencv/archive/refs/tags/4.6.0.tar.gz
URL_HASH SHA256=1ec1cba65f9f20fe5a41fda1586e01c70ea0c9a6d7b67c9e13edf0cfe2239277
PATCH_COMMAND ${GIT_EXECUTABLE} apply --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OpenCV-fix.patch
PATCH_COMMAND git apply ${OpenCV_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-OpenCV-fix.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch
CMAKE_ARGS
-DBUILD_SHARED_LIBS=0
-DBUILD_PERE_TESTS=OFF
@@ -49,6 +53,7 @@ qidistudio_add_cmake_project(OpenCV
-DWITH_OPENJPEG=OFF
-DWITH_QUIRC=OFF
-DWITH_VTK=OFF
-DWITH_JPEG=OFF
-DWITH_WEBP=OFF
-DENABLE_PRECOMPILED_HEADERS=OFF
-DINSTALL_TESTS=OFF

View File

@@ -1,3 +1,32 @@
if (APPLE AND IS_CROSS_COMPILE)
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64" AND ${CMAKE_OSX_ARCHITECTURES} MATCHES "arm")
set(_openexr_arch arm64^^x86_64)
set(_openxr_list_sep LIST_SEPARATOR ^^)
set(_cmake_openexr_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${_openexr_arch})
else()
set(_openexr_arch ${CMAKE_OSX_ARCHITECTURES})
set(_cmake_openexr_arch -DCMAKE_OSX_ARCHITECTURES:STRING=${_openexr_arch})
endif()
ExternalProject_Add(dep_OpenEXR
EXCLUDE_FROM_ALL ON
URL https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v2.5.5.zip
URL_HASH SHA256=0307a3d7e1fa1e77e9d84d7e9a8694583fbbbfd50bdc6884e2c96b8ef6b902de
INSTALL_DIR ${DESTDIR}/usr/local
DOWNLOAD_DIR ${DEP_DOWNLOAD_DIR}/OpenEXR
${_openxr_list_sep}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX:STRING=${DESTDIR}/usr/local
-DBUILD_SHARED_LIBS:BOOL=OFF
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-DBUILD_TESTING=OFF
-DPYILMBASE_ENABLE:BOOL=OFF
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
-DOPENEXR_BUILD_UTILS:BOOL=OFF
-DCMAKE_OSX_DEPLOYMENT_TARGET=${DEP_OSX_TARGET}
${_cmake_openexr_arch}
)
else()
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
set(_patch_cmd ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/0001-OpenEXR-GCC13.patch)
else()
@@ -18,7 +47,7 @@ qidistudio_add_cmake_project(OpenEXR
-DOPENEXR_VIEWERS_ENABLE:BOOL=OFF
-DOPENEXR_BUILD_UTILS:BOOL=OFF
)
endif()
if (MSVC)
add_debug_dep(dep_OpenEXR)
endif ()

View File

@@ -19,7 +19,7 @@ if(WIN32)
set(_install_cmd nmake install_sw )
else()
if(APPLE)
set(_conf_cmd ./Configure )
set(_conf_cmd export MACOSX_DEPLOYMENT_TARGET=${CMAKE_OSX_DEPLOYMENT_TARGET} && ./Configure -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET} )
else()
set(_conf_cmd "./config")
endif()
@@ -58,6 +58,7 @@ ExternalProject_Add(dep_OpenSSL
${_cross_comp_prefix_line}
no-shared
no-asm
no-tests
no-ssl3-method
no-dynamic-engine
BUILD_IN_SOURCE ON

31
deps/OpenVDB/0001-clang19.patch vendored Normal file
View File

@@ -0,0 +1,31 @@
diff --git a/openvdb/openvdb/tree/NodeManager.h b/openvdb/openvdb/tree/NodeManager.h
index 4d0d9b4..12dabaa 100644
--- a/openvdb/openvdb/tree/NodeManager.h
+++ b/openvdb/openvdb/tree/NodeManager.h
@@ -327,7 +327,7 @@ private:
void operator()(const NodeRange& range) const
{
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
- OpT::template eval(mNodeOp, it);
+ OpT::eval(mNodeOp, it);
}
}
const NodeOp mNodeOp;
@@ -347,7 +347,7 @@ private:
void operator()(const NodeRange& range) const
{
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
- OpT::template eval(mNodeOp, it);
+ OpT::eval(mNodeOp, it);
}
}
const NodeOp& mNodeOp;
@@ -372,7 +372,7 @@ private:
void operator()(const NodeRange& range)
{
for (typename NodeRange::Iterator it = range.begin(); it; ++it) {
- OpT::template eval(*mNodeOp, it);
+ OpT::eval(*mNodeOp, it);
}
}
void join(const NodeReducer& other)

View File

@@ -6,6 +6,10 @@ else()
set(_build_static ON)
endif()
if (BINARY_DIR_REL)
set(OPENVDB_DIRECTORY_FLAG --directory ${BINARY_DIR_REL}/dep_OpenVDB-prefix/src/dep_OpenVDB)
endif ()
set (_openvdb_vdbprint ON)
#if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm")
# Build fails on raspberry pi due to missing link directive to latomic
@@ -15,6 +19,7 @@ set (_openvdb_vdbprint ON)
qidistudio_add_cmake_project(OpenVDB
URL https://github.com/tamasmeszaros/openvdb/archive/a68fd58d0e2b85f01adeb8b13d7555183ab10aa5.zip # 8.2 patched
URL_HASH SHA256=f353e7b99bd0cbfc27ac9082de51acf32a8bc0b3e21ff9661ecca6f205ec1d81
PATCH_COMMAND git apply ${OPENVDB_DIRECTORY_FLAG} --verbose --ignore-space-change --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/0001-clang19.patch
# URL https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v10.0.1.zip
# URL_HASH SHA256=48C2CFA9853B58FA86282DF1F83F0E99D07858CC03EB2BA8227DC447A830100A
DEPENDS dep_TBB dep_Blosc dep_OpenEXR ${BOOST_PKG}

29
deps/PNG/0002-clang19-macos.patch vendored Normal file
View File

@@ -0,0 +1,29 @@
--- a/pngpriv.h 2025-04-20 19:36:04.000000000
+++ b/pngpriv.h 2025-04-20 19:35:55.000000000
@@ -511,24 +511,14 @@
* DBL_DIG Maximum number of decimal digits (can be set to any constant)
* DBL_MIN Smallest normalized fp number (can be set to an arbitrary value)
* DBL_MAX Maximum floating point number (can be set to an arbitrary value)
*/
# include <float.h>
-# if (defined(__MWERKS__) && defined(macintosh)) || defined(applec) || \
- defined(THINK_C) || defined(__SC__) || defined(TARGET_OS_MAC)
- /* We need to check that <math.h> hasn't already been included earlier
- * as it seems it doesn't agree with <fp.h>, yet we should really use
- * <fp.h> if possible.
- */
-# if !defined(__MATH_H__) && !defined(__MATH_H) && !defined(__cmath__)
-# include <fp.h>
-# endif
-# else
-# include <math.h>
-# endif
+# include <math.h>
+
# if defined(_AMIGA) && defined(__SASC) && defined(_M68881)
/* Amiga SAS/C: We must include builtin FPU functions when compiling using
* MATH=68881
*/
# include <m68881.h>
# endif

53
deps/PNG/PNG.cmake vendored
View File

@@ -5,26 +5,43 @@ else ()
set(_disable_neon_extension "")
endif ()
if(APPLE AND IS_CROSS_COMPILE)
# TODO: check if it doesn't create problem when compiling from arm to x86_64
qidistudio_add_cmake_project(PNG
GIT_REPOSITORY https://github.com/glennrp/libpng.git
GIT_TAG v1.6.35
DEPENDS ${ZLIB_PKG}
PATCH_COMMAND ${GIT_EXECUTABLE} checkout -f -- . && git clean -df &&
${GIT_EXECUTABLE} apply --whitespace=fix ${CMAKE_CURRENT_LIST_DIR}/macos-arm64.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch
CMAKE_ARGS
-DPNG_SHARED=OFF
-DPNG_STATIC=ON
-DPNG_PREFIX=prusaslicer_
-DPNG_TESTS=OFF
-DDISABLE_DEPENDENCY_TRACKING=OFF
${_disable_neon_extension}
)
else ()
set(_patch_step "")
if (APPLE)
set(_patch_step PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/PNG.patch)
endif ()
qidistudio_add_cmake_project(PNG
# GIT_REPOSITORY https://github.com/glennrp/libpng.git
# GIT_TAG v1.6.35
URL https://github.com/glennrp/libpng/archive/refs/tags/v1.6.35.zip
URL_HASH SHA256=3d22d46c566b1761a0e15ea397589b3a5f36ac09b7c785382e6470156c04247f
DEPENDS ${ZLIB_PKG}
"${_patch_step}"
CMAKE_ARGS
-DPNG_SHARED=OFF
-DPNG_STATIC=ON
-DPNG_PREFIX=prusaslicer_
-DPNG_TESTS=OFF
-DDISABLE_DEPENDENCY_TRACKING=OFF
${_disable_neon_extension}
if (APPLE)
set(_patch_step PATCH_COMMAND ${PATCH_CMD} ${CMAKE_CURRENT_LIST_DIR}/PNG.patch ${CMAKE_CURRENT_LIST_DIR}/0002-clang19-macos.patch)
endif ()
qidistudio_add_cmake_project(PNG
# GIT_REPOSITORY https://github.com/glennrp/libpng.git
# GIT_TAG v1.6.35
URL https://github.com/glennrp/libpng/archive/refs/tags/v1.6.35.zip
URL_HASH SHA256=3d22d46c566b1761a0e15ea397589b3a5f36ac09b7c785382e6470156c04247f
DEPENDS ${ZLIB_PKG}
"${_patch_step}"
CMAKE_ARGS
-DPNG_SHARED=OFF
-DPNG_STATIC=ON
-DPNG_PREFIX=prusaslicer_
-DPNG_TESTS=OFF
-DDISABLE_DEPENDENCY_TRACKING=OFF
${_disable_neon_extension}
)
endif()
if (MSVC)
add_debug_dep(dep_PNG)

90
deps/PNG/macos-arm64.patch vendored Normal file
View File

@@ -0,0 +1,90 @@
Based on https://github.com/vespakoen/libpng to work around until
https://github.com/glennrp/libpng/pull/354 is resolved.
also added patch from PS2.4 (PNG.pach) in pngrutil.c
---
CMakeLists.txt | 28 ++++++++++++++++++++--------
pngrutil.c | 7 -------
2 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4db9bb87d..9099d1edf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -82,10 +82,22 @@ option(PNG_HARDWARE_OPTIMIZATIONS "Enable Hardware Optimizations" ON)
set(PNG_PREFIX "" CACHE STRING "Prefix to add to the API function names")
set(DFA_XTRA "" CACHE FILEPATH "File containing extra configuration settings")
+# CMake currently sets CMAKE_SYSTEM_PROCESSOR to one of x86_64 or arm64 on macOS,
+# based upon the OS architecture, not the target architecture. As such, we need
+# to check CMAKE_OSX_ARCHITECTURES to identify which hardware-specific flags to
+# enable. Note that this will fail if you attempt to build a universal binary in
+# a single cmake invokation.
+if (APPLE AND CMAKE_OSX_ARCHITECTURES)
+ set(TARGET_ARCH ${CMAKE_OSX_ARCHITECTURES})
+else()
+ set(TARGET_ARCH ${CMAKE_SYSTEM_PROCESSOR})
+endif()
+
+
if(PNG_HARDWARE_OPTIMIZATIONS)
# set definitions and sources for arm
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
- CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
+if(TARGET_ARCH MATCHES "^arm" OR
+ TARGET_ARCH MATCHES "^aarch64")
set(PNG_ARM_NEON_POSSIBLE_VALUES check on off)
set(PNG_ARM_NEON "check" CACHE STRING "Enable ARM NEON optimizations:
check: (default) use internal checking code;
@@ -114,8 +126,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm" OR
endif()
# set definitions and sources for powerpc
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
- CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64*" )
+if(TARGET_ARCH MATCHES "^powerpc*" OR
+ TARGET_ARCH MATCHES "^ppc64*" )
set(PNG_POWERPC_VSX_POSSIBLE_VALUES on off)
set(PNG_POWERPC_VSX "on" CACHE STRING "Enable POWERPC VSX optimizations:
off: disable the optimizations.")
@@ -138,8 +150,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^powerpc*" OR
endif()
# set definitions and sources for intel
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
- CMAKE_SYSTEM_PROCESSOR MATCHES "^x86_64*" )
+if(TARGET_ARCH MATCHES "^i?86" OR
+ TARGET_ARCH MATCHES "^x86_64*" )
set(PNG_INTEL_SSE_POSSIBLE_VALUES on off)
set(PNG_INTEL_SSE "on" CACHE STRING "Enable INTEL_SSE optimizations:
off: disable the optimizations")
@@ -162,8 +174,8 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^i?86" OR
endif()
# set definitions and sources for MIPS
-if(CMAKE_SYSTEM_PROCESSOR MATCHES "mipsel*" OR
- CMAKE_SYSTEM_PROCESSOR MATCHES "mips64el*" )
+if(TARGET_ARCH MATCHES "mipsel*" OR
+ TARGET_ARCH MATCHES "mips64el*" )
set(PNG_MIPS_MSA_POSSIBLE_VALUES on off)
set(PNG_MIPS_MSA "on" CACHE STRING "Enable MIPS_MSA optimizations:
off: disable the optimizations")
diff --git a/pngrutil.c b/pngrutil.c
index 7001f1976..91930f1f2 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -422,13 +422,6 @@ png_inflate_claim(png_structrp png_ptr, png_uint_32 owner)
png_ptr->flags |= PNG_FLAG_ZSTREAM_INITIALIZED;
}
-#if ZLIB_VERNUM >= 0x1290 && \
- defined(PNG_SET_OPTION_SUPPORTED) && defined(PNG_IGNORE_ADLER32)
- if (((png_ptr->options >> PNG_IGNORE_ADLER32) & 3) == PNG_OPTION_ON)
- /* Turn off validation of the ADLER32 checksum in IDAT chunks */
- ret = inflateValidate(&png_ptr->zstream, 0);
-#endif
-
if (ret == Z_OK)
png_ptr->zowner = owner;
--
2.33.0.windows.1

View File

@@ -6,8 +6,9 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
endif ()
set(_wx_toolkit "-DwxBUILD_TOOLKIT=gtk${_gtk_ver}")
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=1")
set(_wx_egl "-DwxUSE_GLCANVAS_EGL=OFF")
else ()
set(_wx_private_font "-DwxUSE_PRIVATE_FONTS=0")
set(_wx_egl "")
endif()
if (MSVC)
@@ -52,6 +53,7 @@ qidistudio_add_cmake_project(wxWidgets
-DwxUSE_LIBJPEG=sys
-DwxUSE_LIBTIFF=sys
-DwxUSE_EXPAT=sys
${_wx_egl}
)
if (MSVC)

View File

@@ -0,0 +1,19 @@
ARG VERSION="studio_dep_22"
FROM ${VERSION}:1.0 AS builder
COPY ./ /QIDIStudio
WORKDIR /QIDIStudio
RUN mkdir -p /QIDIStudio/deps/build
RUN mv /destdir /QIDIStudio/deps/build/
RUN ./BuildLinux.sh -s
ENV container=podman
RUN ./BuildLinux.sh -i
FROM scratch AS export-stage
COPY --from=builder /QIDIStudio/build/QIDIStudio_ubu64.AppImage /

View File

@@ -0,0 +1,39 @@
FROM docker.io/ubuntu:22.04
# Disable interactive package configuration
RUN apt-get update && \
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get update && apt-get install -y \
autoconf \
build-essential \
cmake \
curl \
xvfb \
extra-cmake-modules \
file \
git \
locales \
locales-all \
m4 \
pkgconf \
sudo \
wayland-protocols \
libwebkit2gtk-4.0-dev \
wget
COPY ./ /QIDIStudio
WORKDIR /QIDIStudio
# Allow password-less sudo for ALL users
RUN echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/999-passwordless
RUN chmod 440 /etc/sudoers.d/999-passwordless
RUN ./BuildLinux.sh -u
RUN ./BuildLinux.sh -dfr
RUN cp -r deps/build/destdir /
RUN rm -rf /QIDIStudio

View File

@@ -0,0 +1,39 @@
FROM docker.io/ubuntu:24.04
# Disable interactive package configuration
RUN apt-get update && \
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections
RUN apt-get update && apt-get install -y \
autoconf \
build-essential \
cmake \
curl \
xvfb \
extra-cmake-modules \
file \
git \
locales \
locales-all \
m4 \
pkgconf \
sudo \
wayland-protocols \
libwebkit2gtk-4.1-dev \
wget
COPY ./ /QIDIStudio
WORKDIR /QIDIStudio
# Allow password-less sudo for ALL users
RUN echo "ALL ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/999-passwordless
RUN chmod 440 /etc/sudoers.d/999-passwordless
RUN ./BuildLinux.sh -u
RUN ./BuildLinux.sh -dfr
RUN cp -r deps/build/destdir /
RUN rm -rf /QIDIStudio

View File

@@ -30,6 +30,7 @@ REQUIRED_DEV_PACKAGES=(
nasm
yasm
libx264-dev
libbz2-dev
)
if [[ -n "$UPDATE_LIB" ]]

View File

@@ -38,6 +38,7 @@ REQUIRED_DEV_PACKAGES=(
nasm
yasm
x264-devel
bzip2-devel
)
if [[ -n "$UPDATE_LIB" ]]

View File

@@ -554,38 +554,36 @@ GCodeCheckResult GCodeChecker::parse_M83(const GCodeLine& gcode_line)
return GCodeCheckResult::Success;
}
GCodeCheckResult GCodeChecker::parse_M104_M109(const GCodeLine &gcode_line)
GCodeCheckResult GCodeChecker::parse_M104_M109(const GCodeLine& gcode_line)
{
const char *c = gcode_line.m_raw.c_str();
const char *rs = strchr(c,'S');
std::string strS = rs;
strS = strS.substr(1);
for (int i = 0; i < strS.size(); i++) {
if (strS[i] == ' ')
strS = strS.substr(0,i);
const char* c = gcode_line.m_raw.c_str();
const char* rs = strchr(c, 'S');
if (!rs) {
std::cout << "No S parameter found in M104/M109 command!" << std::endl;
return GCodeCheckResult::Success;
}
double temp_nozzle_temp;
std::string strS = rs + 1;
size_t pos = strS.find_first_of(" ;");
if (pos != std::string::npos)
strS = strS.substr(0, pos);
double temp_nozzle_temp;
if (!parse_double_from_str(strS, temp_nozzle_temp)) {
std::cout << "invalid nozzle temperature comment with invalid value!" << std::endl;
std::cout << "Invalid nozzle temperature: " << strS << std::endl;
return GCodeCheckResult::ParseFailed;
}
if (is_multi_nozzle == true) {
const char* rt = strchr(c, 'T');
if (rt) {
std::string strT = rt + 1; // 跳过 'T'
for (size_t i = 0; i < strT.size(); i++) {
if (strT[i] == ' ') {
strT = strT.substr(0, i);
break;
}
}
std::string strT = rt + 1;
size_t posT = strT.find_first_of(" ;");
if (posT != std::string::npos)
strT = strT.substr(0, posT);
int logic_nozzle_id = physical_to_logic_extruder_map[std::stoi(strT)];
multi_nozzle_temp[logic_nozzle_id] = temp_nozzle_temp;
}
else
{
else {
multi_nozzle_temp[current_nozzle_id] = temp_nozzle_temp;
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,69 @@
src/libslic3r/PresetBundle.cpp
src/slic3r/GUI/DeviceCore/DevAxis.cpp
src/slic3r/GUI/DeviceCore/DevBed.cpp
src/slic3r/GUI/DeviceCore/DevBed.h
src/slic3r/GUI/DeviceCore/DevConfig.h
src/slic3r/GUI/DeviceCore/DevConfig.cpp
src/slic3r/GUI/DeviceCore/DevConfigUtil.h
src/slic3r/GUI/DeviceCore/DevConfigUtil.cpp
src/slic3r/GUI/DeviceCore/DevCtrl.h
src/slic3r/GUI/DeviceCore/DevCtrl.cpp
src/slic3r/GUI/DeviceCore/DevDefs.h
src/slic3r/GUI/DeviceCore/DevExtensionTool.h
src/slic3r/GUI/DeviceCore/DevExtensionTool.cpp
src/slic3r/GUI/DeviceCore/DevExtruderSystem.h
src/slic3r/GUI/DeviceCore/DevExtruderSystem.cpp
src/slic3r/GUI/DeviceCore/DevExtruderSystemCtrl.cpp
src/slic3r/GUI/DeviceCore/DevFan.cpp
src/slic3r/GUI/DeviceCore/DevFan.h
src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.h
src/slic3r/GUI/DeviceCore/DevFilaAmsSetting.cpp
src/slic3r/GUI/DeviceCore/DevFilaBlackList.h
src/slic3r/GUI/DeviceCore/DevFilaBlackList.cpp
src/slic3r/GUI/DeviceCore/DevFilaSystem.h
src/slic3r/GUI/DeviceCore/DevFilaSystem.cpp
src/slic3r/GUI/DeviceCore/DevFirmware.h
src/slic3r/GUI/DeviceCore/DevFirmware.cpp
src/slic3r/GUI/DeviceCore/DevPrintOptions.h
src/slic3r/GUI/DeviceCore/DevPrintOptions.cpp
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.h
src/slic3r/GUI/DeviceCore/DevPrintTaskInfo.cpp
src/slic3r/GUI/DeviceCore/DevHMS.h
src/slic3r/GUI/DeviceCore/DevHMS.cpp
src/slic3r/GUI/DeviceCore/DevStorage.h
src/slic3r/GUI/DeviceCore/DevStorage.cpp
src/slic3r/GUI/DeviceCore/DevInfo.h
src/slic3r/GUI/DeviceCore/DevInfo.cpp
src/slic3r/GUI/DeviceCore/DevLamp.h
src/slic3r/GUI/DeviceCore/DevLamp.cpp
src/slic3r/GUI/DeviceCore/DevLampCtrl.cpp
src/slic3r/GUI/DeviceCore/DevManager.h
src/slic3r/GUI/DeviceCore/DevManager.cpp
src/slic3r/GUI/DeviceCore/DevMapping.h
src/slic3r/GUI/DeviceCore/DevMapping.cpp
src/slic3r/GUI/DeviceCore/DevNozzleRack.h
src/slic3r/GUI/DeviceCore/DevNozzleRack.cpp
src/slic3r/GUI/DeviceCore/DevNozzleRackCtrl.cpp
src/slic3r/GUI/DeviceCore/DevNozzleSystem.h
src/slic3r/GUI/DeviceCore/DevNozzleSystem.cpp
src/slic3r/GUI/DeviceCore/DevUpgrade.h
src/slic3r/GUI/DeviceCore/DevUpgrade.cpp
src/slic3r/GUI/DeviceCore/DevUtil.h
src/slic3r/GUI/DeviceCore/DevUtil.cpp
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.h
src/slic3r/GUI/DeviceTab/uiAmsHumidityPopup.cpp
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.h
src/slic3r/GUI/DeviceTab/uiDeviceUpdateVersion.cpp
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.h
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRack.cpp
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.h
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleRackUpdate.cpp
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.h
src/slic3r/GUI/DeviceTab/wgtDeviceNozzleSelect.cpp
src/slic3r/GUI/Gizmos/GLGizmoFdmSupports.cpp
src/slic3r/GUI/Gizmos/GLGizmoFlatten.cpp
src/slic3r/GUI/Gizmos/GLGizmoMmuSegmentation.cpp
src/slic3r/GUI/Gizmos/GLGizmoFuzzySkin.cpp
src/slic3r/GUI/Gizmos/GLGizmoMove.cpp
src/slic3r/GUI/Gizmos/GLGizmoRotate.cpp
src/slic3r/GUI/Gizmos/GLGizmoScale.cpp
@@ -56,6 +114,8 @@ src/slic3r/GUI/Jobs/RotoptimizeJob.cpp
src/slic3r/GUI/Jobs/BindJob.cpp
src/slic3r/GUI/Jobs/PrintJob.cpp
src/slic3r/GUI/Jobs/SendJob.cpp
src/slic3r/GUI/ThermalPreconditioningDialog.cpp
src/slic3r/GUI/ThermalPreconditioningDialog.hpp
src/slic3r/GUI/Jobs/SLAImportJob.cpp
src/slic3r/GUI/Jobs/UpgradeNetworkJob.cpp
src/slic3r/GUI/AboutDialog.cpp
@@ -71,8 +131,12 @@ src/slic3r/GUI/BedShapeDialog.cpp
src/slic3r/GUI/BedShapeDialog.hpp
src/slic3r/GUI/ConfigManipulation.cpp
src/slic3r/GUI/DeviceManager.cpp
src/slic3r/GUI/DeviceErrorDialog.cpp
src/slic3r/GUI/ExtraRenderers.cpp
src/slic3r/GUI/Field.cpp
src/slic3r/GUI/GCodeRenderer/AdvancedRenderer.cpp
src/slic3r/GUI/GCodeRenderer/BaseRenderer.cpp
src/slic3r/GUI/GCodeRenderer/LegacyRenderer.cpp
src/slic3r/GUI/GCodeViewer.cpp
src/slic3r/GUI/GLCanvas3D.cpp
src/slic3r/GUI/Calibration.cpp
@@ -98,6 +162,7 @@ src/slic3r/GUI/ObjectDataViewModel.cpp
src/slic3r/GUI/OpenGLManager.cpp
src/slic3r/GUI/OptionsGroup.cpp
src/slic3r/GUI/PrintOptionsDialog.cpp
src/slic3r/GUI/SafetyOptionsDialog.cpp
src/slic3r/GUI/ParamsPanel.cpp
src/slic3r/GUI/PartPlate.cpp
src/slic3r/GUI/Plater.cpp
@@ -106,6 +171,7 @@ src/slic3r/GUI/PresetComboBoxes.cpp
src/slic3r/GUI/PresetHints.cpp
src/slic3r/GUI/ProgressStatusBar.cpp
src/slic3r/GUI/PlateSettingsDialog.cpp
src/slic3r/GUI/PlateMoveDialog.cpp
src/slic3r/GUI/PrivacyUpdateDialog.cpp
src/slic3r/GUI/PublishDialog.cpp
src/slic3r/GUI/SavePresetDialog.cpp
@@ -133,7 +199,10 @@ src/slic3r/GUI/KBShortcutsDialog.hpp
src/slic3r/GUI/KBShortcutsDialog.cpp
src/slic3r/GUI/ReleaseNote.cpp
src/slic3r/GUI/ReleaseNote.hpp
src/slic3r/GUI/HelioReleaseNote.cpp
src/slic3r/GUI/HelioReleaseNote.hpp
src/slic3r/GUI/UpgradePanel.cpp
src/slic3r/GUI/Project.cpp
src/slic3r/Utils/FixModelByWin10.cpp
src/slic3r/Utils/PresetUpdater.cpp
src/slic3r/Utils/Http.cpp
@@ -169,6 +238,7 @@ src/slic3r/GUI/BonjourDialog.cpp
src/slic3r/GUI/calib_dlg.cpp
src/slic3r/GUI/PrintHostDialogs.cpp
src/slic3r/GUI/Gizmos/GLGizmoMeshBoolean.cpp
src/slic3r/GUI/UIHelpers/MeshBooleanUI.cpp
src/slic3r/GUI/NetworkTestDialog.cpp
src/slic3r/GUI/CreatePresetsDialog.cpp
src/slic3r/GUI/DailyTips.cpp
@@ -181,11 +251,25 @@ src/slic3r/Utils/MKS.cpp
src/slic3r/Utils/OctoPrint.cpp
src/slic3r/Utils/Repetier.cpp
src/slic3r/Utils/ProfileDescription.hpp
src/slic3r/Utils/HelioDragon.cpp
src/slic3r/GUI/SendMultiMachinePage.cpp
src/slic3r/GUI/MultiMachinePage.cpp
src/slic3r/GUI/MultiMachineManagerPage.cpp
src/slic3r/GUI/MultiTaskManagerPage.cpp
src/slic3r/GUI/MultiMachine.cpp
src/slic3r/GUI/UserPresetsDialog.cpp
src/slic3r/GUI/FilamentMapDialog.cpp
src/slic3r/GUI/FilamentGroupPopup.cpp
src/slic3r/GUI/FilamentMapPanel.cpp
src/slic3r/GUI/PartSkipDialog.cpp
src/slic3r/GUI/PartSkipDialog.hpp
src/slic3r/GUI/SkipPartCanvas.cpp
src/slic3r/GUI/SkipPartCanvas.hpp
src/slic3r/GUI/FilamentBitmapUtils.cpp
src/slic3r/GUI/FilamentBitmapUtils.hpp
src/slic3r/GUI/FilamentPickerDialog.cpp
src/slic3r/GUI/FilamentPickerDialog.hpp
src/slic3r/GUI/Widgets/MultiNozzleSync.cpp
src/slic3r/GUI/Widgets/MultiNozzleSync.hpp
src/slic3r/GUI/PurgeModeDialog.cpp
src/slic3r/GUI/PurgeModeDialog.hpp

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,4 +1,92 @@
-----BEGIN CERTIFICATE-----
MIIFfzCCA2egAwIBAgIUXtzR6tRiL/RHBRXOoyFU0+XrliowDQYJKoZIhvcNAQEL
BQAwRjELMAkGA1UEBhMCQ04xITAfBgNVBAoMGEJCTCBUZWNobm9sb2dpZXMgQ28u
IEx0ZDEUMBIGA1UEAwwLQkJMIENBMiBSU0EwIBcNMjUwNjE3MDEzODA4WhgPMjA1
MDA2MTcwMTM4MDhaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5v
bG9naWVzIENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgUlNBMIICIjANBgkqhkiG
9w0BAQEFAAOCAg8AMIICCgKCAgEAo4550G4c42gTKzQqixwKT089RizIdZpyOcGA
679rPaOdWsMqVwnYPP2FpMqXKkjFbedE+SpGloi2NKCuiPNVRbq9PHOOZwTs7YLo
bOwf53FJuO6vRFpzFfX1tlc9zlFqJvZnYO9NgHpMysidocWcgrDN/SIDywgPB5CV
bYg3Vvzua9fwZx9e5KT9xd5IpTqdTrWS47jQOVKLhdQCbJFIlMrblOwLBAx+fHok
wqh6tkI6Ktuyyjw8Dysebi1ndWjKtZ2mW47r8xZ/J+z3EZqcyJMY6MRtx/zb1jBF
uHtkjrb5Kv1DMzSKlkaNJIbvC+Mk+hI97W+SjLSRuIdC7+oJUzWaSzgu9cjXCVfm
q8t4IL/35hP69PK95LgLectIrP96CYAT/aVMG19FrFW0QWEyfT+kzG4jkumfPbHq
Y2nNkEN0+tjj3h4WdzrWgQEojK/lhfcRFVkts74+aZoMpQP+vmL17CKmSzXk5o/e
K21xgxJdzMbdztfTpibiXk0abfOpN+1VR+3NYa+bROAKNyGaReEGsyW2bjcjNx51
5Vqzj3SVxhMSp5vfF9E4A1jE99M/l9jQDM6RzkT0lMccGAd5tUSdNvDlrqtQaQiK
v/ZsXPgXLTWfOpvaLNEgwdMgZMuhjpkwvAZyoYfeF9kyydjDh7bvrX//cz/VopAU
lxUtQtMCAwEAAaNjMGEwHQYDVR0OBBYEFNVJgQad1sNTN0jxVkwbJ/XM1an1MB8G
A1UdIwQYMBaAFNVJgQad1sNTN0jxVkwbJ/XM1an1MA8GA1UdEwEB/wQFMAMBAf8w
DgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQBFZDKMJfp/N4gBeFHh
MiFehaUyMS6e9mzrTfMLJLJoj6Jopa9V9jIfcCEBGZuRThqFcATV+UdFHSINpUcH
upcCYnazTRC4dn1hnxnQ1ojQcHxdGp9xGw/YclAKD97d8bPShfBMT1to9zbMK7T5
L8zgqg01YIOKjQk0Hcd0+0iUr6m8zQ5P8Rl3QXqAyeWgqmYQrrjTWwPsgdfHNXKX
vDrx7/cqry5lKU802hUplKMBxelv4W8407Ytj1lfJOwvxqxxsFU5jSwcUG3zo2vk
QtjRs8m5BKup5K1OPYkkPu7Ld89X0XpU073/dNDG11uxb1eDKrtNP6vZuZjNE2Pq
8HCoI1EtP+ItyqtUMvHi6Z2zsmlA25broVioeUKxjlIecpQ9JR/FhDu9CWNF/nDW
LSORNaMMzgsMSzI+HCiUhqN+qMIvVP6rzGTJzwqz/lc5Lf+ZPCnGA9WJTT4uPIhf
ufbZmnUJ35WuWKHxovDsqBh88zQ9sZ+ei4Hi4vVzOhUgfG3aLoSQEYqRoqaboANh
wCwzyuW2Rv54u5QSBbd6Gx1OpvsWmLPWd2/iL2kISl5wfmLGVydvSJa+rbOfuAy7
ycVQacVDQCAnbhoVrQy7+454QsKSW3ZV6BcyRrorewCyCYgd7nyxflxHZTBEykXX
haGNe/KFNvJBMOIuIUzknRRmiQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIB8zCCAZmgAwIBAgIUe61jGQ4RzIC8k+sNuqbI/CaNqPIwCgYIKoZIzj0EAwIw
RjELMAkGA1UEBhMCQ04xITAfBgNVBAoMGEJCTCBUZWNobm9sb2dpZXMgQ28uIEx0
ZDEUMBIGA1UEAwwLQkJMIENBMiBFQ0MwIBcNMjUwNjE3MDEzODM1WhgPMjA1MDA2
MTcwMTM4MzVaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9n
aWVzIENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgRUNDMFkwEwYHKoZIzj0CAQYI
KoZIzj0DAQcDQgAEpKTF7wRSty4DXpGJzgCPwRh8ghLlxUC3qJbyEgLqTvJgbiwY
APPHK7kVbVmerkqhHOT4QeWRlTG3dOQGLA2VpaNjMGEwHQYDVR0OBBYEFKuRpsjY
REOyIKH7HwOE6jhGBd6NMB8GA1UdIwQYMBaAFKuRpsjYREOyIKH7HwOE6jhGBd6N
MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMCA0gA
MEUCIErBiUm3VdtP3rz4kb8aLpI5p+BzL7M9vElBGWWJxpHMAiEA3r5tJWVGwuxi
YCrB1c40KYFRFyahGrhOJZAj/YhRdnU=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEeTCCA2GgAwIBAgIUOq+lNIaC2xsswkFqj5JPyVBl45cwDQYJKoZIhvcNAQEL
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yNTA2MTcwMjAxMjdaFw0zNTA2MTUw
MjAxMjdaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9naWVz
IENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgUlNBMIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAo4550G4c42gTKzQqixwKT089RizIdZpyOcGA679rPaOd
WsMqVwnYPP2FpMqXKkjFbedE+SpGloi2NKCuiPNVRbq9PHOOZwTs7YLobOwf53FJ
uO6vRFpzFfX1tlc9zlFqJvZnYO9NgHpMysidocWcgrDN/SIDywgPB5CVbYg3Vvzu
a9fwZx9e5KT9xd5IpTqdTrWS47jQOVKLhdQCbJFIlMrblOwLBAx+fHokwqh6tkI6
Ktuyyjw8Dysebi1ndWjKtZ2mW47r8xZ/J+z3EZqcyJMY6MRtx/zb1jBFuHtkjrb5
Kv1DMzSKlkaNJIbvC+Mk+hI97W+SjLSRuIdC7+oJUzWaSzgu9cjXCVfmq8t4IL/3
5hP69PK95LgLectIrP96CYAT/aVMG19FrFW0QWEyfT+kzG4jkumfPbHqY2nNkEN0
+tjj3h4WdzrWgQEojK/lhfcRFVkts74+aZoMpQP+vmL17CKmSzXk5o/eK21xgxJd
zMbdztfTpibiXk0abfOpN+1VR+3NYa+bROAKNyGaReEGsyW2bjcjNx515Vqzj3SV
xhMSp5vfF9E4A1jE99M/l9jQDM6RzkT0lMccGAd5tUSdNvDlrqtQaQiKv/ZsXPgX
LTWfOpvaLNEgwdMgZMuhjpkwvAZyoYfeF9kyydjDh7bvrX//cz/VopAUlxUtQtMC
AwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O
BBYEFNVJgQad1sNTN0jxVkwbJ/XM1an1MB8GA1UdIwQYMBaAFI80QmjcZ06PxCKe
xXxJ5avdRL4eMA0GCSqGSIb3DQEBCwUAA4IBAQAvS8tyfagaGsFf9YncA2ko/Na5
9BVF+8TlUo+32oznwIVpS1AhSgLP6rNVekXNFKbuP5htudLQ17ZRBJI/UMVyYEDq
IN7xv7Zj+zJwF6W6haYrjb2Vk8igw1XvNULZfvVNNKIkvJUiVqEslWrC+k74crk/
Wv8ChVf+zqvfIN6LV3esaGRL02J3AprQGb7DDhR1EefQMScDkNpGJMUmvCmfknrl
iK8qgvQN1SWO7JRf6fNKHsN1ZQvyP0pgLWxpT3V0/0/WttqX3cMGuJF+jVUzm/Nh
xYhFewG8vc3KzTjnwQApMA6CW554FOJWFyOD2jn5yJLT3Vue+aYDQRp4bKMx
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIICrjCCAZagAwIBAgIUOq+lNIaC2xsswkFqj5JPyVBl45gwDQYJKoZIhvcNAQEL
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yNTA2MTcwMjAxNDdaFw0zNTA2MTUw
MjAxNDdaMEYxCzAJBgNVBAYTAkNOMSEwHwYDVQQKDBhCQkwgVGVjaG5vbG9naWVz
IENvLiBMdGQxFDASBgNVBAMMC0JCTCBDQTIgRUNDMFkwEwYHKoZIzj0CAQYIKoZI
zj0DAQcDQgAEpKTF7wRSty4DXpGJzgCPwRh8ghLlxUC3qJbyEgLqTvJgbiwYAPPH
K7kVbVmerkqhHOT4QeWRlTG3dOQGLA2VpaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAO
BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFKuRpsjYREOyIKH7HwOE6jhGBd6NMB8G
A1UdIwQYMBaAFI80QmjcZ06PxCKexXxJ5avdRL4eMA0GCSqGSIb3DQEBCwUAA4IB
AQCg6PjUSSZV+4bvejcVMvgXmKzfD95osWn0ctnoMBxPDa+m+Gg+BcLT2IlFAe3E
KYMvu4T295WQc92rjKYqW6cirFppng9uEFW2mZLimxaSmutsTftE3sbMVMJ/SLYN
PV7TFv6mcBSIFWXwmBOIpbh4BUcVfONTvdSfIqfyAVxsq4xzc2nc6hPBpAm21Ayj
ToC1ev/TbDJ8VllFZiEVmWWlIP3aNzAm8S2mOpxPB2WnanaZHSrvXLFhstyzwrjD
yO1/isOZ7wtr7rcuTJdEvvvCimOZlkfRhaDoTew9tQ0E2FVpzzSinw02qmQ1xIE9
5/H5ZzJSPkpeAHWEPnKkxg0v
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDZTCCAk2gAwIBAgIUV1FckwXElyek1onFnQ9kL7Bk4N8wDQYJKoZIhvcNAQEL
BQAwQjELMAkGA1UEBhMCQ04xIjAgBgNVBAoMGUJCTCBUZWNobm9sb2dpZXMgQ28u
LCBMdGQxDzANBgNVBAMMBkJCTCBDQTAeFw0yMjA0MDQwMzQyMTFaFw0zMjA0MDEw
@@ -18,4 +106,4 @@ BdOoo96iX89rRPoxeed1cpq5hZwbeka3+CJGV76itWp35Up5rmmUqrlyQOr/Wax6
itosIzG0MfhgUzU51A2P/hSnD3NDMXv+wUY/AvqgIL7u7fbDKnku1GzEKIkfH8hm
Rs6d8SCU89xyrwzQ0PR853irHas3WrHVqab3P+qNwR0YirL0Qk7Xt/q3O1griNg2
Blbjg3obpHo9
-----END CERTIFICATE-----
-----END CERTIFICATE-----

View File

@@ -0,0 +1,79 @@
[hint: Single-Material Only]
text = Single-Material Only\nHelio currently simulates one material and one nozzle per job. Multi-material or multi-extruder G-code adds long pauses that break thermal continuity, so results wouldnt be meaningful.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio0.png
[hint: One Plate per Job]
text = One Plate per Job\nUpload G-code with a single build plate—multi-plate projects arent yet supported, so only the first plate would run.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio1.png
[hint: What is the Thermal Quality Index?]
text = What is the Thermal Quality Index?\nThe Thermal Quality Index (scale 100 to +100) shows how hot or cold each region prints—green (≈ 0) is the “just right” zone for strong, warp-free parts. Keep most of the part green for best results.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio2.png
[hint: Voxel-Level Accuracy]
text = Voxel-Level Accuracy\nWe predict temperature in every voxel at every time-step, and for standard jobs the forecast is typically within ±510 °C. Pauses, custom firmware or odd cooling can widen that margin.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio3.png
[hint: Fan & Airflow Model]
text = Fan & Airflow Model\nA simplified fan-and-room model shows how cooling settings change part temps without slow CFD maths—great for day-to-day tuning. Chamber vortices arent yet simulated so runs stay fast.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio0.png
[hint: TQI Limits Explained]
text = TQI Limits Explained\n-100 → too cold: tensile strength is ~50 % lower than parts printed at the ideal 0 (ASTM D638 dog-bone tests). +100 → too hot: layers stay molten and may sag or collapse. Keep regions near 0 for peak strength and accuracy.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio1.png
[hint: What Drives Runtime?]
text = What Drives Runtime?\nExtra layers, dense infill, lots of tiny arcs (small mesh elements) or very slow printing speeds all extend simulation time because the solver must step through more seconds. Multi-core CPUs or CUDA GPUs speed things up.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio2.png
[hint: Nozzle Temp Range]
text = Nozzle Temp Range\nSupported set-points are 190 320 °C; anything outside is clamped to keep physics realistic.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio3.png
[hint: Debugging Flowchart]
text = Debugging Flowchart\nNot sure why a result looks off? Follow our step-by-step debugging flowchart to trace settings, G-code and material issues in minutes.
documentation_link = https://wiki.helioadditive.com/en/flowchart
image = images/dailytips_helio0.png
[hint: Why Cooling Varies]
text = Why Cooling Varies\nOuter walls and bridges cool fastest while thick interiors stay warmer—geometry, airflow and tool-path all play a part, and the simulation visualises these differences.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio1.png
[hint: Extrusion Temp Model]
text = Extrusion Temp Model\nMaterial properties shape the melt curve, but printer geometry decides how much heat the filament actually gains, so the model is material-specific and printer-calibrated.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio2.png
[hint: Nozzle setting of 190 °C vs 320 °C?]
text = Nozzle setting of 190 °C vs 320 °C?\nA 100 °C nozzle change only nudges the thermal index because extrusion temp, flow rate and post-deposition cooling dominate the parts heat history.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio3.png
[hint: Bed Temperature influence]
text = Bed Temperature influence\nOnly the first-layer bed temp feeds the model right now; later bed changes arent yet captured.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio0.png
[hint: Actual Tool-Path]
text = Actual Tool-Path\nYes—your exact G-code path, speeds and fan commands are simulated.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio1.png
[hint: Mesh Resolution]
text = Mesh Resolution\nThe voxel grid is finer than the G-code line spacing, capturing layer-by-layer detail without wasting compute.
documentation_link = https://wiki.helioadditive.com/en/FAQ
image = images/dailytips_helio2.png
[hint: Shrinkage, Warping & Stress]
text = Shrinkage, Warping & Stress\nBy controlling the thermal index you can remove the heat-driven causes of warp and stress.
documentation_link = https://wiki.helioadditive.com/en/flowchart
image = images/dailytips_helio3.png

View File

@@ -1,5 +1,5 @@
colors
#000000 #FFFFFF #545454 #8E9089 #C12E1F #F4EE2A #0086D6 #F7E6DE #00AE42 #5E43B7 #482960 #0056B8 #FEC600 #EC008C #F5547C #6F5034 #FF9016 #00B1B7 #BECF00
#000000 #FFFFFF #545454 #8E9089 #C12E1F #F4EE2A #0086D6 #F7E6DE #4479fb #5E43B7 #482960 #0056B8 #FEC600 #EC008C #F5547C #6F5034 #FF9016 #00B1B7 #BECF00
src dst flush
#000000 #FFFFFF 900
#000000 #545454 270
@@ -7,7 +7,7 @@ src dst flush
#000000 #F4EE2A 900
#000000 #0086D6 900
#000000 #F7E6DE 900
#000000 #00AE42 900
#000000 #4479fb 900
#000000 #5E43B7 900
#000000 #482960 360
#000000 #0056B8 660
@@ -24,7 +24,7 @@ src dst flush
#FFFFFF #F4EE2A 150
#FFFFFF #0086D6 90
#FFFFFF #F7E6DE 120
#FFFFFF #00AE42 120
#FFFFFF #4479fb 120
#FFFFFF #5E43B7 150
#FFFFFF #482960 120
#FFFFFF #0056B8 150
@@ -42,7 +42,7 @@ src dst flush
#545454 #F4EE2A 390
#545454 #0086D6 240
#545454 #F7E6DE 360
#545454 #00AE42 330
#545454 #4479fb 330
#545454 #5E43B7 180
#545454 #482960 150
#545454 #0056B8 180
@@ -60,7 +60,7 @@ src dst flush
#8E9089 #F4EE2A 360
#8E9089 #0086D6 180
#8E9089 #F7E6DE 360
#8E9089 #00AE42 120
#8E9089 #4479fb 120
#8E9089 #5E43B7 240
#8E9089 #482960 240
#8E9089 #0056B8 150
@@ -78,7 +78,7 @@ src dst flush
#C12E1F #F4EE2A 900
#C12E1F #0086D6 900
#C12E1F #F7E6DE 900
#C12E1F #00AE42 540
#C12E1F #4479fb 540
#C12E1F #5E43B7 570
#C12E1F #482960 210
#C12E1F #0056B8 630
@@ -96,7 +96,7 @@ src dst flush
#F4EE2A #C12E1F 180
#F4EE2A #0086D6 900
#F4EE2A #F7E6DE 900
#F4EE2A #00AE42 180
#F4EE2A #4479fb 180
#F4EE2A #5E43B7 690
#F4EE2A #0056B8 360
#F4EE2A #FEC600 120
@@ -113,7 +113,7 @@ src dst flush
#0086D6 #C12E1F 300
#0086D6 #F4EE2A 360
#0086D6 #F7E6DE 480
#0086D6 #00AE42 120
#0086D6 #4479fb 120
#0086D6 #5E43B7 210
#0086D6 #482960 120
#0086D6 #0056B8 150
@@ -131,7 +131,7 @@ src dst flush
#F7E6DE #C12E1F 150
#F7E6DE #F4EE2A 120
#F7E6DE #0086D6 180
#F7E6DE #00AE42 150
#F7E6DE #4479fb 150
#F7E6DE #5E43B7 210
#F7E6DE #482960 150
#F7E6DE #0056B8 150
@@ -142,23 +142,23 @@ src dst flush
#F7E6DE #FF9016 120
#F7E6DE #00B1B7 120
#F7E6DE #BECF00 120
#00AE42 #000000 120
#00AE42 #FFFFFF 690
#00AE42 #545454 330
#00AE42 #8E9089 330
#00AE42 #C12E1F 270
#00AE42 #F4EE2A 480
#00AE42 #0086D6 750
#00AE42 #F7E6DE 900
#00AE42 #5E43B7 450
#00AE42 #482960 210
#00AE42 #0056B8 240
#00AE42 #FEC600 420
#00AE42 #F5547C 390
#00AE42 #6F5034 210
#00AE42 #FF9016 420
#00AE42 #00B1B7 390
#00AE42 #BECF00 300
#4479fb #000000 120
#4479fb #FFFFFF 690
#4479fb #545454 330
#4479fb #8E9089 330
#4479fb #C12E1F 270
#4479fb #F4EE2A 480
#4479fb #0086D6 750
#4479fb #F7E6DE 900
#4479fb #5E43B7 450
#4479fb #482960 210
#4479fb #0056B8 240
#4479fb #FEC600 420
#4479fb #F5547C 390
#4479fb #6F5034 210
#4479fb #FF9016 420
#4479fb #00B1B7 390
#4479fb #BECF00 300
#5E43B7 #000000 150
#5E43B7 #FFFFFF 360
#5E43B7 #545454 150
@@ -167,7 +167,7 @@ src dst flush
#5E43B7 #F4EE2A 570
#5E43B7 #0086D6 240
#5E43B7 #F7E6DE 660
#5E43B7 #00AE42 240
#5E43B7 #4479fb 240
#5E43B7 #482960 240
#5E43B7 #0056B8 150
#5E43B7 #FEC600 390
@@ -185,7 +185,7 @@ src dst flush
#482960 #F4EE2A 780
#482960 #0086D6 420
#482960 #F7E6DE 900
#482960 #00AE42 510
#482960 #4479fb 510
#482960 #5E43B7 270
#482960 #0056B8 420
#482960 #FEC600 540
@@ -203,7 +203,7 @@ src dst flush
#0056B8 #F4EE2A 900
#0056B8 #0086D6 210
#0056B8 #F7E6DE 780
#0056B8 #00AE42 300
#0056B8 #4479fb 300
#0056B8 #5E43B7 210
#0056B8 #482960 270
#0056B8 #FEC600 630
@@ -221,7 +221,7 @@ src dst flush
#FEC600 #F4EE2A 180
#FEC600 #0086D6 900
#FEC600 #F7E6DE 720
#FEC600 #00AE42 210
#FEC600 #4479fb 210
#FEC600 #5E43B7 900
#FEC600 #482960 330
#FEC600 #0056B8 900
@@ -238,7 +238,7 @@ src dst flush
#EC008C #C12E1F 120
#EC008C #F4EE2A 900
#EC008C #0086D6 330
#EC008C #00AE42 450
#EC008C #4479fb 450
#EC008C #5E43B7 210
#EC008C #482960 180
#EC008C #0056B8 300
@@ -256,7 +256,7 @@ src dst flush
#F5547C #F4EE2A 750
#F5547C #0086D6 270
#F5547C #F7E6DE 900
#F5547C #00AE42 540
#F5547C #4479fb 540
#F5547C #5E43B7 150
#F5547C #482960 180
#F5547C #0056B8 150
@@ -274,7 +274,7 @@ src dst flush
#6F5034 #F4EE2A 360
#6F5034 #0086D6 360
#6F5034 #F7E6DE 390
#6F5034 #00AE42 330
#6F5034 #4479fb 330
#6F5034 #5E43B7 240
#6F5034 #482960 180
#6F5034 #0056B8 300
@@ -292,7 +292,7 @@ src dst flush
#FF9016 #F4EE2A 480
#FF9016 #0086D6 660
#FF9016 #F7E6DE 690
#FF9016 #00AE42 360
#FF9016 #4479fb 360
#FF9016 #5E43B7 360
#FF9016 #482960 210
#FF9016 #0056B8 330
@@ -317,7 +317,7 @@ src dst flush
#BECF00 #F4EE2A 150
#BECF00 #0086D6 270
#BECF00 #F7E6DE 540
#BECF00 #00AE42 150
#BECF00 #4479fb 150
#BECF00 #5E43B7 270
#BECF00 #482960 210
#BECF00 #0056B8 240

View File

@@ -1,5 +1,5 @@
colors
#000000 #FFFFFF #545454 #8E9089 #C12E1F #F4EE2A #0086D6 #F7E6DE #00AE42 #5E43B7 #482960 #0056B8 #FEC600 #EC008C #F5547C #6F5034 #FF9016 #00B1B7 #BECF00
#000000 #FFFFFF #545454 #8E9089 #C12E1F #F4EE2A #0086D6 #F7E6DE #4479fb #5E43B7 #482960 #0056B8 #FEC600 #EC008C #F5547C #6F5034 #FF9016 #00B1B7 #BECF00
src dst flush
#000000 #FFFFFF 900
#000000 #545454 450
@@ -8,7 +8,7 @@ src dst flush
#000000 #F4EE2A 900
#000000 #0086D6 570
#000000 #F7E6DE 900
#000000 #00AE42 810
#000000 #4479fb 810
#000000 #5E43B7 480
#000000 #482960 270
#000000 #0056B8 540
@@ -25,7 +25,7 @@ src dst flush
#FFFFFF #F4EE2A 90
#FFFFFF #0086D6 90
#FFFFFF #F7E6DE 90
#FFFFFF #00AE42 120
#FFFFFF #4479fb 120
#FFFFFF #5E43B7 90
#FFFFFF #0056B8 90
#FFFFFF #FEC600 150
@@ -42,7 +42,7 @@ src dst flush
#545454 #F4EE2A 330
#545454 #0086D6 270
#545454 #F7E6DE 390
#545454 #00AE42 270
#545454 #4479fb 270
#545454 #5E43B7 120
#545454 #482960 150
#545454 #0056B8 180
@@ -60,7 +60,7 @@ src dst flush
#8E9089 #F4EE2A 240
#8E9089 #0086D6 240
#8E9089 #F7E6DE 390
#8E9089 #00AE42 210
#8E9089 #4479fb 210
#8E9089 #5E43B7 270
#8E9089 #482960 300
#8E9089 #0056B8 180
@@ -78,7 +78,7 @@ src dst flush
#C12E1F #F4EE2A 450
#C12E1F #0086D6 390
#C12E1F #F7E6DE 630
#C12E1F #00AE42 420
#C12E1F #4479fb 420
#C12E1F #5E43B7 330
#C12E1F #482960 210
#C12E1F #0056B8 300
@@ -96,7 +96,7 @@ src dst flush
#F4EE2A #C12E1F 180
#F4EE2A #0086D6 270
#F4EE2A #F7E6DE 570
#F4EE2A #00AE42 120
#F4EE2A #4479fb 120
#F4EE2A #5E43B7 330
#F4EE2A #482960 330
#F4EE2A #0056B8 240
@@ -114,7 +114,7 @@ src dst flush
#0086D6 #C12E1F 240
#0086D6 #F4EE2A 360
#0086D6 #F7E6DE 390
#0086D6 #00AE42 120
#0086D6 #4479fb 120
#0086D6 #5E43B7 150
#0086D6 #482960 150
#0086D6 #0056B8 120
@@ -131,7 +131,7 @@ src dst flush
#F7E6DE #C12E1F 90
#F7E6DE #F4EE2A 60
#F7E6DE #0086D6 90
#F7E6DE #00AE42 90
#F7E6DE #4479fb 90
#F7E6DE #5E43B7 90
#F7E6DE #482960 120
#F7E6DE #0056B8 120
@@ -142,23 +142,23 @@ src dst flush
#F7E6DE #FF9016 120
#F7E6DE #00B1B7 90
#F7E6DE #BECF00 120
#00AE42 #000000 150
#00AE42 #FFFFFF 900
#00AE42 #545454 240
#00AE42 #8E9089 330
#00AE42 #C12E1F 210
#00AE42 #F4EE2A 270
#00AE42 #F7E6DE 360
#00AE42 #5E43B7 180
#00AE42 #482960 180
#00AE42 #0056B8 240
#00AE42 #FEC600 300
#00AE42 #EC008C 300
#00AE42 #F5547C 390
#00AE42 #6F5034 180
#00AE42 #FF9016 300
#00AE42 #00B1B7 360
#00AE42 #BECF00 270
#4479fb #000000 150
#4479fb #FFFFFF 900
#4479fb #545454 240
#4479fb #8E9089 330
#4479fb #C12E1F 210
#4479fb #F4EE2A 270
#4479fb #F7E6DE 360
#4479fb #5E43B7 180
#4479fb #482960 180
#4479fb #0056B8 240
#4479fb #FEC600 300
#4479fb #EC008C 300
#4479fb #F5547C 390
#4479fb #6F5034 180
#4479fb #FF9016 300
#4479fb #00B1B7 360
#4479fb #BECF00 270
#5E43B7 #000000 90
#5E43B7 #FFFFFF 630
#5E43B7 #545454 150
@@ -167,7 +167,7 @@ src dst flush
#5E43B7 #F4EE2A 330
#5E43B7 #0086D6 180
#5E43B7 #F7E6DE 510
#5E43B7 #00AE42 240
#5E43B7 #4479fb 240
#5E43B7 #482960 150
#5E43B7 #0056B8 120
#5E43B7 #FEC600 540
@@ -185,7 +185,7 @@ src dst flush
#482960 #F4EE2A 420
#482960 #0086D6 330
#482960 #F7E6DE 510
#482960 #00AE42 390
#482960 #4479fb 390
#482960 #5E43B7 270
#482960 #0056B8 300
#482960 #FEC600 660
@@ -203,7 +203,7 @@ src dst flush
#0056B8 #F4EE2A 630
#0056B8 #0086D6 180
#0056B8 #F7E6DE 840
#0056B8 #00AE42 270
#0056B8 #4479fb 270
#0056B8 #5E43B7 270
#0056B8 #482960 150
#0056B8 #FEC600 630
@@ -220,7 +220,7 @@ src dst flush
#FEC600 #F4EE2A 150
#FEC600 #0086D6 330
#FEC600 #F7E6DE 600
#FEC600 #00AE42 180
#FEC600 #4479fb 180
#FEC600 #5E43B7 270
#FEC600 #482960 330
#FEC600 #0056B8 300
@@ -238,7 +238,7 @@ src dst flush
#EC008C #F4EE2A 360
#EC008C #0086D6 270
#EC008C #F7E6DE 660
#EC008C #00AE42 330
#EC008C #4479fb 330
#EC008C #5E43B7 270
#EC008C #482960 270
#EC008C #0056B8 210
@@ -255,7 +255,7 @@ src dst flush
#F5547C #F4EE2A 270
#F5547C #0086D6 270
#F5547C #F7E6DE 540
#F5547C #00AE42 300
#F5547C #4479fb 300
#F5547C #5E43B7 210
#F5547C #482960 240
#F5547C #0056B8 210
@@ -273,7 +273,7 @@ src dst flush
#6F5034 #F4EE2A 390
#6F5034 #0086D6 330
#6F5034 #F7E6DE 420
#6F5034 #00AE42 300
#6F5034 #4479fb 300
#6F5034 #5E43B7 300
#6F5034 #482960 180
#6F5034 #0056B8 300
@@ -290,7 +290,7 @@ src dst flush
#FF9016 #F4EE2A 330
#FF9016 #0086D6 240
#FF9016 #F7E6DE 390
#FF9016 #00AE42 240
#FF9016 #4479fb 240
#FF9016 #5E43B7 270
#FF9016 #482960 180
#FF9016 #0056B8 240
@@ -308,7 +308,7 @@ src dst flush
#00B1B7 #F4EE2A 300
#00B1B7 #0086D6 150
#00B1B7 #F7E6DE 390
#00B1B7 #00AE42 120
#00B1B7 #4479fb 120
#00B1B7 #5E43B7 270
#00B1B7 #482960 270
#00B1B7 #0056B8 150
@@ -326,7 +326,7 @@ src dst flush
#BECF00 #F4EE2A 90
#BECF00 #0086D6 300
#BECF00 #F7E6DE 300
#BECF00 #00AE42 180
#BECF00 #4479fb 180
#BECF00 #5E43B7 270
#BECF00 #482960 210
#BECF00 #0056B8 240

View File

@@ -1,14 +1,14 @@
colors
#000000 #C12E1F #00AE42 #545454 #D1D3D5 #5B6579 #F4EE2A #9D432C #5E43B7 #0A2989 #FF6A13 #8E9089
#000000 #C12E1F #4479fb #545454 #D1D3D5 #5B6579 #F4EE2A #9D432C #5E43B7 #0A2989 #FF6A13 #8E9089
src dst flush
#000000 #F4EE2A 450
#000000 #5E43B7 330
#C12E1F #F4EE2A 420
#C12E1F #FF6A13 210
#00AE42 #D1D3D5 330
#00AE42 #F4EE2A 240
#00AE42 #FF6A13 270
#545454 #00AE42 180
#4479fb #D1D3D5 330
#4479fb #F4EE2A 240
#4479fb #FF6A13 270
#545454 #4479fb 180
#545454 #D1D3D5 240
#545454 #F4EE2A 270
#545454 #5E43B7 120
@@ -17,7 +17,7 @@ src dst flush
#D1D3D5 #F4EE2A 120
#D1D3D5 #FF6A13 150
#5B6579 #C12E1F 120
#5B6579 #00AE42 90
#5B6579 #4479fb 90
#5B6579 #D1D3D5 120
#5B6579 #F4EE2A 180
#5B6579 #9D432C 120
@@ -26,22 +26,22 @@ src dst flush
#5B6579 #8E9089 90
#F4EE2A #000000 120
#F4EE2A #C12E1F 90
#F4EE2A #00AE42 150
#F4EE2A #4479fb 150
#F4EE2A #9D432C 150
#F4EE2A #FF6A13 90
#9D432C #00AE42 240
#9D432C #4479fb 240
#9D432C #D1D3D5 300
#9D432C #F4EE2A 270
#9D432C #FF6A13 180
#9D432C #8E9089 210
#5E43B7 #00AE42 180
#5E43B7 #4479fb 180
#5E43B7 #D1D3D5 270
#5E43B7 #F4EE2A 270
#5E43B7 #9D432C 150
#5E43B7 #FF6A13 270
#5E43B7 #8E9089 210
#0A2989 #C12E1F 330
#0A2989 #00AE42 210
#0A2989 #4479fb 210
#0A2989 #545454 150
#0A2989 #D1D3D5 450
#0A2989 #5B6579 240
@@ -55,7 +55,7 @@ src dst flush
#FF6A13 #9D432C 120
#FF6A13 #8E9089 180
#8E9089 #C12E1F 150
#8E9089 #00AE42 120
#8E9089 #4479fb 120
#8E9089 #D1D3D5 150
#8E9089 #F4EE2A 270
#8E9089 #FF6A13 150

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><path d="M.5,13.5V3.5a1,1,0,0,1,1-1h10a1,1,0,0,1,1,1v10a1,1,0,0,1-1,1H1.5A1,1,0,0,1,.5,13.5Zm13-1a1,1,0,0,0,1-1V1.5a1,1,0,0,0-1-1H3.5a1,1,0,0,0-1,1m0,7h3m2,0h3m-4,4v-8" style="fill:none;stroke:#949494;stroke-linecap:square;stroke-linejoin:round;opacity:1"/></svg>

After

Width:  |  Height:  |  Size: 346 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M18 8.47925C18.391 8.47942 18.7079 8.79624 18.708 9.18726V10.9539H22.1826C22.6427 10.9539 23.0164 11.3268 23.0166 11.7869V16.3152C23.0166 16.7754 22.6429 17.1492 22.1826 17.1492H18.708V19.3162H24.459C24.9192 19.3162 25.293 19.6899 25.293 20.1501V24.9207C25.293 25.3809 24.9192 25.7537 24.459 25.7537H18.708V26.8123C18.708 27.2033 18.3911 27.5211 18 27.5212C17.6088 27.5212 17.291 27.2035 17.291 26.8123V25.7537H11.541C11.0808 25.7537 10.707 25.3809 10.707 24.9207V20.1501C10.707 19.6899 11.0808 19.3162 11.541 19.3162H17.291V17.1492H14.041C13.5809 17.1491 13.208 16.7754 13.208 16.3152V11.7869C13.2082 11.3268 13.581 10.954 14.041 10.9539H17.291V9.18726C17.2911 8.79613 17.6089 8.47925 18 8.47925ZM12.124 24.3376H23.876V20.7332H12.124V24.3376ZM14.625 15.7322H21.5996V12.3708H14.625V15.7322Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 974 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M18 8.47949C18.391 8.47967 18.7079 8.79648 18.708 9.1875V10.9541H22.1826C22.6427 10.9541 23.0164 11.327 23.0166 11.7871V16.3154C23.0166 16.7757 22.6429 17.1494 22.1826 17.1494H18.708V19.3164H24.459C24.9192 19.3164 25.293 19.6902 25.293 20.1504V24.9209C25.293 25.3811 24.9192 25.7539 24.459 25.7539H18.708V26.8125C18.708 27.2036 18.3911 27.5213 18 27.5215C17.6088 27.5215 17.291 27.2037 17.291 26.8125V25.7539H11.541C11.0808 25.7539 10.707 25.3811 10.707 24.9209V20.1504C10.707 19.6902 11.0808 19.3164 11.541 19.3164H17.291V17.1494H14.041C13.5809 17.1493 13.208 16.7756 13.208 16.3154V11.7871C13.2082 11.3271 13.581 10.9542 14.041 10.9541H17.291V9.1875C17.2911 8.79637 17.6089 8.47949 18 8.47949ZM12.124 24.3379H23.876V20.7334H12.124V24.3379ZM14.625 15.7324H21.5996V12.3711H14.625V15.7324Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 972 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M25.3389 9.89136C24.9478 9.89153 24.6309 10.2092 24.6309 10.6003V25.4001C24.6309 25.7912 24.9478 26.109 25.3389 26.1091C25.7301 26.1091 26.0479 25.7913 26.0479 25.4001V10.6003C26.0479 10.2091 25.7301 9.89136 25.3389 9.89136ZM10.7861 18.9626C10.326 18.9627 9.95326 19.3356 9.95312 19.7957V24.5671C9.95322 25.0273 10.326 25.4001 10.7861 25.4001H21.9795C22.4397 25.4001 22.8124 25.0273 22.8125 24.5671V19.7957C22.8124 19.3355 22.4396 18.9626 21.9795 18.9626H10.7861ZM21.3965 23.9832H11.3691V20.3796H21.3965V23.9832ZM16.5322 10.6003C16.072 10.6003 15.6982 10.9731 15.6982 11.4333V15.9617C15.6982 16.4219 16.072 16.7947 16.5322 16.7947H21.9795C22.4397 16.7947 22.8125 16.4219 22.8125 15.9617V11.4333C22.8125 10.9731 22.4397 10.6003 21.9795 10.6003H16.5322ZM21.3965 15.3787H17.1152V12.0164H21.3965V15.3787Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 984 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M25.3389 9.89111C24.9478 9.89129 24.6309 10.209 24.6309 10.6001V25.3999C24.6309 25.791 24.9478 26.1087 25.3389 26.1089C25.7301 26.1089 26.0479 25.7911 26.0479 25.3999V10.6001C26.0479 10.2089 25.7301 9.89111 25.3389 9.89111ZM10.7861 18.9624C10.326 18.9624 9.95326 19.3353 9.95312 19.7954V24.5669C9.95322 25.027 10.326 25.3999 10.7861 25.3999H21.9795C22.4397 25.3999 22.8124 25.0271 22.8125 24.5669V19.7954C22.8124 19.3353 22.4396 18.9624 21.9795 18.9624H10.7861ZM21.3965 23.9829H11.3691V20.3794H21.3965V23.9829ZM16.5322 10.6001C16.072 10.6001 15.6982 10.9729 15.6982 11.4331V15.9614C15.6982 16.4217 16.072 16.7944 16.5322 16.7944H21.9795C22.4397 16.7944 22.8125 16.4217 22.8125 15.9614V11.4331C22.8125 10.9729 22.4397 10.6001 21.9795 10.6001H16.5322ZM21.3965 15.3784H17.1152V12.0161H21.3965V15.3784Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 982 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M10.6611 9.89136C11.0522 9.89153 11.3691 10.2092 11.3691 10.6003V25.4001C11.3691 25.7912 11.0522 26.109 10.6611 26.1091C10.2699 26.1091 9.95215 25.7913 9.95215 25.4001V10.6003C9.95215 10.2091 10.2699 9.89136 10.6611 9.89136ZM25.2139 18.9626C25.674 18.9627 26.0467 19.3356 26.0469 19.7957V24.5671C26.0468 25.0273 25.674 25.4001 25.2139 25.4001H14.0205C13.5603 25.4001 13.1876 25.0273 13.1875 24.5671V19.7957C13.1876 19.3355 13.5604 18.9626 14.0205 18.9626H25.2139ZM14.6035 23.9832H24.6309V20.3796H14.6035V23.9832ZM19.4678 10.6003C19.928 10.6003 20.3018 10.9731 20.3018 11.4333V15.9617C20.3018 16.4219 19.928 16.7947 19.4678 16.7947H14.0205C13.5603 16.7947 13.1875 16.4219 13.1875 15.9617V11.4333C13.1875 10.9731 13.5603 10.6003 14.0205 10.6003H19.4678ZM14.6035 15.3787H18.8848V12.0164H14.6035V15.3787Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 984 B

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0H32C34.2091 0 36 1.79086 36 4V32C36 34.2091 34.2091 36 32 36H8C3.58172 36 0 32.4183 0 28V8Z" fill="#3E3E46"/>
<path d="M10.6611 9.89111C11.0522 9.89129 11.3691 10.209 11.3691 10.6001V25.3999C11.3691 25.791 11.0522 26.1087 10.6611 26.1089C10.2699 26.1089 9.95215 25.7911 9.95215 25.3999V10.6001C9.95215 10.2089 10.2699 9.89111 10.6611 9.89111ZM25.2139 18.9624C25.674 18.9624 26.0467 19.3353 26.0469 19.7954V24.5669C26.0468 25.027 25.674 25.3999 25.2139 25.3999H14.0205C13.5603 25.3999 13.1876 25.0271 13.1875 24.5669V19.7954C13.1876 19.3353 13.5604 18.9624 14.0205 18.9624H25.2139ZM14.6035 23.9829H24.6309V20.3794H14.6035V23.9829ZM19.4678 10.6001C19.928 10.6001 20.3018 10.9729 20.3018 11.4331V15.9614C20.3018 16.4217 19.928 16.7944 19.4678 16.7944H14.0205C13.5603 16.7944 13.1875 16.4217 13.1875 15.9614V11.4331C13.1875 10.9729 13.5603 10.6001 14.0205 10.6001H19.4678ZM14.6035 15.3784H18.8848V12.0161H14.6035V15.3784Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M27.5205 18.0005C27.5203 18.3914 27.2035 18.7084 26.8125 18.7085L25.0459 18.7085L25.0459 22.1831C25.0458 22.6432 24.6729 23.0159 24.2129 23.0161L19.6846 23.0161C19.2244 23.0161 18.8507 22.6433 18.8506 22.1831L18.8506 18.7085L16.6836 18.7085L16.6836 24.4595C16.6835 24.9196 16.3098 25.2925 15.8496 25.2925L11.0791 25.2925C10.6189 25.2925 10.2462 24.9196 10.2461 24.4595L10.2461 18.7085L9.1875 18.7085C8.79651 18.7084 8.47971 18.3914 8.47949 18.0005C8.47949 17.6093 8.79637 17.2916 9.1875 17.2915L10.2461 17.2915L10.2461 11.5405C10.2463 11.0804 10.619 10.7075 11.0791 10.7075L15.8496 10.7075C16.3097 10.7075 16.6834 11.0804 16.6836 11.5405L16.6836 17.2915L18.8506 17.2915L18.8506 14.0415C18.8506 13.5813 19.2243 13.2075 19.6846 13.2075L24.2129 13.2075C24.673 13.2077 25.0459 13.5814 25.0459 14.0415L25.0459 17.2915L26.8125 17.2915C27.2036 17.2916 27.5205 17.6093 27.5205 18.0005ZM11.6621 12.1245L11.6621 23.8765L15.2666 23.8765L15.2666 12.1245L11.6621 12.1245ZM20.2676 14.6245L20.2676 21.6001L23.6289 21.6001L23.6289 14.6245L20.2676 14.6245Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M27.5205 18.0005C27.5203 18.3914 27.2035 18.7084 26.8125 18.7085L25.0459 18.7085L25.0459 22.1831C25.0458 22.6432 24.6729 23.0159 24.2129 23.0161L19.6846 23.0161C19.2244 23.0161 18.8507 22.6433 18.8506 22.1831L18.8506 18.7085L16.6836 18.7085L16.6836 24.4595C16.6835 24.9196 16.3098 25.2925 15.8496 25.2925L11.0791 25.2925C10.6189 25.2925 10.2462 24.9196 10.2461 24.4595L10.2461 18.7085L9.1875 18.7085C8.79651 18.7084 8.47971 18.3914 8.47949 18.0005C8.47949 17.6093 8.79637 17.2916 9.1875 17.2915L10.2461 17.2915L10.2461 11.5405C10.2463 11.0804 10.619 10.7075 11.0791 10.7075L15.8496 10.7075C16.3097 10.7075 16.6834 11.0804 16.6836 11.5405L16.6836 17.2915L18.8506 17.2915L18.8506 14.0415C18.8506 13.5813 19.2243 13.2075 19.6846 13.2075L24.2129 13.2075C24.673 13.2077 25.0459 13.5814 25.0459 14.0415L25.0459 17.2915L26.8125 17.2915C27.2036 17.2916 27.5205 17.6093 27.5205 18.0005ZM11.6621 12.1245L11.6621 23.8765L15.2666 23.8765L15.2666 12.1245L11.6621 12.1245ZM20.2676 14.6245L20.2676 21.6001L23.6289 21.6001L23.6289 14.6245L20.2676 14.6245Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M26.1094 10.6614C26.1094 11.0525 25.7924 11.3692 25.4014 11.3694L10.6006 11.3694C10.2094 11.3694 9.89258 11.0526 9.89258 10.6614C9.89258 10.2702 10.2094 9.95337 10.6006 9.95337L25.4014 9.95337C25.7924 9.95355 26.1094 10.2703 26.1094 10.6614ZM17.0381 25.2151C17.0378 25.6751 16.6652 26.0481 16.2051 26.0481L11.4336 26.0481C10.9737 26.0479 10.6008 25.675 10.6006 25.2151L10.6006 14.0217C10.6006 13.5616 10.9735 13.188 11.4336 13.1877L16.2051 13.1877C16.6653 13.1877 17.0381 13.5615 17.0381 14.0217L17.0381 25.2151ZM12.0176 14.6047L12.0176 24.6311L15.6221 24.6311L15.6221 14.6047L12.0176 14.6047ZM25.4014 19.469C25.4014 19.9292 25.0276 20.302 24.5674 20.302L20.0391 20.302C19.5789 20.3019 19.2061 19.9291 19.2061 19.469L19.2061 14.0217C19.2061 13.5616 19.5789 13.1879 20.0391 13.1877L24.5674 13.1877C25.0276 13.1877 25.4014 13.5615 25.4014 14.0217L25.4014 19.469ZM20.623 14.6047L20.623 18.886L23.9844 18.886L23.9844 14.6047L20.623 14.6047Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0H32C34.2091 0 36 1.79086 36 4V32C36 34.2091 34.2091 36 32 36H8C3.58172 36 0 32.4183 0 28V8Z" fill="#3E3E46"/>
<path d="M26.1094 10.6611C26.1094 11.0522 25.7924 11.369 25.4014 11.3691L10.6006 11.3691C10.2094 11.3691 9.89258 11.0523 9.89258 10.6611C9.89258 10.2699 10.2094 9.95312 10.6006 9.95312L25.4014 9.95312C25.7924 9.9533 26.1094 10.27 26.1094 10.6611ZM17.0381 25.2148C17.0378 25.6749 16.6652 26.0479 16.2051 26.0479L11.4336 26.0479C10.9737 26.0476 10.6008 25.6747 10.6006 25.2148L10.6006 14.0215C10.6006 13.5614 10.9735 13.1877 11.4336 13.1875L16.2051 13.1875C16.6653 13.1875 17.0381 13.5612 17.0381 14.0215L17.0381 25.2148ZM12.0176 14.6045L12.0176 24.6309L15.6221 24.6309L15.6221 14.6045L12.0176 14.6045ZM25.4014 19.4687C25.4014 19.929 25.0276 20.3018 24.5674 20.3018L20.0391 20.3018C19.5789 20.3016 19.2061 19.9289 19.2061 19.4687L19.2061 14.0215C19.2061 13.5613 19.5789 13.1876 20.0391 13.1875L24.5674 13.1875C25.0276 13.1875 25.4014 13.5612 25.4014 14.0215L25.4014 19.4687ZM20.623 14.6045L20.623 18.8857L23.9844 18.8857L23.9844 14.6045L20.623 14.6045Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M26.1094 25.3389C26.1094 24.9478 25.7924 24.631 25.4014 24.6309L10.6006 24.6309C10.2094 24.6309 9.89258 24.9477 9.89258 25.3389C9.89258 25.7301 10.2094 26.0469 10.6006 26.0469L25.4014 26.0469C25.7924 26.0467 26.1094 25.73 26.1094 25.3389ZM17.0381 10.7852C17.0378 10.3251 16.6652 9.95215 16.2051 9.95215L11.4336 9.95215C10.9737 9.95237 10.6008 10.3253 10.6006 10.7852L10.6006 21.9785C10.6006 22.4386 10.9735 22.8123 11.4336 22.8125L16.2051 22.8125C16.6653 22.8125 17.0381 22.4388 17.0381 21.9785L17.0381 10.7852ZM12.0176 21.3955L12.0176 11.3691L15.6221 11.3691L15.6221 21.3955L12.0176 21.3955ZM25.4014 16.5313C25.4014 16.071 25.0276 15.6982 24.5674 15.6982L20.0391 15.6982C19.5789 15.6984 19.2061 16.0711 19.2061 16.5313L19.2061 21.9785C19.2061 22.4387 19.5789 22.8124 20.0391 22.8125L24.5674 22.8125C25.0276 22.8125 25.4014 22.4388 25.4014 21.9785L25.4014 16.5313ZM20.623 21.3955L20.623 17.1143L23.9844 17.1143L23.9844 21.3955L20.623 21.3955Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,4 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M26.1094 25.3389C26.1094 24.9478 25.7924 24.631 25.4014 24.6309L10.6006 24.6309C10.2094 24.6309 9.89258 24.9477 9.89258 25.3389C9.89258 25.7301 10.2094 26.0469 10.6006 26.0469L25.4014 26.0469C25.7924 26.0467 26.1094 25.73 26.1094 25.3389ZM17.0381 10.7852C17.0378 10.3251 16.6652 9.95215 16.2051 9.95215L11.4336 9.95215C10.9737 9.95237 10.6008 10.3253 10.6006 10.7852L10.6006 21.9785C10.6006 22.4386 10.9735 22.8123 11.4336 22.8125L16.2051 22.8125C16.6653 22.8125 17.0381 22.4388 17.0381 21.9785L17.0381 10.7852ZM12.0176 21.3955L12.0176 11.3691L15.6221 11.3691L15.6221 21.3955L12.0176 21.3955ZM25.4014 16.5313C25.4014 16.071 25.0276 15.6982 24.5674 15.6982L20.0391 15.6982C19.5789 15.6984 19.2061 16.0711 19.2061 16.5313L19.2061 21.9785C19.2061 22.4387 19.5789 22.8124 20.0391 22.8125L24.5674 22.8125C25.0276 22.8125 25.4014 22.4388 25.4014 21.9785L25.4014 16.5313ZM20.623 21.3955L20.623 17.1143L23.9844 17.1143L23.9844 21.3955L20.623 21.3955Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1,6 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M18 18.2617C17.6088 18.2617 17.292 17.9449 17.292 17.5537L17.292 13.1465L16.834 13.6035C16.5574 13.8801 16.1087 13.8799 15.832 13.6035C15.5554 13.3269 15.5554 12.8782 15.832 12.6016L17.3809 11.0527C17.7226 10.7116 18.2767 10.7112 18.6182 11.0527L20.167 12.6016C20.4434 12.878 20.4432 13.3269 20.167 13.6035C19.8904 13.8801 19.4417 13.8801 19.165 13.6035L18.708 13.1465L18.708 17.5537C18.708 17.9448 18.391 18.2616 18 18.2617Z" fill="#808080"/>
<path d="M24.9834 17.1433C24.9873 17.1454 24.9912 17.1491 24.9951 17.1511C25.0233 17.1659 25.0501 17.1834 25.0762 17.2019C25.0878 17.2102 25.1003 17.2174 25.1113 17.2263C25.1349 17.2453 25.1556 17.2676 25.1768 17.2898C25.1879 17.3015 25.1997 17.3126 25.21 17.325C25.2294 17.3484 25.2461 17.3739 25.2627 17.4001C25.2708 17.4129 25.2799 17.425 25.2871 17.4382C25.2911 17.4456 25.297 17.4522 25.3008 17.4597C25.31 17.4782 25.3148 17.4985 25.3223 17.5173C25.3292 17.5348 25.3363 17.5521 25.3418 17.5701C25.3494 17.5949 25.3546 17.6201 25.3594 17.6453C25.3631 17.665 25.367 17.6848 25.3691 17.7048C25.3715 17.7286 25.3721 17.7524 25.3721 17.7761C25.3721 17.7998 25.3715 17.8237 25.3691 17.8474C25.3671 17.8677 25.3632 17.8879 25.3594 17.908C25.3548 17.932 25.3499 17.9564 25.3428 17.9802C25.3354 18.0045 25.3254 18.0281 25.3154 18.0515C25.3097 18.065 25.3064 18.0802 25.2998 18.0935C25.2974 18.0983 25.2926 18.1025 25.29 18.1072C25.2786 18.1288 25.2647 18.1493 25.251 18.1697C25.2384 18.1884 25.2269 18.2081 25.2129 18.2253C25.1997 18.2414 25.1836 18.2554 25.1689 18.2703C25.1503 18.2892 25.1317 18.3084 25.1113 18.325C25.0986 18.3353 25.0839 18.3438 25.0703 18.3533C25.0464 18.37 25.0227 18.3875 24.9971 18.4011C24.9925 18.4036 24.988 18.4075 24.9834 18.4099L18.6895 21.5574C18.2557 21.7742 17.7444 21.7741 17.3105 21.5574L11.0166 18.4099C11.0123 18.4078 11.0081 18.4044 11.0039 18.4021C10.9755 18.3872 10.9491 18.3691 10.9229 18.3503C10.911 18.3419 10.8989 18.334 10.8877 18.325C10.8672 18.3083 10.8488 18.2893 10.8301 18.2703C10.8153 18.2552 10.7994 18.2415 10.7861 18.2253C10.7705 18.2062 10.7579 18.1848 10.7441 18.1638C10.7328 18.1466 10.7207 18.1301 10.7109 18.1121C10.7076 18.1058 10.7024 18.0999 10.6992 18.0935C10.6909 18.0769 10.6866 18.0587 10.6797 18.0417C10.6715 18.0217 10.6625 18.0019 10.6562 17.9812C10.6489 17.957 10.6443 17.9324 10.6396 17.908C10.6358 17.8879 10.632 17.8678 10.6299 17.8474C10.6275 17.8236 10.6269 17.7998 10.627 17.7761C10.627 17.7525 10.6275 17.7286 10.6299 17.7048C10.632 17.6849 10.6359 17.6649 10.6396 17.6453C10.6443 17.6206 10.6488 17.5954 10.6562 17.571C10.6631 17.5488 10.6727 17.5271 10.6816 17.5056C10.6878 17.4907 10.6928 17.4744 10.7002 17.4597C10.7027 17.4548 10.7064 17.4499 10.709 17.4451C10.7199 17.4246 10.7331 17.4049 10.7461 17.3855C10.7599 17.3648 10.7735 17.3438 10.7891 17.325C10.7993 17.3127 10.8112 17.3014 10.8223 17.2898C10.8431 17.2679 10.8645 17.2461 10.8877 17.2273C10.9005 17.217 10.9151 17.2084 10.9287 17.199C10.9525 17.1824 10.9765 17.1656 11.002 17.1521C11.0068 17.1495 11.0117 17.1458 11.0166 17.1433L16.0635 14.6189C16.1939 14.6418 16.3263 14.6501 16.458 14.6394V16.0056L12.916 17.7761L17.9443 20.2898C17.9794 20.3071 18.0216 20.3073 18.0566 20.2898L23.083 17.7761L19.54 16.0046V14.6404C19.6724 14.6511 19.8055 14.6423 19.9365 14.6189L24.9834 17.1433Z" fill="#808080"/>
<path d="M18.708 24.7808C18.7078 25.1718 18.3911 25.4888 18 25.4888C17.6089 25.4888 17.2922 25.1718 17.292 24.7808V22.4438C17.7529 22.5877 18.247 22.5878 18.708 22.4438V24.7808Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,6 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M18 18.2617C17.6088 18.2617 17.292 17.9449 17.292 17.5537L17.292 13.1465L16.834 13.6035C16.5574 13.8801 16.1087 13.8799 15.832 13.6035C15.5554 13.3269 15.5554 12.8782 15.832 12.6016L17.3809 11.0527C17.7226 10.7116 18.2767 10.7112 18.6182 11.0527L20.167 12.6016C20.4434 12.878 20.4432 13.3269 20.167 13.6035C19.8904 13.8801 19.4417 13.8801 19.165 13.6035L18.708 13.1465L18.708 17.5537C18.708 17.9448 18.391 18.2616 18 18.2617Z" fill="#E9E9E9"/>
<path d="M24.9834 17.1431C24.9873 17.1451 24.9912 17.1488 24.9951 17.1509C25.0233 17.1656 25.0501 17.1831 25.0762 17.2017C25.0878 17.2099 25.1003 17.2172 25.1113 17.2261C25.1349 17.2451 25.1556 17.2674 25.1768 17.2896C25.1879 17.3012 25.1997 17.3123 25.21 17.3247C25.2294 17.3481 25.2461 17.3736 25.2627 17.3999C25.2708 17.4127 25.2799 17.4247 25.2871 17.438C25.2911 17.4454 25.297 17.4519 25.3008 17.4595C25.31 17.478 25.3148 17.4982 25.3223 17.5171C25.3292 17.5345 25.3363 17.5519 25.3418 17.5698C25.3494 17.5947 25.3546 17.6199 25.3594 17.645C25.3631 17.6648 25.367 17.6845 25.3691 17.7046C25.3715 17.7284 25.3721 17.7522 25.3721 17.7759C25.3721 17.7996 25.3715 17.8234 25.3691 17.8472C25.3671 17.8675 25.3632 17.8877 25.3594 17.9077C25.3548 17.9318 25.3499 17.9562 25.3428 17.98C25.3354 18.0043 25.3254 18.0279 25.3154 18.0513C25.3097 18.0648 25.3064 18.0799 25.2998 18.0933C25.2974 18.098 25.2926 18.1023 25.29 18.1069C25.2786 18.1286 25.2647 18.149 25.251 18.1694C25.2384 18.1882 25.2269 18.2079 25.2129 18.2251C25.1997 18.2411 25.1836 18.2551 25.1689 18.27C25.1503 18.289 25.1317 18.3081 25.1113 18.3247C25.0986 18.335 25.0839 18.3436 25.0703 18.353C25.0464 18.3698 25.0227 18.3873 24.9971 18.4009C24.9925 18.4033 24.988 18.4072 24.9834 18.4097L18.6895 21.5571C18.2557 21.7739 17.7444 21.7738 17.3105 21.5571L11.0166 18.4097C11.0123 18.4075 11.0081 18.4041 11.0039 18.4019C10.9755 18.387 10.9491 18.3688 10.9229 18.3501C10.911 18.3417 10.8989 18.3337 10.8877 18.3247C10.8672 18.3081 10.8488 18.2891 10.8301 18.27C10.8153 18.255 10.7994 18.2413 10.7861 18.2251C10.7705 18.206 10.7579 18.1846 10.7441 18.1636C10.7328 18.1463 10.7207 18.1299 10.7109 18.1118C10.7076 18.1056 10.7024 18.0997 10.6992 18.0933C10.6909 18.0766 10.6866 18.0584 10.6797 18.0415C10.6715 18.0214 10.6625 18.0017 10.6562 17.981C10.6489 17.9568 10.6443 17.9322 10.6396 17.9077C10.6358 17.8877 10.632 17.8675 10.6299 17.8472C10.6275 17.8234 10.6269 17.7996 10.627 17.7759C10.627 17.7522 10.6275 17.7283 10.6299 17.7046C10.632 17.6846 10.6359 17.6647 10.6396 17.645C10.6443 17.6204 10.6488 17.5952 10.6562 17.5708C10.6631 17.5485 10.6727 17.5269 10.6816 17.5054C10.6878 17.4904 10.6928 17.4742 10.7002 17.4595C10.7027 17.4545 10.7064 17.4497 10.709 17.4448C10.7199 17.4243 10.7331 17.4047 10.7461 17.3853C10.7599 17.3645 10.7735 17.3435 10.7891 17.3247C10.7993 17.3125 10.8112 17.3011 10.8223 17.2896C10.8431 17.2676 10.8645 17.2459 10.8877 17.2271C10.9005 17.2168 10.9151 17.2082 10.9287 17.1987C10.9525 17.1821 10.9765 17.1653 11.002 17.1519C11.0068 17.1492 11.0117 17.1455 11.0166 17.1431L16.0635 14.6187C16.1939 14.6416 16.3263 14.6499 16.458 14.6392V16.0054L12.916 17.7759L17.9443 20.2896C17.9794 20.3069 18.0216 20.3071 18.0566 20.2896L23.083 17.7759L19.54 16.0044V14.6401C19.6724 14.6508 19.8055 14.6421 19.9365 14.6187L24.9834 17.1431Z" fill="#E9E9E9"/>
<path d="M18.708 24.7808C18.7078 25.1718 18.3911 25.4888 18 25.4888C17.6089 25.4888 17.2922 25.1718 17.292 24.7808V22.4438C17.7529 22.5877 18.247 22.5878 18.708 22.4438V24.7808Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 3.6 KiB

View File

@@ -0,0 +1,6 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M24.6663 14.6666L18.3724 11.5196C18.1377 11.4023 17.8616 11.4023 17.627 11.5196L11.333 14.6666" stroke="#808080" stroke-width="1.41667" stroke-linecap="round"/>
<path d="M11.3337 14.6667L17.6276 17.8137C17.8623 17.931 18.1384 17.931 18.373 17.8137L24.667 14.6667" stroke="#808080" stroke-width="1.41667" stroke-linecap="round"/>
<path d="M18 26.2075C17.6088 26.2075 17.292 25.8907 17.292 25.4995L17.292 21.48L16.834 21.937C16.5574 22.2135 16.1086 22.2134 15.832 21.937C15.5557 21.6604 15.5556 21.2116 15.832 20.9351L17.3809 19.3862C17.7225 19.0448 18.2765 19.0449 18.6182 19.3862L20.167 20.9351C20.4436 21.2117 20.4436 21.6604 20.167 21.937C19.8904 22.2136 19.4416 22.2136 19.165 21.937L18.708 21.48L18.708 25.4995C18.708 25.8906 18.3911 26.2074 18 26.2075Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 941 B

View File

@@ -0,0 +1,6 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M0 8C0 3.58172 3.58172 0 8 0H32C34.2091 0 36 1.79086 36 4V32C36 34.2091 34.2091 36 32 36H8C3.58172 36 0 32.4183 0 28V8Z" fill="#3E3E46"/>
<path d="M24.6663 14.6668L18.3724 11.5198C18.1377 11.4025 17.8616 11.4025 17.627 11.5198L11.333 14.6668" stroke="#E9E9E9" stroke-width="1.41667" stroke-linecap="round"/>
<path d="M11.3337 14.6667L17.6276 17.8137C17.8623 17.931 18.1384 17.931 18.373 17.8137L24.667 14.6667" stroke="#E9E9E9" stroke-width="1.41667" stroke-linecap="round"/>
<path d="M18 26.2075C17.6088 26.2075 17.292 25.8907 17.292 25.4995L17.292 21.48L16.834 21.937C16.5574 22.2135 16.1086 22.2134 15.832 21.937C15.5557 21.6604 15.5556 21.2116 15.832 20.9351L17.3809 19.3862C17.7225 19.0448 18.2765 19.0449 18.6182 19.3862L20.167 20.9351C20.4436 21.2117 20.4436 21.6604 20.167 21.937C19.8904 22.2136 19.4416 22.2136 19.165 21.937L18.708 21.48L18.708 25.4995C18.708 25.8906 18.3911 26.2074 18 26.2075Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -0,0 +1,5 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#F4F4F4"/>
<path d="M24.9834 20.6997C24.9877 20.7019 24.9918 20.7053 24.9961 20.7075C25.0219 20.7211 25.0462 20.7377 25.0703 20.7544C25.0843 20.7641 25.0992 20.7731 25.1123 20.7837C25.1334 20.8008 25.1526 20.8206 25.1719 20.8403C25.1856 20.8544 25.1996 20.8683 25.2119 20.8833C25.2277 20.9025 25.241 20.9238 25.2549 20.9448C25.2662 20.962 25.2784 20.9786 25.2881 20.9966C25.2918 21.0033 25.2973 21.0092 25.3008 21.0161C25.3085 21.0317 25.3128 21.0491 25.3193 21.0649C25.328 21.0861 25.3362 21.1075 25.3428 21.1294C25.3498 21.1527 25.3548 21.1762 25.3594 21.1997C25.3634 21.2204 25.367 21.2412 25.3691 21.2622C25.3715 21.2857 25.3721 21.3091 25.3721 21.3325C25.3721 21.356 25.3715 21.3793 25.3691 21.4028C25.367 21.4242 25.3634 21.4452 25.3594 21.4663C25.3548 21.4902 25.3499 21.514 25.3428 21.5376C25.3363 21.5589 25.3278 21.5795 25.3193 21.6001C25.3127 21.6163 25.3087 21.634 25.3008 21.6499C25.2979 21.6557 25.2931 21.6608 25.29 21.6665C25.2787 21.6877 25.2644 21.7071 25.251 21.7271C25.2385 21.7456 25.2268 21.7647 25.2129 21.7817C25.1984 21.7995 25.1814 21.8152 25.165 21.8315C25.1487 21.8479 25.1329 21.8649 25.1152 21.8794C25.0962 21.895 25.0746 21.9077 25.0537 21.9214C25.0366 21.9326 25.0199 21.9449 25.002 21.9546C24.9956 21.958 24.9899 21.9639 24.9834 21.9673L18.6895 25.1138C18.2557 25.3305 17.7443 25.3304 17.3105 25.1138L11.0166 21.9673C11.0108 21.9644 11.0056 21.9596 11 21.9565C10.977 21.9443 10.9552 21.9294 10.9336 21.9146C10.9178 21.9037 10.9014 21.8933 10.8867 21.8813C10.8656 21.8642 10.8463 21.8445 10.8271 21.8247C10.8134 21.8105 10.7986 21.7969 10.7861 21.7817C10.7722 21.7647 10.7605 21.7456 10.748 21.7271C10.7346 21.7071 10.7203 21.6876 10.709 21.6665C10.706 21.6609 10.7021 21.6556 10.6992 21.6499C10.6912 21.6339 10.6863 21.6164 10.6797 21.6001C10.6713 21.5795 10.6627 21.5589 10.6562 21.5376C10.6491 21.514 10.6442 21.4901 10.6396 21.4663C10.6356 21.4453 10.632 21.4242 10.6299 21.4028C10.6276 21.3793 10.6269 21.356 10.627 21.3325C10.6269 21.3091 10.6275 21.2857 10.6299 21.2622C10.632 21.2411 10.6356 21.2204 10.6396 21.1997C10.6442 21.1762 10.6492 21.1527 10.6562 21.1294C10.6629 21.1075 10.671 21.0861 10.6797 21.0649C10.6862 21.049 10.6914 21.0318 10.6992 21.0161C10.7026 21.0094 10.7074 21.0032 10.7109 20.9966C10.7207 20.9786 10.7329 20.962 10.7441 20.9448C10.7579 20.9239 10.7705 20.9023 10.7861 20.8833C10.789 20.8798 10.792 20.876 10.7949 20.8726L10.873 20.7944C10.8765 20.7915 10.8803 20.7885 10.8838 20.7856C10.901 20.7716 10.9207 20.7601 10.9395 20.7476C10.9596 20.734 10.9796 20.7198 11.001 20.7085C11.0061 20.7057 11.0114 20.7023 11.0166 20.6997L15.4629 18.4761L16.5186 19.5317L12.918 21.3325L17.9443 23.8472C17.9794 23.8644 18.0217 23.8646 18.0566 23.8472L23.0811 21.3325L19.4795 19.5317L20.5361 18.4761L24.9834 20.6997Z" fill="#808080"/>
<path d="M18 10.6252C18.3912 10.6252 18.708 10.9421 18.708 11.3333V17.1223L19.166 16.6653C19.4426 16.389 19.8914 16.3889 20.168 16.6653C20.4444 16.9418 20.4443 17.3906 20.168 17.6672L18.6191 19.2161C18.2775 19.5576 17.7235 19.5576 17.3818 19.2161L15.833 17.6672C15.5564 17.3906 15.5564 16.9419 15.833 16.6653C16.1097 16.3889 16.5584 16.3888 16.835 16.6653L17.292 17.1223V11.3333C17.292 10.9421 17.6089 10.6254 18 10.6252Z" fill="#808080"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,5 @@
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="36" height="36" rx="4" fill="#3E3E46"/>
<path d="M24.9834 20.6997C24.9877 20.7019 24.9918 20.7053 24.9961 20.7075C25.0219 20.7211 25.0462 20.7377 25.0703 20.7544C25.0843 20.7641 25.0992 20.7731 25.1123 20.7837C25.1334 20.8008 25.1526 20.8206 25.1719 20.8403C25.1856 20.8544 25.1996 20.8683 25.2119 20.8833C25.2277 20.9025 25.241 20.9238 25.2549 20.9448C25.2662 20.962 25.2784 20.9786 25.2881 20.9966C25.2918 21.0033 25.2973 21.0092 25.3008 21.0161C25.3085 21.0317 25.3128 21.0491 25.3193 21.0649C25.328 21.0861 25.3362 21.1075 25.3428 21.1294C25.3498 21.1527 25.3548 21.1762 25.3594 21.1997C25.3634 21.2204 25.367 21.2412 25.3691 21.2622C25.3715 21.2857 25.3721 21.3091 25.3721 21.3325C25.3721 21.356 25.3715 21.3793 25.3691 21.4028C25.367 21.4242 25.3634 21.4452 25.3594 21.4663C25.3548 21.4902 25.3499 21.514 25.3428 21.5376C25.3363 21.5589 25.3278 21.5795 25.3193 21.6001C25.3127 21.6163 25.3087 21.634 25.3008 21.6499C25.2979 21.6557 25.2931 21.6608 25.29 21.6665C25.2787 21.6877 25.2644 21.7071 25.251 21.7271C25.2385 21.7456 25.2268 21.7647 25.2129 21.7817C25.1984 21.7995 25.1814 21.8152 25.165 21.8315C25.1487 21.8479 25.1329 21.8649 25.1152 21.8794C25.0962 21.895 25.0746 21.9077 25.0537 21.9214C25.0366 21.9326 25.0199 21.9449 25.002 21.9546C24.9956 21.958 24.9899 21.9639 24.9834 21.9673L18.6895 25.1138C18.2557 25.3305 17.7443 25.3304 17.3105 25.1138L11.0166 21.9673C11.0108 21.9644 11.0056 21.9596 11 21.9565C10.977 21.9443 10.9552 21.9294 10.9336 21.9146C10.9178 21.9037 10.9014 21.8933 10.8867 21.8813C10.8656 21.8642 10.8463 21.8445 10.8271 21.8247C10.8134 21.8105 10.7986 21.7969 10.7861 21.7817C10.7722 21.7647 10.7605 21.7456 10.748 21.7271C10.7346 21.7071 10.7203 21.6876 10.709 21.6665C10.706 21.6609 10.7021 21.6556 10.6992 21.6499C10.6912 21.6339 10.6863 21.6164 10.6797 21.6001C10.6713 21.5795 10.6627 21.5589 10.6562 21.5376C10.6491 21.514 10.6442 21.4901 10.6396 21.4663C10.6356 21.4453 10.632 21.4242 10.6299 21.4028C10.6276 21.3793 10.6269 21.356 10.627 21.3325C10.6269 21.3091 10.6275 21.2857 10.6299 21.2622C10.632 21.2411 10.6356 21.2204 10.6396 21.1997C10.6442 21.1762 10.6492 21.1527 10.6562 21.1294C10.6629 21.1075 10.671 21.0861 10.6797 21.0649C10.6862 21.049 10.6914 21.0318 10.6992 21.0161C10.7026 21.0094 10.7074 21.0032 10.7109 20.9966C10.7207 20.9786 10.7329 20.962 10.7441 20.9448C10.7579 20.9239 10.7705 20.9023 10.7861 20.8833C10.789 20.8798 10.792 20.876 10.7949 20.8726L10.873 20.7944C10.8765 20.7915 10.8803 20.7885 10.8838 20.7856C10.901 20.7716 10.9207 20.7601 10.9395 20.7476C10.9596 20.734 10.9796 20.7198 11.001 20.7085C11.0061 20.7057 11.0114 20.7023 11.0166 20.6997L15.4629 18.4761L16.5186 19.5317L12.918 21.3325L17.9443 23.8472C17.9794 23.8644 18.0217 23.8646 18.0566 23.8472L23.0811 21.3325L19.4795 19.5317L20.5361 18.4761L24.9834 20.6997Z" fill="#E9E9E9"/>
<path d="M18 10.6255C18.3912 10.6255 18.708 10.9423 18.708 11.3335V17.1226L19.166 16.6655C19.4426 16.3892 19.8914 16.3892 20.168 16.6655C20.4444 16.9421 20.4443 17.3909 20.168 17.6675L18.6191 19.2163C18.2775 19.5578 17.7235 19.5578 17.3818 19.2163L15.833 17.6675C15.5564 17.3909 15.5564 16.9421 15.833 16.6655C16.1097 16.3892 16.5584 16.389 16.835 16.6655L17.292 17.1226V11.3335C17.292 10.9424 17.6089 10.6256 18 10.6255Z" fill="#E9E9E9"/>
</svg>

After

Width:  |  Height:  |  Size: 3.3 KiB

Some files were not shown because too many files have changed in this diff Show More