查看: 1373|回复: 1

关于callback的问题

[复制链接]

该用户从未签到

发表于 2010-7-23 20:08:29 | 显示全部楼层 |阅读模式
根据osgviewerMFC,我在
void OsgImporter::InitCamaConfig()
{
    CRect rect;
    ::GetWindowRect(m_hWnd,rect);
    viewer=new osgViewer::Viewer();
viewer->addEventHandler(new osgViewer::StatsHandler);


    osg::ref_ptr<osg::GraphicsContext::Traits> traits=new osg::GraphicsContext::Traits;
    osg::ref_ptr<osg::Referenced> windata=new osgViewer::GraphicsWindowWin32::WindowData(m_hWnd);

    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;

    osg::GraphicsContext* gc=osg::GraphicsContext::createGraphicsContext(traits.get());

    osg::ref_ptr<osg::Camera> camara=new osg::Camera();
    camara->setGraphicsContext(gc);
    camara->setViewport(new osg::Viewport(traits->x,traits->y,traits->width,traits->height));

    viewer->addSlave(camara.get());
    viewer->setCameraManipulator(keyswitch);
    viewer->setSceneData(root.get());
    viewer->addEventHandler(new UseEventHandler);          //!!!!!!!!!!!!
    viewer->realize();

    double fovy,aspectRatio,z1,z2;
    viewer->getCamera()->getProjectionMatrixAsPerspective(fovy,aspectRatio,z1,z2);
    aspectRatio=double(traits->width)/double(traits->height);
    viewer->getCamera()->setProjectionMatrixAsPerspective(fovy,aspectRatio,z1,z2);
}

之中在
viewer->setSceneData(root.get());
下加的一个事件回调
viewer->addEventHandler(new UseEventHandler);  
出了问题
编译连接都能通过,之后程序就停止响应了
调试后出现file:///C:/Users/%E5%88%98%E5%AE%9D/Desktop/%E6%8D%95%E8%8E%B7.PNG内存冲突以及以下提示
>    osg55-osgGA.dll!67ca19bb()     
     [下面的框架可能不正确和/或缺失,没有为 osg55-osgGA.dll 加载符号]   
     osg55-osgViewer.dll!66c5efab()     
     kernel32.dll!77a3f1cc()     
     msvcr90.dll!6ccf38da()     
     msvcr90.dll!6ccb332b()     
     kernel32.dll!77a41194()     
     ntdll.dll!77dcb3f5()     
     ntdll.dll!77dcb3c8()

该用户从未签到

发表于 2010-7-24 00:43:49 | 显示全部楼层
。。。。。。你调试进入UseEventHandler事件消息看看具体什么情况,,执行了哪些代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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