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