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

Reply via email to