render timer

This commit is contained in:
David Kocik 2020-12-16 13:59:16 +01:00
parent 0592d15c50
commit 3ae40139b3
4 changed files with 33 additions and 25 deletions

View file

@ -2409,7 +2409,6 @@ void GLCanvas3D::on_idle(wxIdleEvent& evt)
{
if (!m_initialized)
return;
#if ENABLE_NEW_NOTIFICATIONS_FADE_OUT
/*NotificationManager* notification_mgr = wxGetApp().plater()->get_notification_manager();
if (notification_mgr->requires_update())
@ -2982,7 +2981,17 @@ void GLCanvas3D::on_timer(wxTimerEvent& evt)
void GLCanvas3D::on_render_timer(wxTimerEvent& evt)
{
render();
// If slicer is not top window -> restart timer with one second to try again
wxWindow* p = dynamic_cast<wxWindow*>(wxGetApp().plater());
while (p->GetParent() != nullptr)
p = p->GetParent();
wxTopLevelWindow* top_level_wnd = dynamic_cast<wxTopLevelWindow*>(p);
if (!top_level_wnd->IsActive()) {
request_extra_frame_delayed(1000);
return;
}
//render();
m_dirty = true;
}
void GLCanvas3D::request_extra_frame_delayed(wxLongLong miliseconds)
@ -2995,6 +3004,7 @@ void GLCanvas3D::request_extra_frame_delayed(wxLongLong miliseconds)
} else {
const wxLongLong remaining_time = m_extra_frame_requested_delayed - (wxGetLocalTimeMillis() - m_render_timer_start);
if(miliseconds < remaining_time) {
m_render_timer.Stop();
m_extra_frame_requested_delayed = miliseconds;
m_render_timer.StartOnce((int)miliseconds.ToLong());
m_render_timer_start = wxGetLocalTimeMillis();