]> git.mxchange.org Git - flightgear.git/commitdiff
Make lifetime of CameraViewportListener explicit.
authorJames Turner <zakalawe@mac.com>
Sat, 18 Jan 2014 18:49:03 +0000 (18:49 +0000)
committerJames Turner <zakalawe@mac.com>
Sat, 18 Jan 2014 18:49:03 +0000 (18:49 +0000)
MSVC is warning on this usage, as is the Mac release build. Working
around the issue for the moment.

src/Viewer/CameraGroup.cxx
src/Viewer/CameraGroup.hxx

index 7eba76c5f6d6fe6da57af5aff534d597e346cb04..1600ee564921688c928c3dccb3d192f962780736 100644 (file)
@@ -361,7 +361,7 @@ void CameraInfo::resized(double w, double h)
 
 CameraInfo::~CameraInfo()
 {
-    
+    delete viewportListener;
 }
     
 osg::Camera* CameraInfo::getCamera(const std::string& k) const
@@ -1035,7 +1035,7 @@ CameraInfo* CameraGroup::buildCamera(SGPropertyNode* cameraNode)
     // out of the SceneView objects in the viewer, and the coordinates
     // of mouse events are somewhat bizzare.
     
-    info->viewportListener.reset(new CameraViewportListener(info, viewportNode, window->gc->getTraits()));
+    info->viewportListener = new CameraViewportListener(info, viewportNode, window->gc->getTraits());
     
     info->updateCameras();
     // Distortion camera needs the viewport which is created by addCamera().
@@ -1097,8 +1097,8 @@ CameraInfo* CameraGroup::buildGUICamera(SGPropertyNode* cameraNode,
     camera->setRenderOrder(osg::Camera::POST_RENDER, 10000);
     SGPropertyNode* viewportNode = cameraNode->getNode("viewport", true);
 
-    result->viewportListener.reset(new CameraViewportListener(result, viewportNode,
-                                                              window->gc->getTraits()));
+    result->viewportListener = new CameraViewportListener(result, viewportNode,
+                                                              window->gc->getTraits());
 
     // Disable statistics for the GUI camera.
     camera->setStats(0);
index 84447e43cb378b5f268e68cdd8a5beb89f1bc4d3..4b53359b1fe7d3fa6c532b906e30fdf55abc665d 100644 (file)
@@ -101,7 +101,8 @@ struct CameraInfo : public osg::Referenced
           worldPosCart( new osg::Uniform( "fg_CameraPositionCart", osg::Vec3f() ) ),
           worldPosGeod( new osg::Uniform( "fg_CameraPositionGeod", osg::Vec3f() ) ),
           du( new osg::Uniform( "fg_du",osg::Vec4() ) ),
-          dv( new osg::Uniform( "fg_dv",osg::Vec4() ) )
+          dv( new osg::Uniform( "fg_dv",osg::Vec4() ) ),
+          viewportListener(NULL)
     {
         shadowMatrix[0] = new osg::Uniform("fg_ShadowMatrix_0", osg::Matrixf());
         shadowMatrix[1] = new osg::Uniform("fg_ShadowMatrix_1", osg::Matrixf());
@@ -167,7 +168,7 @@ struct CameraInfo : public osg::Referenced
     osg::ref_ptr<osg::Uniform> dv;
     osg::ref_ptr<osg::Uniform> shadowMatrix[4];
 
-    std::auto_ptr<CameraViewportListener> viewportListener;
+    CameraViewportListener* viewportListener;
     
     void setMatrices( osg::Camera* c );