Hi All,

There has been several users having problems when trying to do
CompositeViewer::addView(..), removeView() after the viewer has been
realized.  I've investigated this further using Amalric's modified
osgwindows.cpp as a base, one fix relating to lack of texturing in new
windows I checked in during the week.  Today I've been looking at
avoiding the window realize code that Amalric's code had to avoid a
second a second issue - that is crashes caused by the new windows not
being realized.

To simplify the addView() code that users have to use in their own
apps, I've added automatic realize of new windows that are added view
the CompositeViewer::addView(), with this code is only called if the
viewer has already been realized.  With this change I'm able to remove
the workarounds from the test code (i..e no need for realize calls, or
stop/startThreading.)  I've testing with single threaded and
multi-threaded viewers it looks like everything just now works for
standard models.  These improvements have now been checked into the
SVN version of the OSG.

The only problem I've seen left to resolve in this area is that on
paged databases, the tiles I'm see aren't coming up with textures.  I
strongly suspect this is due to the paged database releasing
osg::Image objects after it's downloads them - something that is good
for keeping a lid on memory usage, but is causing problems in this
case.  This fix would be to disable the unref after apply on all the
paged textures, this isn't a viewer issue, rather a database
management issue, and something that would need to be done on load of
the database, rather than as something we can fix by tweaks in the
viewer.

Robert.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to