Hi, I was trying to enable QUAD_BUFFER stereo in my OSG based application
but failed. OSG reports error message saying "error reported in OpenGL after
Renderbin:draw()".

I am using osgViewer::setUpViewerAsEmbeddedInWindow() to use OSG with
fox-toolkit:

//parepare fox OpenGL canvas
m_pGLVisual = new FXGLVisual(getApp(), VISUAL_DOUBLEBUFFER|VISUAL_BEST);
m_pGLCanvas = new FXGLCanvas(pGLFrame, m_pGLVisual, this, ID_CANVAS,
LAYOUT_FILL);

//create osgViewer object and enable stereo
    m_pGLCanvas->makeCurrent();

    // create the view of the scene.
    m_osgViewer = new osgViewer::Viewer;
    m_osgGraphicsWindow =
m_osgViewer->setUpViewerAsEmbeddedInWindow(0,0,4,3);
    m_osgViewer->setCameraManipulator(new osgGA::TrackballManipulator);
    m_osgViewer->addEventHandler(new osgViewer::StatsHandler);
    m_osgViewer->getCamera()->setClearColor(osg::Vec4f(1.0f, 1.0f, 1.0f,
1.0f));

    osg::DisplaySettings* pDS = new osg::DisplaySettings;
    pDS->setStereo(true);
    pDS->setStereoType(osg::DisplaySettings::QUAD_BUFFER);
    m_osgViewer->setDisplaySettings(pDS);

    m_osgViewer->realize();

    m_osgGraphicsWindow->resized(m_pGLCanvas->getX(), m_pGLCanvas->getY(),
m_pGLCanvas->getWidth(), m_pGLCanvas->getHeight());
    m_osgGraphicsWindow->getEventQueue()->windowResize(
    m_pGLCanvas->getX(), m_pGLCanvas->getY(), m_pGLCanvas->getWidth(),
m_pGLCanvas->getHeight());

    m_pGLCanvas->makeNonCurrent();

Any help on this? Maybe this is not the correct way to osgViewer with
stereo? Or should I use osgViewer in its own window in order to enable
QUAD_BUFFER stereo? I can pass --stereo QUAD_BUFFER to the osgViewer
application to enable stereo on my machine. So it must be something wrong in
my code....:(

Many thanks,
Yanling
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to