|
前面我发帖 关于mfc显示 没有填满屏幕的问题!见连接:
http://bbs.osgchina.org/forum.ph ... &extra=page%3D1
后面我自己写了个单文档的mfc,在走查时发现这个问题:
- osg::ref_ptr<osg::Referenced> windata = new osgViewer::GraphicsWindowWin32::WindowData(m_hWnd);
- // Setup the traits parameters
- traits->x = 0;
- traits->y = 0;
- traits->width = rect.right - rect.left;
- traits->height = rect.bottom - rect.top;
- traits->windowDecoration = false;
- traits->doubleBuffer = true;
- traits->sharedContext = 0;
- traits->setInheritedWindowPixelFormat = true;
- traits->inheritedWindowData = windata;
- // Create the Graphics Context
- osg::GraphicsContext* gc = osg::GraphicsContext::createGraphicsContext(traits.get());
复制代码
当traits 过了这个函数osg::GraphicsContext::createGraphicsContext(traits.get())后,他的x y 发生了变化!
导致在这个过程中 camera->setViewport(new osg::Viewport(traits->x, traits->y, traits->width, traits->height));
xy位置发生偏移,才造成 显示上的那个问题!!后面把osg::Viewport(0, 0, traits->width...修改后就好了!
不知道是什么原因。。。
我的osg版本:osg3.4.0rc3和develop版本也是这个问题!!
|
|