Hi Robert,

I have just updated and under Windows (Visual Studio 2005), I got this error
:

openscenegraph\include\osg\view(135) : error C4716:
'osg::View::createRenderer' : must return a value

On 8/2/07, Robert Osfield <[EMAIL PROTECTED]> wrote:
>
> Hi All,
>
> Over the last six months I've hinted occasionally at refactoring the
> way that rendering is managed in osgViewer to allow better access and
> control over things like the internal SceneViews used to do rendering.
> I didn't know exactly how it should pan out, but yesterday rolled my
> sleeves up and coded up an implementation which is now checked into
> osgViewer.
>
> For the most part I expect users to be able to just svn update rebuild
> and have app just run as they did before, with just the internal
> implementation details changing.  A few users that dig a little deeper
> into the implementation details will find a few changes.  Some parts
> aren't complete yet - for instance the
> CullThreadPerCameraDrawThreadPerContext currently hangs on a lock,
> something I'm looking into.  However, save for a few glitches things
> should work just as before.
>
> The real value in the new osgViewer::Renderer is that it provides a
> public interface for the rendering implementation that the Viewer's
> Camera's use to render there scenes.  When you add a Camera to a
> View(er) a Renderer is automatically assigned to it, and then when
> each GraphicsContext is drawn each Camera assigned to context will
> have their Renderer called.  You can get the Renderer assigned to a
> Camera via:
>
>   osgViewer::Renderer* renderer =
>           dynamic_cast<osgViewer::Renderer*>(camera->getRenderer());
>
> Note the dynamic_cast is required as Camera::s/getRender() has a
> generic osg::GraphicsOperation reference, and doesn't actually know
> about the Renderer subclass that is provided by osgViewer - it can't
> because osgViewer is above core osg in the dependency chain.
>
> Once you have the Renderer you can get the SceneView from it.  Note
> there is present two SceneView in each Renderer to enable it support
> double buffering of the rendering backend.  Only the first SceneView
> is used when in SingleThreaded or CullDrawThreadPerContext.
>
> We'll be able to add further public interfaces into Renderer as time
> goes on, something that wasn't possible with the previous approach as
> all the GraphicsOperation implementations doing the rendering were
> hidden inside the Viewer.cpp and CompositeViewer.cpp.  Another benefit
> is that both Viewer and CompositeViewer now shared exactly the same
> Renderer class, and thereby reduces the code footprint, and opens the
> door for adding more of Viewer's stats and threading models into
> CompositeViewer - this work isn't complete yet, but the door is now
> open.
>
> Another side affect of these changes are that Viewer/CompositeViewer
> no longer need to set up the rendering operations for you via the
> setUpRenderingSupport() methods, as the Renderer can now be
> automatically cloned by osgView::View when you add new Camera, and in
> your own code you can also directly assign the Renderer to the Camera
> you want to add directly to a GraphicsContext.  The later approach is
> what the StatsHandler and HelpHandler do - they now add the Renderer
> in rather than call setUpRenderingSupport().
>
> The Viewer/CompositeViewer::setUpRenderingSupport() method has also
> been removed as it no longer has a role in managing the viewers, as
> more is now done automatically - if you used it before such as when
> removing views or adding cameras you should be able to simple delete
> this line now.
>
> One thing you do still need to be mindful of when adding and removing
> views and cameras is the threading side - you still need to
> stopThreading before adding/removing Views/Camera as barriers still
> need to be managed appropriately.  Longer term I may be add some
> controls in the the View class to handle this for you, but right now
> you'll need to mindful.
>
> Robert.
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>



-- 
Serge Lages
http://www.magrathea-engine.org
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to