#include <simgear/compiler.h>
-#ifdef HAVE_WINDOWS_H
-# include <windows.h>
-#endif
-
#include <string>
#include <simgear/structure/exception.hxx>
#include <plib/pu.h>
-#include <Include/general.hxx>
#include <Main/main.hxx>
#include <Main/globals.hxx>
+#include <Main/locale.hxx>
#include <Main/fg_props.hxx>
-#include <Main/WindowSystemAdapter.hxx>
+#include <Viewer/WindowSystemAdapter.hxx>
#include <GUI/new_gui.hxx>
+#include <GUI/FGFontCache.hxx>
#include "gui.h"
#include "layout.hxx"
-using namespace osg;
+#include <osg/GraphicsContext>
+
using namespace flightgear;
puFont guiFnt = 0;
GUIInitOperation() : GraphicsContextOperation(std::string("GUI init"))
{
}
- void run(GraphicsContext* gc)
+ void run(osg::GraphicsContext* gc)
{
WindowSystemAdapter* wsa = WindowSystemAdapter::getWSA();
wsa->puInitialize();
FGFontCache *fc = globals->get_fontcache();
fc->initializeFonts();
puFont *GuiFont
- = fc->get(globals->get_locale()->getStringValue("font",
- "typewriter.txf"),
+ = fc->get(globals->get_locale()->getDefaultFont("typewriter.txf"),
15);
puSetDefaultFonts(*GuiFont, *GuiFont);
guiFnt = puGetDefaultLabelFont();
LayoutWidget::setDefaultFont(GuiFont, 15);
if (!fgHasNode("/sim/startup/mouse-pointer")) {
- // no preference specified for mouse pointer, attempt to autodetect...
- // Determine if we need to render the cursor, or if the windowing
- // system will do it. First test if we are rendering with
- // glide.
- // XXX Not bloody likely in 2008...
- if ( strstr ( general.get_glRenderer(), "Glide" ) ) {
- // Test for the MESA_GLX_FX env variable
- char *mesa_win_state = getenv( "MESA_GLX_FX" );
- if (mesa_win_state != NULL) {
- // test if we are fullscreen mesa/glide
- if ( (mesa_win_state[0] == 'f') ||
- (mesa_win_state[0] == 'F') ) {
- puShowCursor ();
- }
- }
- }
+ // no preference specified for mouse pointer
} else if ( !fgGetBool("/sim/startup/mouse-pointer") ) {
// don't show pointer
} else {
}
};
-ref_ptr<GUIInitOperation> initOp;
+osg::ref_ptr<GUIInitOperation> initOp;
}
-void guiStartInit()
+void guiStartInit(osg::GraphicsContext* gc)
{
- initOp = new GUIInitOperation;
- WindowSystemAdapter* wsa = WindowSystemAdapter::getWSA();
- GraphicsContext* gc = wsa->getGUIGraphicsContext();
- gc->add(initOp.get());
+ if (gc) {
+ initOp = new GUIInitOperation;
+ gc->add(initOp.get());
+ }
}
bool guiFinishInit()
{
if (!initOp.valid())
- return false;
+ return true;
if (!initOp->isFinished())
return false;
initOp = 0;