#include <simgear/canvas/VGInitOperation.hxx>
#include <simgear/scene/model/modellib.hxx>
#include <simgear/scene/material/matlib.hxx>
+#include <simgear/scene/material/Effect.hxx>
#include <simgear/props/AtomicChangeListener.hxx>
#include <simgear/props/props.hxx>
#include <simgear/timing/sg_time.hxx>
else
assert(t == props::STRING);
}
- p->addChangeListener(new FGMakeUpperCase);
+ SGPropertyChangeListener* muc = new FGMakeUpperCase;
+ globals->addListenerToCleanup(muc);
+ p->addChangeListener(muc);
}
// see http://code.google.com/p/flightgear-bugs/issues/detail?id=385
return EXIT_SUCCESS;
}
+ configResult = fgInitAircraft(false);
+ if (configResult == flightgear::FG_OPTIONS_ERROR) {
+ return EXIT_FAILURE;
+ } else if (configResult == flightgear::FG_OPTIONS_EXIT) {
+ return EXIT_SUCCESS;
+ }
+
+ configResult = flightgear::Options::sharedInstance()->processOptions();
+ if (configResult == flightgear::FG_OPTIONS_ERROR) {
+ return EXIT_FAILURE;
+ } else if (configResult == flightgear::FG_OPTIONS_EXIT) {
+ return EXIT_SUCCESS;
+ }
+
// Initialize the Window/Graphics environment.
fgOSInit(&argc, argv);
_bootstrap_OSInit++;
frame_signal.clear();
fgOSCloseWindow();
+ simgear::clearEffectCache();
+
// clean up here; ensure we null globals to avoid
// confusing the atexit() handler
delete globals;