#include <simgear/canvas/Canvas.hxx>
+using simgear::canvas::Canvas;
+
//------------------------------------------------------------------------------
CanvasMgr::CanvasMgr():
simgear::canvas::CanvasMgr
(
fgGetNode("/canvas/by-index", true),
simgear::canvas::SystemAdapterPtr( new canvas::FGCanvasSystemAdapter )
+ ),
+ _cb_model_reinit
+ (
+ this,
+ &CanvasMgr::handleModelReinit,
+ fgGetNode("/sim/signals/model-reinit", true)
)
{
- using simgear::canvas::Canvas;
Canvas::addPlacementFactory
(
"object",
return tobj->_id;
}
+
+//----------------------------------------------------------------------------
+void CanvasMgr::handleModelReinit(SGPropertyNode*)
+{
+ for(size_t i = 0; i < _elements.size(); ++i)
+ boost::static_pointer_cast<Canvas>(_elements[i])
+ ->reloadPlacements("object");
+}
* @return OpenGL texture name
*/
unsigned int getCanvasTexId(const simgear::canvas::CanvasPtr& canvas) const;
+
+ protected:
+
+ SGPropertyChangeCallback<CanvasMgr> _cb_model_reinit;
+
+ void handleModelReinit(SGPropertyNode*);
};
#endif /* CANVAS_MGR_H_ */