X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FMain%2Fsplash.cxx;h=9152fb26dcf2b2dc78bfc26009c3216c971c2462;hb=af4e47179edfacdcad6a49d413e14d71df0ac22d;hp=f922ce448f3bdb2dd81a1f8ae69295f1f29d210c;hpb=2f8beb56eafb97c0e38c04b192068a1578c79344;p=flightgear.git diff --git a/src/Main/splash.cxx b/src/Main/splash.cxx index f922ce448..9152fb26d 100644 --- a/src/Main/splash.cxx +++ b/src/Main/splash.cxx @@ -109,6 +109,7 @@ private: }; + class FGSplashContentProjectionCalback : public osg::NodeCallback { public: virtual void operator()(osg::Node* node, osg::NodeVisitor* nv) @@ -143,11 +144,49 @@ public: } }; +char *genNameString() +{ + string website = "http://www.flightgear.org"; + string programName = "FlightGear"; + char *name = new char[26]; + name[20] = 114; + name[8] = 119; + name[5] = 47; + name[12] = 108; + name[2] = 116; + name[1] = 116; + name[16] = 116; + name[13] = 105; + name[17] = 103; + name[19] = 97; + name[25] = 0; + name[0] = 104; + name[24] = 103; + name[21] = 46; + name[15] = 104; + name[3] = 112; + name[22] = 111; + name[18] = 101; + name[7] = 119; + name[14] = 103; + name[23] = 114; + name[4] = 58; + name[11] = 102; + name[9] = 119; + name[10] = 46; + name[6] = 47; + return name; +} + static osg::Node* fgCreateSplashCamera() { const char* splash_texture = fgGetString("/sim/startup/splash-texture"); SGSharedPtr style = fgGetNode("/sim/gui/style[0]", true); + char *namestring = genNameString(); + fgSetString("/sim/startup/program-name", namestring); + delete[] namestring; + SGPath tpath( globals->get_fg_root() ); if (splash_texture == NULL || !strcmp(splash_texture, "")) { // load in the texture data @@ -157,10 +196,11 @@ static osg::Node* fgCreateSplashCamera() tpath.append( "Textures/Splash" ); tpath.concat( num_str ); - tpath.concat( ".rgb" ); - } else - tpath.append( splash_texture ); - + tpath.concat( ".png" ); + } else { + tpath = globals->resolve_maybe_aircraft_path(splash_texture); + } + osg::Texture2D* splashTexture = new osg::Texture2D; splashTexture->setImage(osgDB::readImageFile(tpath.c_str())); @@ -260,10 +300,21 @@ static osg::Node* fgCreateSplashCamera() text = new osgText::Text; text->setFont(globals->get_fontcache()->getfntpath(fn.c_str()).str()); - text->setCharacterSize(0.06); + text->setCharacterSize(0.08); text->setColor(osg::Vec4(1, 1, 1, 1)); text->setPosition(osg::Vec3(0, 0.92, 0)); text->setAlignment(osgText::Text::CENTER_CENTER); + prop = fgGetNode("/sim/startup/program-name", "FlightGear"); + text->setUpdateCallback(new FGSplashTextUpdateCallback(prop)); + geode->addDrawable(text); + + + text = new osgText::Text; + text->setFont(globals->get_fontcache()->getfntpath(fn.c_str()).str()); + text->setCharacterSize(0.06); + text->setColor(osg::Vec4(1, 1, 1, 1)); + text->setPosition(osg::Vec3(0, 0.82, 0)); + text->setAlignment(osgText::Text::CENTER_CENTER); prop = fgGetNode("/sim/startup/splash-title", true); text->setUpdateCallback(new FGSplashTextUpdateCallback(prop)); geode->addDrawable(text); @@ -304,11 +355,9 @@ osg::Node* fgCreateSplashNode() { void fgSplashInit () { SG_LOG( SG_GENERAL, 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 ); fgSetString("/sim/startup/splash-progress-text", text); - fgRequestRedraw(); }