right, this keeps coming up - we've had some aircraft developers who wanted to show random splash screens, multiple images (rotating) or who'd like to see some kind of "hall of arame" shown while booting.
The existing scheme is hard-coded and cannot be scripted. The only kind of flexibility it provides is that it can randomly select splash screens for aircraft that don't have a corresponding entry set. Otherwise, even splash screen updates are hard-coded, despite being property-based.
Personally, I don't think it matters very much to be honest - but for several technical reasons, all active developers agree that the scripting interpreter, and canvas, should be initialized earlier. Primarily, the idea is to provide an integrated GUI launcher that uses Nasal + Canvas:
http://wiki.flightgear.org/Aircraft_CenterInspired by the recent performance/resource utilization debate, I started looking at our "FGCanvas" idea again, which is basically just FlightGear, as is - but with a better configurable initialization process, so that certain subsystems can be made optional, and others better customized - this will also help us better understand performance issues that are specific to certain subsystems.
As you can see below, FlightGear will basically start up using just a subset of its subsystems, mainly the essential ones - while others will be dynamically allocated, on demand:
http://wiki.flightgear.org/FGCanvasviewtopic.php?f=71&t=23499Overall, this also touches the area of initializing certain subsystems earlier, or even first - especially Nasal. So that certain things can be scripted (including splash screens):
viewtopic.php?f=71&t=22021However, the way our existing code is structured there are a handful of implicit design assumptions that are now conflicting, such as subsystem-specific extension functions being added and accessed unconditionally. In the last two days, we've made some progress in this area, and things are looking pretty encouraging (with only minor regressions):
http://wiki.flightgear.org/Initializing_Nasal_earlyAs can be seen, this works already fairly well - removing the hard-coded splash screen feature and re-implementing it using ~50 lines of Nasal should be fairly straightforward now.
Next, there are some Nasal level issues, i.e. bootstrapping should be handled there - but otherwise, it would seem straightforward now to initialize Nasal fairly easily, and use Nasal/Canvas to do GUI stuff, while the rest of the sim is still loading. Most of the really hard work has already been handled by James & Tom fortunately. So depending on feedback, support and manpower, this could make it into one of the next two releases (after 3.2).