#include <simgear/math/sg_random.h>
#include <simgear/misc/sg_path.hxx>
-#include <GUI/new_gui.hxx>
+#include <plib/fnt.h>
+
+#include "GUI/FGFontCache.hxx"
+#include "GUI/FGColor.hxx"
#include "globals.hxx"
#include "fg_props.hxx"
char *genNameString()
{
- string website = "http://www.flightgear.org";
- string programName = "FlightGear";
+ std::string website = "http://www.flightgear.org";
+ std::string programName = "FlightGear";
char *name = new char[26];
name[20] = 114;
name[8] = 119;
char *namestring = genNameString();
fgSetString("/sim/startup/program-name", namestring);
+ delete[] namestring;
+
+ SGPath tpath;
+ if (splash_texture && strcmp(splash_texture, "")) {
+ tpath = globals->resolve_maybe_aircraft_path(splash_texture);
+ if (tpath.isNull())
+ {
+ SG_LOG( SG_VIEW, SG_ALERT, "Cannot find splash screen file '" << splash_texture
+ << "'. Using default." );
+ }
+ }
- SGPath tpath( globals->get_fg_root() );
- if (splash_texture == NULL || !strcmp(splash_texture, "")) {
+ if (tpath.isNull()) {
+ // no splash screen specified - select random image
+ tpath = globals->get_fg_root();
// load in the texture data
int num = (int)(sg_random() * 5.0 + 1.0);
char num_str[5];
tpath.append( "Textures/Splash" );
tpath.concat( num_str );
tpath.concat( ".png" );
- } else
- tpath.append( splash_texture );
+ }
osg::Texture2D* splashTexture = new osg::Texture2D;
splashTexture->setImage(osgDB::readImageFile(tpath.c_str()));
text->setPosition(osg::Vec3(0, -0.92, 0));
text->setAlignment(osgText::Text::CENTER_CENTER);
SGPropertyNode* prop = fgGetNode("/sim/startup/splash-progress-text", true);
+ prop->setStringValue("initializing");
text->setUpdateCallback(new FGSplashTextUpdateCallback(prop));
geode->addDrawable(text);
text->setPosition(osg::Vec3(0, 0.92, 0));
text->setAlignment(osgText::Text::CENTER_CENTER);
prop = fgGetNode("/sim/startup/program-name", "FlightGear");
- delete namestring;
text->setUpdateCallback(new FGSplashTextUpdateCallback(prop));
geode->addDrawable(text);
// Initialize the splash screen
void fgSplashInit () {
- SG_LOG( SG_GENERAL, SG_INFO, "Initializing splash screen" );
+ SG_LOG( SG_VIEW, SG_INFO, "Initializing splash screen" );
globals->get_renderer()->splashinit();
- fgRequestRedraw();
}
void fgSplashProgress ( const char *text ) {
- SG_LOG( SG_GENERAL, SG_INFO, "Splash screen progress " << text );
+ SG_LOG( SG_VIEW, SG_INFO, "Splash screen progress " << text );
fgSetString("/sim/startup/splash-progress-text", text);
- fgRequestRedraw();
}