Compare commits

..

1 Commits

Author SHA1 Message Date
Ian Chua
3e42067171 fix: wayland startup gl/imgui prewarm timing 2026-05-15 17:34:13 +08:00
199 changed files with 1687 additions and 5357 deletions

8
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

2
.idea/OrcaSlicer.iml generated Normal file
View File

@@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<module classpath="CMake" type="CPP_MODULE" version="4" />

7
.idea/codeStyles/Project.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<component name="ProjectCodeStyleConfiguration">
<code_scheme name="Project" version="173">
<clangFormatSettings>
<option name="ENABLED" value="true" />
</clangFormatSettings>
</code_scheme>
</component>

5
.idea/codeStyles/codeStyleConfig.xml generated Normal file
View File

@@ -0,0 +1,5 @@
<component name="ProjectCodeStyleConfiguration">
<state>
<option name="USE_PER_PROJECT_SETTINGS" value="true" />
</state>
</component>

4
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" />
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/OrcaSlicer.iml" filepath="$PROJECT_DIR$/.idea/OrcaSlicer.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

View File

@@ -46,12 +46,3 @@ ctest --test-dir ./tests/fff_print
- **Cross-platform** — all changes must work on Windows, macOS, and Linux
- Profile/format changes need version migration handling
- Dependencies built separately in `deps/build/`, then linked to main app
## Code review focus areas
- Changes must not cause regressions in existing functionality, defaults, profiles, or project compatibility.
- Features gated by options must not affect existing behavior when those options are disabled.
- Changes should follow the existing code style and architecture. Architectural changes should be justified in code comments and the PR description.
- Add helper functions or utilities only when existing code cannot reasonably be reused. Avoid duplication.
- Keep code concise and clear. Manually simplify AI generated bloated codes before review.
- Include targeted tests or documented verification for behavior changes, especially in slicing logic, profiles, formats, and GUI defaults.

View File

@@ -218,7 +218,7 @@ Open-source slicing has always been built on a tradition of collaboration and at
OrcaSlicer began in that same spirit, drawing from BambuStudio, PrusaSlicer, and ideas inspired by CuraSlicer and SuperSlicer. But it has since grown far beyond its origins. Through relentless innovation — introducing advanced calibration tools, precise wall and seam control, tree supports, adaptive slicing, and hundreds of other features — OrcaSlicer has become the most widely used and actively developed open-source slicer in the 3D printing community. Many of its innovations have been adopted by other slicers, making it a driving force for the entire industry.
The OrcaSlicer logo was designed by community member [Justin Levine](https://github.com/jal-co).
The OrcaSlicer logo was designed by community member Justin Levine (@freejstnalxndr).
# License
- **OrcaSlicer** is licensed under the GNU Affero General Public License, version 3.

File diff suppressed because it is too large Load Diff

View File

@@ -1 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?><svg id="a" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16"><polygon points=".5 .5 5.5 7.5 5.5 13.5 9.5 15.5 9.5 7.5 14.5 .5 .5 .5" style="fill:none; stroke:#949494; stroke-linecap:round; stroke-linejoin:round;"/><line x1="8.64" y1="4.5" x2="10.19" y2="2.34" style="fill:none; stroke:#949494; stroke-linecap:round; stroke-linejoin:round;"/></svg>

Before

Width:  |  Height:  |  Size: 414 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 353 B

File diff suppressed because one or more lines are too long

View File

@@ -61,7 +61,7 @@
"nil"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

File diff suppressed because one or more lines are too long

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -97,7 +97,7 @@
"nil"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_ramming_volumetric_speed": [
"-1"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -67,7 +67,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -14,7 +14,7 @@
"15"
],
"filament_max_volumetric_speed": [
"8"
"0"
],
"filament_type": [
"PETG"

View File

@@ -6,7 +6,7 @@
"instantiation": "false",
"fan_cooling_layer_time": "100",
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_type": [
"PLA"

View File

@@ -14,7 +14,7 @@
"30"
],
"filament_max_volumetric_speed": [
"3.6"
"0"
],
"filament_type": [
"TPU"

View File

@@ -40,7 +40,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 89 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -38,7 +38,7 @@
"15"
],
"filament_max_volumetric_speed": [
"8"
"0"
],
"filament_type": [
"PETG"

View File

@@ -8,7 +8,7 @@
"100"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_type": [
"PLA"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@@ -70,7 +70,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -61,7 +61,7 @@
"nil"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -58,7 +58,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -61,7 +61,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 8.2 KiB

View File

@@ -67,7 +67,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"0"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -61,7 +61,7 @@
"nil"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"1.75"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -61,7 +61,7 @@
"nil"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -64,7 +64,7 @@
"2.85"
],
"filament_max_volumetric_speed": [
"12"
"0"
],
"filament_minimal_purge_on_wipe_tower": [
"15"

View File

@@ -1,50 +0,0 @@
#version 110
uniform sampler2D uniform_texture;
uniform vec2 inv_tex_size;
varying vec2 tex_coord;
void main()
{
vec3 rgbNW = texture2D(uniform_texture, tex_coord + vec2(-1.0, -1.0) * inv_tex_size).rgb;
vec3 rgbNE = texture2D(uniform_texture, tex_coord + vec2(1.0, -1.0) * inv_tex_size).rgb;
vec3 rgbSW = texture2D(uniform_texture, tex_coord + vec2(-1.0, 1.0) * inv_tex_size).rgb;
vec3 rgbSE = texture2D(uniform_texture, tex_coord + vec2(1.0, 1.0) * inv_tex_size).rgb;
vec3 rgbM = texture2D(uniform_texture, tex_coord).rgb;
vec3 luma_coeff = vec3(0.299, 0.587, 0.114);
float lumaNW = dot(rgbNW, luma_coeff);
float lumaNE = dot(rgbNE, luma_coeff);
float lumaSW = dot(rgbSW, luma_coeff);
float lumaSE = dot(rgbSE, luma_coeff);
float lumaM = dot(rgbM, luma_coeff);
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
vec2 dir;
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
const float FXAA_REDUCE_MIN = 1.0 / 128.0;
const float FXAA_REDUCE_MUL = 1.0 / 8.0;
const float FXAA_SPAN_MAX = 8.0;
float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(vec2(FXAA_SPAN_MAX), max(vec2(-FXAA_SPAN_MAX), dir * rcpDirMin)) * inv_tex_size;
vec3 rgbA = 0.5 * (
texture2D(uniform_texture, tex_coord + dir * (1.0 / 3.0 - 0.5)).rgb +
texture2D(uniform_texture, tex_coord + dir * (2.0 / 3.0 - 0.5)).rgb
);
vec3 rgbB = rgbA * 0.5 + 0.25 * (
texture2D(uniform_texture, tex_coord + dir * -0.5).rgb +
texture2D(uniform_texture, tex_coord + dir * 0.5).rgb
);
float lumaB = dot(rgbB, luma_coeff);
gl_FragColor = (lumaB < lumaMin || lumaB > lumaMax) ? vec4(rgbA, 1.0) : vec4(rgbB, 1.0);
}

View File

@@ -1,15 +0,0 @@
#version 110
uniform mat4 view_model_matrix;
uniform mat4 projection_matrix;
attribute vec3 v_position;
attribute vec2 v_tex_coord;
varying vec2 tex_coord;
void main()
{
tex_coord = v_tex_coord;
gl_Position = projection_matrix * view_model_matrix * vec4(v_position, 1.0);
}

View File

@@ -1,52 +0,0 @@
#version 140
uniform sampler2D uniform_texture;
uniform vec2 inv_tex_size;
in vec2 tex_coord;
out vec4 out_color;
void main()
{
vec3 rgbNW = texture(uniform_texture, tex_coord + vec2(-1.0, -1.0) * inv_tex_size).rgb;
vec3 rgbNE = texture(uniform_texture, tex_coord + vec2(1.0, -1.0) * inv_tex_size).rgb;
vec3 rgbSW = texture(uniform_texture, tex_coord + vec2(-1.0, 1.0) * inv_tex_size).rgb;
vec3 rgbSE = texture(uniform_texture, tex_coord + vec2(1.0, 1.0) * inv_tex_size).rgb;
vec3 rgbM = texture(uniform_texture, tex_coord).rgb;
vec3 luma_coeff = vec3(0.299, 0.587, 0.114);
float lumaNW = dot(rgbNW, luma_coeff);
float lumaNE = dot(rgbNE, luma_coeff);
float lumaSW = dot(rgbSW, luma_coeff);
float lumaSE = dot(rgbSE, luma_coeff);
float lumaM = dot(rgbM, luma_coeff);
float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE)));
float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE)));
vec2 dir;
dir.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE));
dir.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE));
const float FXAA_REDUCE_MIN = 1.0 / 128.0;
const float FXAA_REDUCE_MUL = 1.0 / 8.0;
const float FXAA_SPAN_MAX = 8.0;
float dirReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * (0.25 * FXAA_REDUCE_MUL), FXAA_REDUCE_MIN);
float rcpDirMin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirReduce);
dir = min(vec2(FXAA_SPAN_MAX), max(vec2(-FXAA_SPAN_MAX), dir * rcpDirMin)) * inv_tex_size;
vec3 rgbA = 0.5 * (
texture(uniform_texture, tex_coord + dir * (1.0 / 3.0 - 0.5)).rgb +
texture(uniform_texture, tex_coord + dir * (2.0 / 3.0 - 0.5)).rgb
);
vec3 rgbB = rgbA * 0.5 + 0.25 * (
texture(uniform_texture, tex_coord + dir * -0.5).rgb +
texture(uniform_texture, tex_coord + dir * 0.5).rgb
);
float lumaB = dot(rgbB, luma_coeff);
out_color = (lumaB < lumaMin || lumaB > lumaMax) ? vec4(rgbA, 1.0) : vec4(rgbB, 1.0);
}

View File

@@ -1,15 +0,0 @@
#version 140
uniform mat4 view_model_matrix;
uniform mat4 projection_matrix;
in vec3 v_position;
in vec2 v_tex_coord;
out vec2 tex_coord;
void main()
{
tex_coord = v_tex_coord;
gl_Position = projection_matrix * view_model_matrix * vec4(v_position, 1.0);
}

View File

@@ -17,11 +17,11 @@ var LangText = {
t15: "Printer",
t16: "Filament type",
t17: "Vendor",
t18: "Error",
t18: "error",
t19: "At least one filament must be selected.",
t20: "Do you want to use default filament ?",
t21: "Yes",
t22: "No",
t21: "yes",
t22: "no",
t23: "Release note",
t24: "Get Started",
t25: "Finish",
@@ -35,7 +35,7 @@ var LangText = {
t33: "Open Project",
t34: "hotspot",
t35: "Recently opened",
t36: "OK",
t36: "ok",
t37: "At least one printer must be selected.",
t38: "Cancel",
t39: "Confirm",
@@ -107,7 +107,7 @@ var LangText = {
t113: "You may change your choice in preference anytime.",
t126: "Loading……",
orca1: "Edit Project Info",
orca2: "No model information",
orca2: "no model information",
orca3: "Stealth Mode",
orca4: "This stops the transmission of data to Bambu's cloud services. Users who don't use BBL machines or use LAN mode only can safely turn on this function.",
orca5: "Enable Stealth Mode.",
@@ -131,7 +131,7 @@ var LangText = {
t15: "Impressora",
t16: "Tipus de filament",
t17: "Proveïdor",
t18: "Error",
t18: "error",
t19: "S'ha de seleccionar almenys un filament.",
t20: "Vols utilitzar el filament per defecte?",
t21: "sí",
@@ -149,7 +149,7 @@ var LangText = {
t33: "Obrir Projecte",
t34: "hotspot",
t35: "Obert recentment",
t36: "D'acord",
t36: "d'acord",
t37: "S'ha de seleccionar almenys una impressora.",
t38: "Cancel·lar",
t39: "Confirmar",
@@ -220,7 +220,7 @@ var LangText = {
t112: "Unir-se al Programa",
t113: "Pots canviar la teva elecció en les preferències en qualsevol moment.",
orca1: "Editar Informació del Projecte",
orca2: "No hi ha informació del model",
orca2: "no hi ha informació del model",
orca6: "Bambu Cloud",
},
es_ES: {
@@ -241,11 +241,11 @@ var LangText = {
t15: "Impresora",
t16: "Tipo de filamento",
t17: "Fabricante",
t18: "Error",
t18: "error",
t19: "Al menos se debe seleccionar un filamento.",
t20: "¿Desea usar el filamento por defecto?",
t21: "Sí",
t22: "No",
t21: "sí",
t22: "no",
t23: "Notas de la versión",
t24: "Comenzar",
t25: "Finalizar",
@@ -259,7 +259,7 @@ var LangText = {
t33: "Abrir proyecto",
t34: "punto de acceso",
t35: "Abiertos recientemente",
t36: "OK",
t36: "ok",
t37: "Al menos se debe seleccionar una impresora.",
t38: "Cancelar",
t39: "Confirmar",
@@ -355,11 +355,11 @@ var LangText = {
t15: "Stampante",
t16: "Tipo di filamento",
t17: "Produttore",
t18: "Errore",
t18: "errore",
t19: "È necessario selezionare almeno un filamento.",
t20: "Vuoi utilizzare il filamento predefinito?",
t21: "Sì",
t22: "No",
t21: "sì",
t22: "no",
t23: "Note di rilascio",
t24: "Inizia",
t25: "Fine",
@@ -373,7 +373,7 @@ var LangText = {
t33: "Apri progetto",
t34: "hotspot",
t35: "Aperti di recente",
t36: "OK",
t36: "ok",
t37: "È necessario selezionare almeno una stampante.",
t38: "Annulla",
t39: "Conferma",
@@ -444,7 +444,7 @@ var LangText = {
t112: "Unisciti al programma",
t113: "Puoi modificare la tua scelta in 'Preferenze' in qualsiasi momento.",
orca1: "Modifica informazioni progetto",
orca2: "Nessuna informazione sul modello",
orca2: "nessuna informazione sul modello",
orca3: "Modalità invisibile",
orca4: "Con questa modalità, la trasmissione dei dati ai servizi cloud di Bambu sarà interrotta. Gli utenti che non utilizzano macchine BBL o che usano solo la modalità LAN possono attivare questa funzione in modo sicuro.",
orca5: "Abilita la modalità invisibile.",
@@ -551,7 +551,7 @@ var LangText = {
t106: "Profilbeschreibung",
t126: "Laden……",
orca1: "Edit Project Info",
orca2: "No model information",
orca2: "no model information",
orca6: "Bambu Cloud",
},
cs_CZ: {
@@ -655,7 +655,7 @@ var LangText = {
t106: "Popis profilu",
t126: "Načtení probíhá……",
orca1: "Edit Project Info",
orca2: "No model information",
orca2: "no model information",
orca6: "Bambu Cloud",
},
fr_FR: {
@@ -676,11 +676,11 @@ var LangText = {
t15: "Imprimante",
t16: "Type de filament",
t17: "Fournisseur",
t18: "Erreur",
t18: "erreur",
t19: "Au moins un filament doit être sélectionné.",
t20: "Voulez-vous utiliser le filament par défaut ?",
t21: "Oui",
t22: "Non",
t21: "oui",
t22: "non",
t23: "Note de version",
t24: "Commencer",
t25: "Terminer",
@@ -694,7 +694,7 @@ var LangText = {
t33: "Ouvrir un Projet",
t34: "hotspot",
t35: "Récemment ouvert",
t36: "OK",
t36: "ok",
t37: "Au moins une imprimante doit être sélectionnée.",
t38: "Annuler",
t39: "Confirmer",
@@ -762,7 +762,7 @@ var LangText = {
t111: "Créer un nouveau filament",
t126: "Chargement en cours……",
orca1: "Modifier les informations du projet",
orca2: "Pas d'information sur le modèle",
orca2: "pas d'information sur le modèle",
wk1: "Démarrage rapide",
wk2: "Cet article présente l'utilisation la plus basique de Orca Slicer. Il guide les utilisateurs pour configurer le logiciel, créer des projets et effectuer la première tâche d'impression étape par étape.",
wk3: "Workflow basé sur des projets",
@@ -1032,11 +1032,11 @@ var LangText = {
t15: "Принтер",
t16: "Тип материала",
t17: "Производитель",
t18: "Oшибка",
t18: "ошибка",
t19: "Должна быть выбрана хотя бы одна пластиковая нить.",
t20: "Выбрать пластиковые нити по умолчанию?",
t21: "Да",
t22: "Нет",
t21: "да",
t22: "нет",
t23: "Информация о версии",
t24: "Начать",
t25: "Закончить",
@@ -1218,7 +1218,7 @@ var LangText = {
t94: "장치를 보려면 프린터 연결을 설정하세요.",
t126: "로딩 중……",
orca1: "Edit Project Info",
orca2: "No model information",
orca2: "no model information",
orca6: "Bambu Cloud",
},
tr_TR: {
@@ -1257,7 +1257,7 @@ var LangText = {
t33: "Projeyi Aç",
t34: "Erişim noktası",
t35: "Yakın zamanda açıldı",
t36: "OK",
t36: "Ok",
t37: "En az bir yazıcı seçilmelidir.",
t38: "İptal Et",
t39: "Onayla",
@@ -1329,7 +1329,7 @@ var LangText = {
t113: "Tercihinizi istediğiniz zaman değiştirebilirsiniz.",
t126: "Yükleme devam ediyor……",
orca1: "Proje Bilgilerini Düzenle",
orca2: "Model bilgisi yok",
orca2: "model bilgisi yok",
orca3: "Gizli Mod",
orca4: "Bu, Bambu'nun bulut hizmetlerine veri iletimini durdurur. BBL makinelerini kullanmayan veya yalnızca LAN modunu kullanan kullanıcılar bu işlevi güvenle açabilir.",
orca5: "Gizli Modu etkinleştirin.",
@@ -1353,11 +1353,11 @@ var LangText = {
t15: "Drukarka",
t16: "Typ filamentu",
t17: "Dostawca",
t18: "Błąd",
t18: "błąd",
t19: "Przynajmniej jeden filament musi być wybrany.",
t20: "Czy chcesz użyć domyślnego filamentu?",
t21: "Tak",
t22: "Nie",
t21: "tak",
t22: "nie",
t23: "Informacje o wydaniu",
t24: "Rozpocznij",
t25: "Zakończ",
@@ -1371,7 +1371,7 @@ var LangText = {
t33: "Otwórz Projekt",
t34: "hotspot",
t35: "Ostatnio otwarte",
t36: "OK",
t36: "ok",
t37: "Przynajmniej jedna drukarka musi być wybrana.",
t38: "Anuluj",
t39: "Potwierdź",
@@ -1443,7 +1443,7 @@ var LangText = {
t113: "Możesz zmienić swój wybór w preferencjach w dowolnym momencie.",
t126: "Ładowanie trwa……",
orca1: "Edytuj informacje o projekcie",
orca2: "Brak informacji o modelu",
orca2: "brak informacji o modelu",
orca3: "Tryb «Niewidzialny»",
orca4: "To wyłączy przesyłanie danych do usług chmurowych Bambu. Użytkownicy, którzy nie korzystają z maszyn BBL lub używają tylko trybu LAN, mogą bez obaw włączyć tę opcję.",
orca5: "Włącz tryb «Niewidzialny»",
@@ -1485,7 +1485,7 @@ var LangText = {
t33: "Abrir Projeto",
t34: "hotspot",
t35: "Aberto Recentemente",
t36: "OK",
t36: "Ok",
t37: "Pelo menos uma impressora deve ser selecionada.",
t38: "Cancelar",
t39: "Confirmar",
@@ -1581,11 +1581,11 @@ var LangText = {
t15: "Spausdintuvas",
t16: "Gijos tipas",
t17: "Gamintojas",
t18: "Klaida",
t18: "klaida",
t19: "Turi būti pasirinkta bent viena gija.",
t20: "Ar norite naudoti numatytąją giją?",
t21: "Taip",
t22: "Ne",
t21: "taip",
t22: "ne",
t23: "Išleidimo pastabos",
t24: "Pradėti",
t25: "Pabaigti",
@@ -1599,7 +1599,7 @@ var LangText = {
t33: "Atverti projektą",
t34: "Prieigos taškas",
t35: "Neseniai atidaryti",
t36: "Gerai",
t36: "gerai",
t37: "Turi būti pasirinktas bent vienas spausdintuvas.",
t38: "Atšaukti",
t39: "Patvirtinti",
@@ -1670,7 +1670,7 @@ var LangText = {
t112: "Prisijungti prie programos",
t113: "Savo pasirinkimą galite bet kada pakeisti.",
orca1: "Redaguoti projekto informaciją",
orca2: "Nėra informacijos apie modelį",
orca2: "nėra informacijos apie modelį",
orca3: "Slaptas režimas",
orca4: "Tai sustabdo duomenų perdavimą į Bambu debesijos paslaugas. Vartotojai, kurie nenaudoja BBL mašinų arba naudoja tik LAN režimą, gali drąsiai įjungti šią funkciją.",
orca5: "Įjungti slaptą režimą.",

View File

@@ -148,6 +148,29 @@
display: inline-block;
}
select {
padding: 6px 9px;
border: 1px solid #dbdbdb;
border-radius: 3px;
font-size: 12px;
cursor: pointer;
appearance: auto;
background-color: white;
color: black;
}
select option {
background-color: white;
color: black;
}
select:hover,
select:focus {
outline: none;
border-color: #26A69A;
background-color: #edfaf2;
}
.button-container {
display: flex;
justify-content: center;
@@ -220,6 +243,11 @@
position: sticky;
z-index: 11;
}
body.dark-mode select {
background-color: #2d2d31;
color: white;
border-color: #4c4c55;
}
body.dark-mode .warning-text {
color: #f44336;
@@ -253,16 +281,13 @@
>
Re-Calculate
</div>
<div class="ComboBox">
<div class="arrow-icon"></div>
<select
id="extruders"
onchange="handleExtruderSelect(document.getElementById('extruders').value)"
>
<option value="left" id="extruder_label_0">Left Nozzle</option>
<option value="right" id="extruder_label_1">Right Nozzle</option>
</select>
</div>
<select
id="extruders"
onchange="handleExtruderSelect(document.getElementById('extruders').value)"
>
<option value="left" id="extruder_label_0">Left Nozzle</option>
<option value="right" id="extruder_label_1">Right Nozzle</option>
</select>
</div>
<div class="scroll-container">

View File

@@ -26,7 +26,7 @@
<div id="EmptyArea">
<div><img src="img/null.png"></div>
<div class="Text_Title Text_Bold trans" tid='orca2'>No model information</div>
<div class="Text_Title Text_Bold trans" tid='orca2'>no model information</div>
<div id="AddModelInfoBtn" class="ButtonStyleConfirm ButtonTypeWindow trans" tid='orca1' onClick="OnClickEditProjectInfo()">Edit Project Info</div>
</div>

View File

@@ -380,5 +380,4 @@ body
#AddModelInfoBtn
{
margin-top: 20px;
margin-right:0;
}

View File

@@ -4456,7 +4456,7 @@ int CLI::run(int argc, char **argv)
size_t num_objects = model.objects.size();
for (size_t i = 0; i < num_objects; ++ i) {
ModelObjectPtrs new_objects;
model.objects.front()->split(&new_objects, false); // TODO: add cli option to enable this?
model.objects.front()->split(&new_objects);
model.delete_object(size_t(0));
}
}
@@ -6435,7 +6435,6 @@ int CLI::run(int argc, char **argv)
glfwGetVersion(&gl_major, &gl_minor, &gl_verbos);
BOOST_LOG_TRIVIAL(info) << boost::format("opengl version %1%.%2%.%3%")%gl_major %gl_minor %gl_verbos;
bool thumbnail_opengl_ready = false;
glfwSetErrorCallback(glfw_callback);
int ret = glfwInit();
if (ret == GLFW_FALSE) {
@@ -6464,22 +6463,13 @@ int CLI::run(int argc, char **argv)
GLFWwindow* window = glfwCreateWindow(640, 480, "base_window", NULL, NULL);
if (window == NULL)
{
BOOST_LOG_TRIVIAL(error) << "Failed to create GLFW window; skipping thumbnail rendering for CLI export" << std::endl;
BOOST_LOG_TRIVIAL(error) << "Failed to create GLFW window" << std::endl;
}
else {
else
glfwMakeContextCurrent(window);
thumbnail_opengl_ready = true;
}
}
//opengl manager related logic
if (!thumbnail_opengl_ready) {
BOOST_LOG_TRIVIAL(error) << "OpenGL context unavailable; skip thumbnail generating" << std::endl;
need_create_thumbnail_group = false;
need_create_no_light_group = false;
need_create_top_group = false;
}
else
{
GUI::OpenGLManager opengl_mgr;
bool opengl_valid = opengl_mgr.init_gl(false);

View File

@@ -31,11 +31,16 @@ function(encoding_check TARGET)
# Define top-level encoding check target for this ${TARGET}
add_custom_target(encoding-check-${TARGET}
DEPENDS encoding-check ${T_SOURCES}
COMMAND $<TARGET_FILE:encoding-check> ${TARGET} ${T_SOURCES}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMENT "Checking source files encodings for target ${TARGET}"
)
# Add checking of each source file as a subcommand of encoding-check-${TARGET}
foreach(file ${T_SOURCES})
add_custom_command(TARGET encoding-check-${TARGET} PRE_BUILD
COMMAND $<TARGET_FILE:encoding-check> ${TARGET} ${file}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
endforeach()
# This adds dependency on encoding-check-${TARGET} to ${TARET}
# via the global-encoding-check

View File

@@ -69,24 +69,28 @@ unsigned char *utf8_check(unsigned char *s)
}
static const char* target;
void error_exit(const char* error, const char* filename)
int main(int argc, char const *argv[])
{
std::cerr << "\n\tError: " << error << ": " << filename << "\n"
<< "\tTarget: " << target << "\n"
<< std::endl;
std::exit(-2);
}
if (argc != 3) {
std::cerr << "Usage: " << argv[0] << " <program/library> <file>" << std::endl;
return -1;
}
const char* target = argv[1];
const char* filename = argv[2];
const auto error_exit = [=](const char* error) {
std::cerr << "\n\tError: " << error << ": " << filename << "\n"
<< "\tTarget: " << target << "\n"
<< std::endl;
std::exit(-2);
};
void utf8_check_file(const char* filename)
{
std::ifstream file(filename, std::ios::binary | std::ios::ate);
const auto size = file.tellg();
if (size == 0) {
return;
return 0;
}
file.seekg(0, std::ios::beg);
@@ -97,7 +101,7 @@ void utf8_check_file(const char* filename)
// Check UTF-8 validity
if (utf8_check(reinterpret_cast<unsigned char*>(buffer.data())) != nullptr) {
error_exit("Source file does not contain (valid) UTF-8", filename);
error_exit("Source file does not contain (valid) UTF-8");
}
// Check against a BOM mark
@@ -105,25 +109,10 @@ void utf8_check_file(const char* filename)
&& buffer[0] == '\xef'
&& buffer[1] == '\xbb'
&& buffer[2] == '\xbf') {
error_exit("Source file is valid UTF-8 but contains a BOM mark", filename);
error_exit("Source file is valid UTF-8 but contains a BOM mark");
}
} else {
error_exit("Could not read source file", filename);
}
}
int main(int argc, char const *argv[])
{
if (argc < 3) {
std::cerr << "Usage: " << argv[0] << " <program/library> <file[s]>" << std::endl;
return -1;
}
target = argv[1];
for (int i = 2; i < argc; i++) {
utf8_check_file(argv[i]);
error_exit("Could not read source file");
}
return 0;

View File

@@ -212,14 +212,8 @@ void AppConfig::set_defaults()
if (get("camera_navigation_style").empty())
set("camera_navigation_style", "0");
if (get("left_mouse_drag_action").empty())
set("left_mouse_drag_action", "2");
if (get("middle_mouse_drag_action").empty())
set("middle_mouse_drag_action", "1");
if (get("right_mouse_drag_action").empty())
set("right_mouse_drag_action", "1");
if (get("swap_mouse_buttons").empty())
set_bool("swap_mouse_buttons", false);
if (get("reverse_mouse_wheel_zoom").empty())
set_bool("reverse_mouse_wheel_zoom", false);
@@ -236,29 +230,6 @@ void AppConfig::set_defaults()
if (get("camera_orbit_mult").empty())
set("camera_orbit_mult", "1.0");
if (get(SETTING_OPENGL_AA_SAMPLES).empty())
set(SETTING_OPENGL_AA_SAMPLES, "4");
if (get(SETTING_OPENGL_FXAA_ENABLED).empty())
set_bool(SETTING_OPENGL_FXAA_ENABLED, false);
if (get(SETTING_OPENGL_FPS_CAP).empty())
set(SETTING_OPENGL_FPS_CAP, "0");
else {
int fps_cap = 0;
try {
fps_cap = std::stoi(get(SETTING_OPENGL_FPS_CAP));
}
catch (...) {
fps_cap = 0;
}
fps_cap = std::max(0, std::min(fps_cap, 240));
set(SETTING_OPENGL_FPS_CAP, std::to_string(fps_cap));
}
if (get(SETTING_OPENGL_SHOW_FPS_OVERLAY).empty())
set_bool(SETTING_OPENGL_SHOW_FPS_OVERLAY, false);
if (get("export_sources_full_pathnames").empty())
set_bool("export_sources_full_pathnames", false);
@@ -863,10 +834,8 @@ std::string AppConfig::load()
void AppConfig::save()
{
if (!is_main_thread_active()) {
BOOST_LOG_TRIVIAL(fatal) << "Calling AppConfig::save() from a worker thread!";
if (! is_main_thread_active())
throw CriticalException("Calling AppConfig::save() from a worker thread!");
}
// The config is first written to a file with a PID suffix and then moved
// to avoid race conditions with multiple instances of Slic3r

View File

@@ -30,10 +30,6 @@ using namespace nlohmann;
#define SETTING_NETWORK_PLUGIN_REMIND_LATER "network_plugin_remind_later"
#define SETTING_USE_ENCRYPTED_TOKEN_FILE "use_encrypted_token_file"
#define SETTING_CLOUD_PROVIDERS "cloud_providers"
#define SETTING_OPENGL_AA_SAMPLES "opengl_antialiasing_samples"
#define SETTING_OPENGL_FXAA_ENABLED "opengl_fxaa_enabled"
#define SETTING_OPENGL_FPS_CAP "opengl_fps_cap"
#define SETTING_OPENGL_SHOW_FPS_OVERLAY "opengl_show_fps_overlay"
#if defined(_WIN32) || defined(_WIN64)
#define BAMBU_NETWORK_AGENT_VERSION_LEGACY "01.10.01.09"

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