mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-22 06:04:01 -06:00
Final version of fix to prevent showing old framebuffer when switching between views on Mac
This commit is contained in:
parent
81820fa77f
commit
513256649e
2 changed files with 7 additions and 18 deletions
|
@ -4118,10 +4118,8 @@ void GLCanvas3D::render()
|
||||||
if (m_canvas == nullptr)
|
if (m_canvas == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
if (!_is_shown_on_screen())
|
||||||
// if (!_is_shown_on_screen())
|
return;
|
||||||
// return;
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
|
|
||||||
// ensures this canvas is current and initialized
|
// ensures this canvas is current and initialized
|
||||||
if (!_set_current() || !_3DScene::init(m_canvas))
|
if (!_set_current() || !_3DScene::init(m_canvas))
|
||||||
|
|
|
@ -2222,9 +2222,9 @@ void Plater::priv::set_current_panel(wxPanel* panel)
|
||||||
if (std::find(panels.begin(), panels.end(), panel) == panels.end())
|
if (std::find(panels.begin(), panels.end(), panel) == panels.end())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
#ifdef __WXMAC__
|
||||||
bool force_render = (current_panel != nullptr);
|
bool force_render = (current_panel != nullptr);
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
#endif // __WXMAC__
|
||||||
|
|
||||||
if (current_panel == panel)
|
if (current_panel == panel)
|
||||||
return;
|
return;
|
||||||
|
@ -2234,8 +2234,9 @@ void Plater::priv::set_current_panel(wxPanel* panel)
|
||||||
for (wxPanel* p : panels)
|
for (wxPanel* p : panels)
|
||||||
{
|
{
|
||||||
if (p == current_panel)
|
if (p == current_panel)
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
{
|
{
|
||||||
|
#ifdef __WXMAC__
|
||||||
|
// On Mac we need also to force a render to avoid flickering when changing view
|
||||||
if (force_render)
|
if (force_render)
|
||||||
{
|
{
|
||||||
if (p == view3D)
|
if (p == view3D)
|
||||||
|
@ -2243,11 +2244,9 @@ void Plater::priv::set_current_panel(wxPanel* panel)
|
||||||
else if (p == preview)
|
else if (p == preview)
|
||||||
dynamic_cast<Preview*>(p)->get_canvas3d()->render();
|
dynamic_cast<Preview*>(p)->get_canvas3d()->render();
|
||||||
}
|
}
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
#endif // __WXMAC__
|
||||||
p->Show();
|
p->Show();
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
}
|
}
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
}
|
}
|
||||||
// then set to invisible the other
|
// then set to invisible the other
|
||||||
for (wxPanel* p : panels)
|
for (wxPanel* p : panels)
|
||||||
|
@ -2256,16 +2255,8 @@ void Plater::priv::set_current_panel(wxPanel* panel)
|
||||||
p->Hide();
|
p->Hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
// current_panel->Freeze();
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
|
|
||||||
panel_sizer->Layout();
|
panel_sizer->Layout();
|
||||||
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
// current_panel->Thaw();
|
|
||||||
//@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
|
|
||||||
|
|
||||||
if (current_panel == view3D)
|
if (current_panel == view3D)
|
||||||
{
|
{
|
||||||
if (view3D->is_reload_delayed())
|
if (view3D->is_reload_delayed())
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue