Fix regression that shell is not rendered unless slice is completed (#3181)

* Fix issue that `is_update_alpha` doesn't work

* Fix regression that shell is not rendered unless slice is completed

* Format
This commit is contained in:
Noisyfox 2023-12-19 11:07:21 +08:00 committed by GitHub
parent 3ee42f42da
commit 871f163a32
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 7 deletions

View file

@ -1163,13 +1163,14 @@ void GLVolumeCollection::update_colors_by_extruder(const DynamicPrintConfig *con
const ColorItem& color = colors[extruder_id];
if (!color.first.empty()) {
if (!is_update_alpha) {
float old_a = color.second.a();
float old_a = volume->color.a();
volume->color = color.second;
volume->color.a(old_a);
}
} else {
volume->color = color.second;
}
}
}
}
void GLVolumeCollection::set_transparency(float alpha)

View file

@ -1242,11 +1242,12 @@ void GCodeViewer::render(int canvas_width, int canvas_height, int right_margin)
m_statistics.total_instances_gpu_size = 0;
#endif // ENABLE_GCODE_VIEWER_STATISTICS
glsafe(::glEnable(GL_DEPTH_TEST));
render_shells();
if (m_roles.empty())
return;
glsafe(::glEnable(GL_DEPTH_TEST));
render_shells();
render_toolpaths();
float legend_height = 0.0f;
render_legend(legend_height, canvas_width, canvas_height, right_margin);