#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>
#include "fg_os.hxx"
#include "fg_props.hxx"
#include "positioninit.hxx"
+#include "screensaver_control.hxx"
#include "subsystemFactory.hxx"
#include "options.hxx"
+
using namespace flightgear;
using std::cerr;
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++;
fgOutputSettings();
+ //try to disable the screensaver
+ fgOSDisableScreensaver();
+
// pass control off to the master event handler
int result = fgOSMainLoop();
frame_signal.clear();
fgOSCloseWindow();
+ simgear::clearEffectCache();
+
// clean up here; ensure we null globals to avoid
// confusing the atexit() handler
delete globals;