Cleaned up copy constructor and switched on thread safe ref/unref.

This commit is contained in:
Robert Osfield 2007-08-22 09:50:09 +00:00
parent 5196b09672
commit ef4dafaea1

View File

@ -84,7 +84,8 @@ static const GLubyte patternHorzEven[] = {
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00}; 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00};
SceneView::SceneView(DisplaySettings* ds) SceneView::SceneView(DisplaySettings* ds):
osg::Object(true)
{ {
_displaySettings = ds; _displaySettings = ds;
@ -131,17 +132,25 @@ SceneView::SceneView(const SceneView& rhs, const osg::CopyOp& copyop):
_prioritizeTextures = rhs._prioritizeTextures; _prioritizeTextures = rhs._prioritizeTextures;
_camera = rhs._camera; if (rhs._camera.valid())
_cameraWithOwnership = rhs._cameraWithOwnership; {
setCamera(new osg::Camera(*rhs._camera,copyop), rhs._camera.get()==rhs._cameraWithOwnership.get());
}
else
{
setCamera(new Camera);
_camera->setViewport(new Viewport);
_camera->setClearColor(osg::Vec4(0.2f, 0.2f, 0.4f, 1.0f));
}
_initCalled = rhs._initCalled; _initCalled = false;
_requiresFlush = rhs._requiresFlush; _requiresFlush = rhs._requiresFlush;
_activeUniforms = rhs._activeUniforms; _activeUniforms = rhs._activeUniforms;
_previousFrameTime = rhs._previousFrameTime; _previousFrameTime = 0;
_previousSimulationTime = rhs._previousSimulationTime; _previousSimulationTime = 0;
_redrawInterlacedStereoStencilMask = rhs._redrawInterlacedStereoStencilMask; _redrawInterlacedStereoStencilMask = rhs._redrawInterlacedStereoStencilMask;
_interlacedStereoStencilWidth = rhs._interlacedStereoStencilWidth; _interlacedStereoStencilWidth = rhs._interlacedStereoStencilWidth;