NEW: add the wireframe rendering mode for debug

currently we can turn on/off it by 'ctrl+shift+enter'

Change-Id: Ic9e5460e8955376e8e2c1a3701e12a1f0b4216ad
This commit is contained in:
lane.wei 2022-10-14 22:01:04 +08:00 committed by Lane.Wei
parent c423577e1d
commit b4d66394e7
6 changed files with 62 additions and 6 deletions

View file

@ -869,6 +869,10 @@ void GLVolume::render(bool with_outline) const
std::array<float, 4> body_color = { 1.0f, 1.0f, 1.0f, 1.0f }; //red
shader->set_uniform("uniform_color", body_color);
if (GUI::wxGetApp().plater()->is_show_wireframe())
shader->set_uniform("show_wireframe", true);
else
shader->set_uniform("show_wireframe", false);
shader->set_uniform("is_outline", true);
glsafe(::glPopMatrix());
glsafe(::glPushMatrix());

View file

@ -2662,6 +2662,12 @@ void GLCanvas3D::on_key(wxKeyEvent& evt)
#if !BBL_RELEASE_TO_PUBLIC
wxGetApp().plater()->toggle_render_statistic_dialog();
m_dirty = true;
#endif
}
else if (evt.ShiftDown() && evt.ControlDown() && keyCode == WXK_RETURN) {
#if !BBL_RELEASE_TO_PUBLIC
wxGetApp().plater()->toggle_show_wireframe();
m_dirty = true;
#endif
}
else if (m_tab_down && keyCode == WXK_TAB && !evt.HasAnyModifiers()) {

View file

@ -1612,6 +1612,7 @@ struct Plater::priv
std::string label_btn_send;
bool show_render_statistic_dialog{ false };
bool show_wireframe{ false };
static const std::regex pattern_bundle;
static const std::regex pattern_3mf;
@ -9039,7 +9040,7 @@ void Plater::send_gcode_legacy(int plate_idx, Export3mfProgressFn proFn, bool up
wxBusyCursor wait;
upload_job.printhost->get_groups(groups);
}
PrintHostSendDialog dlg(default_output_file, upload_job.printhost->get_post_upload_actions(), groups, upload_only);
if (dlg.ShowModal() == wxID_OK) {
upload_job.upload_data.upload_path = dlg.filename();
@ -10509,6 +10510,16 @@ bool Plater::is_render_statistic_dialog_visible() const
return p->show_render_statistic_dialog;
}
void Plater::toggle_show_wireframe()
{
p->show_wireframe = !p->show_wireframe;
}
bool Plater::is_show_wireframe() const
{
return p->show_wireframe;
}
/*Plater::TakeSnapshot::TakeSnapshot(Plater *plater, const std::string &snapshot_name)
: TakeSnapshot(plater, from_u8(snapshot_name)) {}

View file

@ -618,6 +618,9 @@ public:
void toggle_render_statistic_dialog();
bool is_render_statistic_dialog_visible() const;
void toggle_show_wireframe();
bool is_show_wireframe() const;
// Wrapper around wxWindow::PopupMenu to suppress error messages popping out while tracking the popup menu.
bool PopupMenu(wxMenu *menu, const wxPoint& pos = wxDefaultPosition);
bool PopupMenu(wxMenu *menu, int x, int y) { return this->PopupMenu(menu, wxPoint(x, y)); }