20,741
edits
| Line 104: | Line 104: | ||
In addition, it will be much easier for developers to do regression testing and benchmarking once subsystems can be completely disabled, a long-standing feature request (see [[FlightGear Headless]]); it would also help to simplify, and to some extent even automate, release preparations.  | In addition, it will be much easier for developers to do regression testing and benchmarking once subsystems can be completely disabled, a long-standing feature request (see [[FlightGear Headless]]); it would also help to simplify, and to some extent even automate, release preparations.  | ||
{{FGCquote  | |||
|1= thanks to all the reset/re-init work, the C++ dependencies are fairly straightforward to decouple these days, I just made the tile manager optional in under 10 minutes, i.e. all the scenery/sky/stars is gone now - which means that FG is now utiliing less than 140 MB of RAM here using this "startup mode".   | |||
So this about more than just "FGCanvas": It will make troubleshooting so much more straightforward, and we can also explore feature-scaling and run-time benchmarking once this works.  | |||
Currently, I'd even consider restructuring initialization to always boot up like this, because it's the safest possible subset of subsystems for now - i.e. roughly a dozen subsystems that basically stand no chance of "crashing" the sim. And from then on, additional initialization could be handled by Nasal obviously - and scripts could even scale up/down, depending on hardware support and features.  | |||
With 14 subsystems remaining, I am now getting 650 fps when showing the Canvas GUI (Aircraft Center) here.  | |||
As for C++ changes, I have come to the conclusion that this could be greatly simplified by making the whole aircraft shebang optional - i.e. aircraft as such, and all its related subsystems, e.g.:  | |||
*  view manager  | |||
*  FDM (obviously)  | |||
*  Autopilot, Property Rules  | |||
*  Route Manager  | |||
*  history  | |||
*  flight recorder  | |||
These are currently hard-coded as separate SGSubsystem instances in fg_init.cxx - even though this is conceptually a headache, simply because these should be all handled by a single SGSubsystemGroup and wrapped inside it.  | |||
|2= {{cite web  | |||
  | url    = http://forum.flightgear.org/viewtopic.php?p=214211#p214211  | |||
  | title  = <nowiki>Re: FGCanvas Experiments & Updates</nowiki>  | |||
  | author = <nowiki>Hooray</nowiki>  | |||
  | date   = Jul 6th, 2014  | |||
  | added   = Jul 6th, 2014  | |||
  | script_version = 0.23  | |||
  }}  | |||
}}  | |||
== Fgcommands ==  | == Fgcommands ==  | ||