Hi, You may want to try posting frame requests as windows messages (via PostMessage()). Call frame() within the handler.
Regards, Can 2009/4/20 Jesper D. Thomsen <[email protected]> > Hi all, I have a somewhat irritating error in Vista (and to a lesser > degree Windows XP). > > I'm using OSG 2.6.1 to render a viewport in an MFC application (built in > Visual Studio 2005 SP1). I'm running in single-threaded mode (although I > have tried multithreaded also without any luck). I'm manually calling frame > when I want the viewport to be updated rather than using run(), as I don't > want to waste cpu/gpu on redrawing a stationary viewport. My problem is that > when I have a somewhat complex model loaded, the cpu-load on the single core > sometimes spikes out at maximum load when doing updates fast (such as during > a fast drag). When this happens the machine often freezes the OSG viewport > (and the cpu load continues at maximum for a single core). In Vista I have > to terminate the application, but in Windows XP I can change focus to > another application window and the viewport returns to normal (0% cpu load) > when I switch back to my application. > > I'm all out of ideas as to exactly why this happens, as I don't completely > understand if I'm allowed to call frame() rapidly or not. I'm looking for a > function which can tell me if the previous frame() has completed, in order > to not call a new frame() before the previous is done. I don't believe this > should be necessary, but I have obviously done something to offend OSG :) > Any ideas or insights will be much appreciated. > > regards, and thanks in advance. > > > Jesper D. Thomsen > > * * > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

