Not intentionally, no. I added pCamera->setClearMask( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT );
to the camera attached to the view just to make sure, but it didn't change anything. It sounds like a bug then, I will try and recreate it in a simple example. Cheers, Morne On Tue, Jan 27, 2009 at 11:36 AM, Robert Osfield <robert.osfi...@gmail.com> wrote: > Hi Morne, > > I'm rather perplexed that it didn't just work. The clear of the > graphics context/window should be done before everything else runs, > the construction order should have no effect on this as it's a feature > hard-wired into GraphicsContext. Is there a chance that you've > disabled the clear of the colour and depth buffer for the cameras? > > Robert. > > On Tue, Jan 27, 2009 at 11:18 AM, Morné Pistorius > <mpistorius....@googlemail.com> wrote: >> Hi Robert, >> >> Thanks for the info. I had a look at the osgcamera example and >> changed my code to call >> >> getGraphicsWindow()->setClearColor(osg::Vec4f(0.0f,1.0f,0.0f,1.0f)); >> getGraphicsWindow()->setClearMask( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) >> >> in the constructor of my derived osgViewer::CompositeViewer. This >> clears the viewer to green, but now none of my views show up inside >> the composite viewer, the whole viewer is just green. When I add a >> view, it is created like this: >> >> osgViewer::View * pView = new osgViewer::View; >> osg::Camera * pCamera = pView->getCamera(); >> >> pCamera->setGraphicsContext( getGraphicsWindow() ); >> pCamera->setClearColor( osg::Vec4( 0.05, 0.05, 0.2, 1.0 ) ) ; >> >> addView( pView ); >> >> ...compute viewport dimentions, etc... >> >> pCamera->setViewport( new osg::Viewport( Left, Bottom , >> BestWindowWidth, BestWindowHeight ) ); >> pCamera->setProjectionMatrixAsPerspective( 30.0f, double( >> BestWindowWidth ) / double( BestWindowHeight ), 1.0f, 10000.0f ); >> >> It is as if the call to clear the viewer comes after the call to >> render the views and I just see the cleared result. Removing the >> setClearColor/setClearMask in the constructor shows my views again. >> >> Is it necessary to create a new GraphicsContexts for the cameras as in >> the osgcameras example? I tried that, without success, so I guess I >> must be missing something else. Attached is what I see. >> >> Thanks again for the help! >> >> Regards, >> Morne >> >> >> On Mon, Jan 26, 2009 at 4:30 PM, Robert Osfield >> <robert.osfi...@gmail.com> wrote: >>> Hi Morne, >>> >>> This isn't a bug, rather a limitation of using camera's to clear the >>> background colour of the graphics context. If your camera's don't >>> cover the whole window then you have tell the GraphicsContext to do a >>> clear - something it doesn't do by default for efficiency reasons - as >>> the vast majority of apps have camera's covering the whole graphics >>> context. >>> >>> The osgcamera example has an example of enabling the clear of the >>> GraphicsContext. It's simply a case of doing a >>> window->setClearMask(..) and window->setClearColor(..); >>> >>> Robert. >>> >>> On Mon, Jan 26, 2009 at 4:20 PM, Morné Pistorius >>> <mpistorius....@googlemail.com> wrote: >>>> Hi guys, >>>> >>>> I am having trouble clearing the background on a composite viewer. I >>>> have a composite viewer derived from QGLWidget to which I add and >>>> remove views dynamically. The viewports are automatically tiled into a >>>> number of rows and columns inside the viewer window to make the best >>>> use of the available space, with a small gap between each view. >>>> >>>> My problem is that I can't clear the background of the composite >>>> viewer when I add/remove views. For example, if I had 4 views tiled >>>> in a 2x2 matrix, and remove one view, I my tiler keeps two views in >>>> the top row and 1 in the bottom row with an empty square where the >>>> fourth view was. Although the fourth view was removed, I still see >>>> some data drawn from the last frame that the removed viewer displayed. >>>> Also, the gaps between the views shows garbage. I attached two >>>> screenshots showing the problem. >>>> >>>> Is there something that I could call on the composite viewer to clear >>>> the entire window? It could also be a Qt problem, since the composite >>>> viewer is derived from QGLWidget. If I resize the window after >>>> removing the fourth view, then the background is cleared. I tried >>>> calling repaint()/paintGL() on the QtWidget, but that didn't help. >>>> >>>> I would appreciate pointers from people who have successfully used >>>> composite viewers with Qt before. >>>> >>>> Thanks a lot! >>>> >>>> Morne >>>> >>>> _______________________________________________ >>>> 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 >> >> > _______________________________________________ > 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