diff options
Diffstat (limited to 'o3d')
-rw-r--r-- | o3d/core/cross/client.cc | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/o3d/core/cross/client.cc b/o3d/core/cross/client.cc index 6a9ebbc..f66816c 100644 --- a/o3d/core/cross/client.cc +++ b/o3d/core/cross/client.cc @@ -205,14 +205,15 @@ bool Client::Tick() { last_tick_time_ = timer.GetElapsedTimeAndReset(); texture_on_hold_ |= has_new_texture; - int max_fps = renderer_->max_fps(); - if (max_fps > 0 && - texture_on_hold_ && - render_mode() == RENDERMODE_ON_DEMAND && - render_elapsed_time_timer_.GetElapsedTimeWithoutClearing() + if (texture_on_hold_ && renderer_.IsAvailable()) { + int max_fps = renderer_->max_fps(); + if (max_fps > 0 && + render_mode() == RENDERMODE_ON_DEMAND && + render_elapsed_time_timer_.GetElapsedTimeWithoutClearing() > 1.0/max_fps) { - renderer_->set_need_to_render(true); - texture_on_hold_ = false; + renderer_->set_need_to_render(true); + texture_on_hold_ = false; + } } return message_check_ok; |