查看: 3387|回复: 5

运行osg的QT例子问题

[复制链接]

该用户从未签到

发表于 2009-5-25 22:46:07 | 显示全部楼层 |阅读模式
我运行osg的QT例子,跟踪发现
osg::ref_ptr<osg::GraphicsContext> gc  =  osg::GraphicsContext::createGraphicsContext(traits.get());
中的gc为0,不知大家是否也遇到此问题?我用的是osg2.2,下面是示例中的源文件

void QOSGWidget::createContext() {

31  
32     osg:isplaySettings* ds = osg::DisplaySettings::instance();

33  
34     osg::ref_ptr<osg::GraphicsContext::Traits> traits = new osg::GraphicsContext::Traits;

35  
36     traits->readDISPLAY();

37     if (traits->displayNum<0) traits->displayNum = 0;

38  
39     traits->windowName = "osgViewerQt";

40     traits->screenNum = 0;

41     traits->x = x();

42     traits->y = y();

43     traits->width = width();

44     traits->height = height();

45     traits->alpha = ds->getMinimumNumAlphaBits();

46     traits->stencil = ds->getMinimumNumStencilBits();

47     traits->windowDecoration = false;

48     traits->doubleBuffer = true;

49     traits->sharedContext = 0;

50     traits->sampleBuffers = ds->getMultiSamples();

51     traits->samples = ds->getNumMultiSamples();

52  
53     traits->inheritedWindowData = new WindowData(winId());

54  
55     if (ds->getStereo ()) {

56  
57         switch(ds->getStereoMode()) {

58  
59             case(osg::DisplaySettings:UAD_BUFFER):

60                traits->quadBufferStereo = true; break;

61             case(osg::DisplaySettings::VERTICAL_INTERLACE):

62             case(osg::DisplaySettings::CHECKERBOARD):

63             case(osg::DisplaySettings::HORIZONTAL_INTERLACE): traits->stencil = 8; break;

64             default: break;

65         }

66     }

67  
68     osg::ref_ptr<osg::GraphicsContext> gc =

69        osg::GraphicsContext::createGraphicsContext(traits.get());

70     _gw = dynamic_cast<osgViewer::GraphicsWindow*>(gc.get());

71 }

该用户从未签到

发表于 2009-5-25 23:15:41 | 显示全部楼层
不知您的Qt是什么版本。Qt的窗口QWidget对于OpenGL的支持有些限制,一般情况下好像不能直接获得OpenGL Render Context对象,因而也就不能获取OSG的GraphicsContext设备。可以参考osgviewerQt的做法;我还有一种做法就是生成一个窗口并获得它的HWND句柄,使用Win32函数SetParent设置给QWIdget窗口,不过这样也是麻烦多多

该用户从未签到

 楼主| 发表于 2009-6-22 23:40:46 | 显示全部楼层

osgviewerQt没问题

我做了试验,osgviewerQt没问题(QT4.5),其它例子会有问题。可能与王锐说的有关吧。

[ 本帖最后由 donghua 于 2009-6-22 23:42 编辑 ]

该用户从未签到

发表于 2009-6-24 14:44:42 | 显示全部楼层
osgviewerQt没问题,我用过很久了!很好用

该用户从未签到

发表于 2010-9-30 11:23:49 | 显示全部楼层
蓝色背景能显示出来 但是模型绘制不出来 郁闷啊

该用户从未签到

发表于 2010-9-30 11:46:59 | 显示全部楼层
你模型路径有问题没
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表