Follow-up of fdf8b11d4cfa793d1e45d82560d4bd97d0466d40 - Fixed GLGizmoSlaSupports::render_points()

(cherry picked from commit prusa3d/PrusaSlicer@0c74081f7d)
This commit is contained in:
enricoturri1966 2023-10-23 11:38:15 +08:00 committed by Noisyfox
parent dde64acf72
commit dd51ce3b90

View file

@ -127,13 +127,12 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
if (! has_points && ! has_holes) if (! has_points && ! has_holes)
return; return;
GLShaderProgram* shader = picking ? nullptr : wxGetApp().get_shader("gouraud_light"); GLShaderProgram* shader = wxGetApp().get_shader(picking ? "flat" : "gouraud_light");
if (shader != nullptr) if (shader == nullptr)
shader->start_using(); return;
ScopeGuard guard([shader]() {
if (shader != nullptr) shader->start_using();
shader->stop_using(); ScopeGuard guard([shader]() { shader->stop_using(); });
});
const GLVolume* vol = selection.get_volume(*selection.get_volume_idxs().begin()); const GLVolume* vol = selection.get_volume(*selection.get_volume_idxs().begin());
const Transform3d& instance_scaling_matrix_inverse = vol->get_instance_transformation().get_matrix(true, true, false, true).inverse(); const Transform3d& instance_scaling_matrix_inverse = vol->get_instance_transformation().get_matrix(true, true, false, true).inverse();
@ -176,7 +175,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
m_cone.set_color(render_color); m_cone.set_color(render_color);
m_sphere.set_color(render_color); m_sphere.set_color(render_color);
if (shader && !picking) if (!picking)
shader->set_uniform("emission_factor", 0.5f); shader->set_uniform("emission_factor", 0.5f);
// Inverse matrix of the instance scaling is applied so that the mark does not scale with the object. // Inverse matrix of the instance scaling is applied so that the mark does not scale with the object.
@ -228,8 +227,7 @@ void GLGizmoSlaSupports::render_points(const Selection& selection, bool picking)
if (has_holes && ! picking) { if (has_holes && ! picking) {
render_color = { 0.7f, 0.7f, 0.7f, 0.7f }; render_color = { 0.7f, 0.7f, 0.7f, 0.7f };
m_cylinder.set_color(render_color); m_cylinder.set_color(render_color);
if (shader) shader->set_uniform("emission_factor", 0.5f);
shader->set_uniform("emission_factor", 0.5f);
for (const sla::DrainHole& drain_hole : m_c->selection_info()->model_object()->sla_drain_holes) { for (const sla::DrainHole& drain_hole : m_c->selection_info()->model_object()->sla_drain_holes) {
if (is_mesh_point_clipped(drain_hole.pos.cast<double>())) if (is_mesh_point_clipped(drain_hole.pos.cast<double>()))
continue; continue;