Hi,

Finally I got the answer, for one thing:


Code:
    // Init the Windata Variable that holds the handle for the Window to 
display OSG in.
    osg::ref_ptr<osgViewer::GraphicsWindowIOS::WindowData> windowData = new 
osgViewer::GraphicsWindowIOS::WindowData(self->osgView, 
osgViewer::GraphicsWindowIOS::WindowData::IGNORE_ORIENTATION, windowFactor);
    windowData->setCreateTransparentView(true);
    
    // Init the Windata Variable that holds the handle for the Window to 
display OSG in.
    osg::ref_ptr<osg::Referenced> windata = windowData;
    
    // Setup the traits parameters
    traits->x = 0;
    traits->y = 0;
    traits->width = m_glview.frame.size.width*windowFactor;
    traits->height = m_glview.frame.size.height*windowFactor;
    traits->depth = 16; //keep memory down, default is currently 24
    traits->alpha = 1;
    //traits->stencil = 8;
    traits->windowDecoration = false;
    traits->doubleBuffer = true;
    traits->sharedContext = 0;
    traits->setInheritedWindowPixelFormat = true;
    //traits->windowName = "osgViewer";
    
    traits->inheritedWindowData = windata;
    
    // Create the Graphics Context
    osg::ref_ptr<osg::GraphicsContext> graphicsContext = 
osg::GraphicsContext::createGraphicsContext(traits.get());



The key point is to set 
windowData->setCreateTransparentView(true);
and
traits->alpha = 1;

That works for me on OSG 3.2.1. For the older version, you have to modify the 
code like this:
http://stackoverflow.com/questions/1394934/iphone-layering-a-transparent-opengl-view-on-top-of-a-uiview

Thank you!

Cheers,
Liu

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=61574#61574





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

Reply via email to