]> git.mxchange.org Git - flightgear.git/commitdiff
View-manager: update globals automatically.
authorJames Turner <zakalawe@mac.com>
Tue, 20 Nov 2012 13:33:20 +0000 (13:33 +0000)
committerJames Turner <zakalawe@mac.com>
Tue, 20 Nov 2012 13:33:20 +0000 (13:33 +0000)
Make the global view-manager pointer be controlled by the instance.

src/Main/fg_init.cxx
src/Main/subsystemFactory.cxx
src/Viewer/viewmgr.cxx

index 716ae9514c6cf865eb1c83b4949ac3c39a6649ff..5330ede863edc2bc542c75f82b625dfa0e1391b4 100644 (file)
@@ -728,9 +728,7 @@ void fgCreateSubsystems() {
     globals->add_subsystem("aircraft-model", new FGAircraftModel, SGSubsystemMgr::DISPLAY);
     globals->add_subsystem("model-manager", new FGModelMgr, SGSubsystemMgr::DISPLAY);
 
-    FGViewMgr *viewmgr = new FGViewMgr;
-    globals->set_viewmgr( viewmgr );
-    globals->add_subsystem("view-manager", viewmgr, SGSubsystemMgr::DISPLAY);
+    globals->add_subsystem("view-manager", new FGViewMgr, SGSubsystemMgr::DISPLAY);
 
     globals->add_subsystem("tile-manager", globals->get_tile_mgr(), 
       SGSubsystemMgr::DISPLAY);
index 85e71456c29f55085849231dd455b8ea51ccfa64..c174ad5fb349aa66ad296adbb2c6dfeb6c2e22a8 100644 (file)
@@ -61,6 +61,8 @@
 #include <Canvas/canvas_mgr.hxx>
 #include <Canvas/gui_mgr.hxx>
 #include <Time/light.hxx>
+#include <Viewer/viewmgr.hxx>
+#include <Model/modelmgr.hxx>
 
 using std::vector;
 
@@ -101,6 +103,8 @@ SGSubsystem* createSubsystemByName(const std::string& name)
     MAKE_SUB(FGLight, "lighting");
     MAKE_SUB(CanvasMgr, "canvas");
     MAKE_SUB(GUIMgr, "canvas-gui");
+    MAKE_SUB(FGViewMgr, "view-manager");
+    MAKE_SUB(FGModelMgr, "model-manager");
 #undef MAKE_SUB
     
     throw sg_range_exception("unknown subsystem:" + name);
index 77c20ab0ef5d1b66fccca2bebf2b1ddc83d703ed..d2bd880ec57c9bf27c70a5b3846b7cefb312a1fc 100644 (file)
@@ -45,10 +45,13 @@ FGViewMgr::FGViewMgr( void ) :
   current_view_orientation(SGQuatd::zeros()),
   current_view_or_offset(SGQuatd::zeros())
 {
+  globals->set_viewmgr(this);
 }
 
 // Destructor
-FGViewMgr::~FGViewMgr( void ) {
+FGViewMgr::~FGViewMgr( void )
+{
+  globals->set_viewmgr(NULL);
 }
 
 void