Realize viewer explicitly
The osgViewer needs to be "realized" so that, among other things, threading will start. This is normally done by osgViewer::run, but we don't call that. Don't realize graphics contexts; Let osgViewer code do it. This way osgViewer::isRealized returns the correct answer.
This commit is contained in:
parent
862f59aded
commit
f0bfb4d137
2 changed files with 2 additions and 2 deletions
|
@ -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;
|
||||
|
|
|
@ -170,6 +170,8 @@ void fgOSMainLoop()
|
|||
ref_ptr<FGEventHandler> manipulator
|
||||
= globals->get_renderer()->getEventHandler();
|
||||
viewer->setReleaseContextAtEndOfFrameHint(false);
|
||||
if (!viewer->isRealized())
|
||||
viewer->realize();
|
||||
while (!viewer->done()) {
|
||||
fgIdleHandler idleFunc = manipulator->getIdleHandler();
|
||||
fgDrawHandler drawFunc = manipulator->getDrawHandler();
|
||||
|
|
Loading…
Reference in a new issue