From 2d621cb58a96769d6f539058412b54764c9391aa Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 24 Apr 2009 18:37:36 +0000 Subject: [PATCH] Added checking of need to update. --- src/osgViewer/Viewer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/osgViewer/Viewer.cpp b/src/osgViewer/Viewer.cpp index de3068541..bdd14ac61 100644 --- a/src/osgViewer/Viewer.cpp +++ b/src/osgViewer/Viewer.cpp @@ -327,13 +327,19 @@ bool Viewer::checkNeedToDoFrame() if (_requestRedraw) return true; if (_requestContinousUpdate) return true; + // If the database pager is going to update the scene the render flag is // set so that the updates show up if(getDatabasePager()->requiresUpdateSceneGraph() || getDatabasePager()->getRequestsInProgress()) return true; + // if there update callbacks then we need to do frame. + if (_camera->getUpdateCallback()) return true; + if (getSceneData()!=0 && getSceneData()->getNumChildrenRequiringUpdateTraversal()>0) return true; + // now do a eventTraversal to see if any events might require a new frame. eventTraversal(); + // now check if any of the event handles have prompted a redraw. if (_requestRedraw) return true; if (_requestContinousUpdate) return true;