diff --git a/src/Main/WindowBuilder.cxx b/src/Main/WindowBuilder.cxx index 64b38021d..79fff968f 100644 --- a/src/Main/WindowBuilder.cxx +++ b/src/Main/WindowBuilder.cxx @@ -196,7 +196,6 @@ GraphicsWindow* WindowBuilder::buildWindow(const SGPropertyNode* winNode) if (traitsSet) { GraphicsContext* gc = GraphicsContext::createGraphicsContext(traits); if (gc) { - gc->realize(); GraphicsWindow* window = WindowSystemAdapter::getWSA() ->registerWindow(gc, traits->windowName); if (drawGUI) @@ -223,7 +222,6 @@ GraphicsWindow* WindowBuilder::getDefaultWindow() traits->windowName = "FlightGear"; GraphicsContext* gc = GraphicsContext::createGraphicsContext(traits); if (gc) { - gc->realize(); defaultWindow = WindowSystemAdapter::getWSA() ->registerWindow(gc, defaultWindowName); return defaultWindow; diff --git a/src/Main/fg_os_osgviewer.cxx b/src/Main/fg_os_osgviewer.cxx index 8badbd6d1..058e31469 100644 --- a/src/Main/fg_os_osgviewer.cxx +++ b/src/Main/fg_os_osgviewer.cxx @@ -170,6 +170,8 @@ void fgOSMainLoop() ref_ptr manipulator = globals->get_renderer()->getEventHandler(); viewer->setReleaseContextAtEndOfFrameHint(false); + if (!viewer->isRealized()) + viewer->realize(); while (!viewer->done()) { fgIdleHandler idleFunc = manipulator->getIdleHandler(); fgDrawHandler drawFunc = manipulator->getDrawHandler();