Merge pull request #91 from bjornblissing/feature/DestructionOperation
CleanUpOperation added to Viewer
This commit is contained in:
@@ -126,7 +126,19 @@ CompositeViewer::~CompositeViewer()
|
||||
citr != contexts.end();
|
||||
++citr)
|
||||
{
|
||||
(*citr)->close();
|
||||
osg::GraphicsContext* gc = *citr;
|
||||
|
||||
// Run destroy operation on each context before closing it
|
||||
if (_cleanUpOperation.valid() && gc->valid())
|
||||
{
|
||||
gc->makeCurrent();
|
||||
|
||||
(*_cleanUpOperation)(gc);
|
||||
|
||||
gc->releaseContext();
|
||||
}
|
||||
|
||||
gc->close();
|
||||
}
|
||||
|
||||
OSG_INFO<<"finished CompositeViewer::~CompositeViewer()"<<std::endl;
|
||||
|
||||
@@ -238,7 +238,19 @@ Viewer::~Viewer()
|
||||
citr != contexts.end();
|
||||
++citr)
|
||||
{
|
||||
(*citr)->close();
|
||||
osg::GraphicsContext* gc = *citr;
|
||||
|
||||
// Run destroy operation on each context before closing it
|
||||
if (_cleanUpOperation.valid() && gc->valid())
|
||||
{
|
||||
gc->makeCurrent();
|
||||
|
||||
(*_cleanUpOperation)(gc);
|
||||
|
||||
gc->releaseContext();
|
||||
}
|
||||
|
||||
gc->close();
|
||||
}
|
||||
|
||||
//OSG_NOTICE<<"finish Viewer::~Viewer()"<<std::endl;
|
||||
@@ -275,6 +287,7 @@ void Viewer::take(osg::View& rhs)
|
||||
_updateVisitor = rhs_viewer->_updateVisitor;
|
||||
|
||||
_realizeOperation = rhs_viewer->_realizeOperation;
|
||||
_cleanUpOperation = rhs_viewer->_cleanUpOperation;
|
||||
_currentContext = rhs_viewer->_currentContext;
|
||||
|
||||
|
||||
@@ -287,6 +300,7 @@ void Viewer::take(osg::View& rhs)
|
||||
rhs_viewer->_updateOperations = 0;
|
||||
rhs_viewer->_updateVisitor = 0;
|
||||
rhs_viewer->_realizeOperation = 0;
|
||||
rhs_viewer->_cleanUpOperation = 0;
|
||||
rhs_viewer->_currentContext = 0;
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user