From 5fb7b2e12ce277ea47d5fe185a8f255fcf41cb10 Mon Sep 17 00:00:00 2001 From: Thomas Geymayer Date: Mon, 9 Dec 2013 23:13:45 +0100 Subject: [PATCH] Canvas: Now only one global SystemAdapter is used... --- src/Canvas/FGCanvasSystemAdapter.cxx | 3 ++- src/Canvas/canvas_mgr.cxx | 7 +------ src/Cockpit/od_gauge.cxx | 7 +------ src/Main/fg_init.cxx | 5 +++++ 4 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/Canvas/FGCanvasSystemAdapter.cxx b/src/Canvas/FGCanvasSystemAdapter.cxx index 0471118dd..ad774fd43 100644 --- a/src/Canvas/FGCanvasSystemAdapter.cxx +++ b/src/Canvas/FGCanvasSystemAdapter.cxx @@ -71,7 +71,8 @@ namespace canvas //---------------------------------------------------------------------------- void FGCanvasSystemAdapter::removeCamera(osg::Camera* camera) const { - globals->get_renderer()->removeCamera(camera); + if( globals->get_renderer() ) + globals->get_renderer()->removeCamera(camera); } //---------------------------------------------------------------------------- diff --git a/src/Canvas/canvas_mgr.cxx b/src/Canvas/canvas_mgr.cxx index 6bef1f476..27c4290b6 100644 --- a/src/Canvas/canvas_mgr.cxx +++ b/src/Canvas/canvas_mgr.cxx @@ -18,7 +18,6 @@ #include "canvas_mgr.hxx" -#include #include #include
#include @@ -57,11 +56,7 @@ static sc::Placements addSceneObjectPlacement( SGPropertyNode* placement, //------------------------------------------------------------------------------ CanvasMgr::CanvasMgr(): - simgear::canvas::CanvasMgr - ( - fgGetNode("/canvas/by-index", true), - sc::SystemAdapterPtr( new canvas::FGCanvasSystemAdapter ) - ), + simgear::canvas::CanvasMgr( fgGetNode("/canvas/by-index", true) ), _cb_model_reinit ( this, diff --git a/src/Cockpit/od_gauge.cxx b/src/Cockpit/od_gauge.cxx index 5cae2fb8e..883a17178 100644 --- a/src/Cockpit/od_gauge.cxx +++ b/src/Cockpit/od_gauge.cxx @@ -48,21 +48,16 @@ #include #include -#include #include
#include #include "od_gauge.hxx" #include -static simgear::canvas::SystemAdapterPtr system_adapter( - new canvas::FGCanvasSystemAdapter -); - //------------------------------------------------------------------------------ FGODGauge::FGODGauge() { - setSystemAdapter(system_adapter); + } //------------------------------------------------------------------------------ diff --git a/src/Main/fg_init.cxx b/src/Main/fg_init.cxx index e33c1aebd..0278fe03f 100644 --- a/src/Main/fg_init.cxx +++ b/src/Main/fg_init.cxx @@ -50,6 +50,7 @@ #include +#include #include #include #include @@ -88,6 +89,7 @@ #include #include +#include #include #include #include @@ -693,6 +695,9 @@ void fgCreateSubsystems(bool duringReset) { //////////////////////////////////////////////////////////////////// // Initialize the canvas 2d drawing subsystem. //////////////////////////////////////////////////////////////////// + simgear::canvas::Canvas::setSystemAdapter( + simgear::canvas::SystemAdapterPtr(new canvas::FGCanvasSystemAdapter) + ); globals->add_subsystem("Canvas", new CanvasMgr, SGSubsystemMgr::DISPLAY); globals->add_subsystem("CanvasGUI", new GUIMgr, SGSubsystemMgr::DISPLAY); -- 2.39.5