Re: [osg-users] Composite Viewer, Multiple Windows, Different Framerates
At this point I'm somewhat pressed for time, so I'm going to toggle the nodemask on and off and deal with the buffer swapping. Maybe when I get more time I'll revisit the disabling of windows at the viewer level. Thanks for the info! -Chris On Fri, Aug 14, 2009 at 7:44 AM, Robert Osfield robert.osfi...@gmail.com wrote: Hi Chris, The current design of osgViewer is for a single viewer to have a single frame loop, and in your case you fall out this. One possible solution would be to have two separate viewers, each running their own frame when required - you can't mix scene graphs or graphics contexts in this case though. The other route is node masks as you have done, but this won't disable the swap buffers of the associate contexts - do to the later one would need to modify the CompsiteViewer::renderingTraversals() method to enable the disable of a window. Potentially we could evolve osgViewer to support the disabling of windows so that all the cameras on it wouldn't rendering and no swap buffers would be issued. Disabling cameras from updating where the window/context is a bit more awkward though as you'd need to rendering to the back buffer and front buffer of the camera to be disabled before you can fully disable it, otherwise you'd end up with black hole where the camera was. Robert. On Wed, Aug 12, 2009 at 8:15 PM, Chris Glasnappchris.glasn...@gmail.com wrote: Hello, I have a wxWidgets application where I'd like to setup two windows. The first window is interactive, so I want the framerates to be quite high. The second window displays a different view of the same scene, but it is not interactive, and I don't care much about the refresh rate. Because I'm using wxWidgets, I call frame() myself instead of calling run(). If I use a composite viewer (as I believe OSG intended for me to do), then I can only call frame() once, which redraws both views. What is the best way to achieve different framerates for the two different views? Should I set the nodemask of the low framerate camera to 0 for most of the time, and then set its nodemask to ~0, when I want it to render to its window? I'm hoping there is a better way, because I use the nodemask of the cameras for other purposes. Thanks! -Chris ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
Re: [osg-users] Composite Viewer, Multiple Windows, Different Framerates
Hi Chris, The current design of osgViewer is for a single viewer to have a single frame loop, and in your case you fall out this. One possible solution would be to have two separate viewers, each running their own frame when required - you can't mix scene graphs or graphics contexts in this case though. The other route is node masks as you have done, but this won't disable the swap buffers of the associate contexts - do to the later one would need to modify the CompsiteViewer::renderingTraversals() method to enable the disable of a window. Potentially we could evolve osgViewer to support the disabling of windows so that all the cameras on it wouldn't rendering and no swap buffers would be issued. Disabling cameras from updating where the window/context is a bit more awkward though as you'd need to rendering to the back buffer and front buffer of the camera to be disabled before you can fully disable it, otherwise you'd end up with black hole where the camera was. Robert. On Wed, Aug 12, 2009 at 8:15 PM, Chris Glasnappchris.glasn...@gmail.com wrote: Hello, I have a wxWidgets application where I'd like to setup two windows. The first window is interactive, so I want the framerates to be quite high. The second window displays a different view of the same scene, but it is not interactive, and I don't care much about the refresh rate. Because I'm using wxWidgets, I call frame() myself instead of calling run(). If I use a composite viewer (as I believe OSG intended for me to do), then I can only call frame() once, which redraws both views. What is the best way to achieve different framerates for the two different views? Should I set the nodemask of the low framerate camera to 0 for most of the time, and then set its nodemask to ~0, when I want it to render to its window? I'm hoping there is a better way, because I use the nodemask of the cameras for other purposes. Thanks! -Chris ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
[osg-users] Composite Viewer, Multiple Windows, Different Framerates
Hello, I have a wxWidgets application where I'd like to setup two windows. The first window is interactive, so I want the framerates to be quite high. The second window displays a different view of the same scene, but it is not interactive, and I don't care much about the refresh rate. Because I'm using wxWidgets, I call frame() myself instead of calling run(). If I use a composite viewer (as I believe OSG intended for me to do), then I can only call frame() once, which redraws both views. What is the best way to achieve different framerates for the two different views? Should I set the nodemask of the low framerate camera to 0 for most of the time, and then set its nodemask to ~0, when I want it to render to its window? I'm hoping there is a better way, because I use the nodemask of the cameras for other purposes. Thanks! -Chris ___ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org