查看: 641|回复: 1

(HANDLE)_beginthread(&cOSG::Render,0,m_osg);//创建的osg,如何释放呢?

[复制链接]

该用户从未签到

发表于 2015-1-6 13:00:00 | 显示全部楼层 |阅读模式

  1. void CJuly9_View::OnInitialUpdate()
  2. {
  3.         CView::OnInitialUpdate();
  4.         m_osg->InitOSG("cessna.osg");
  5.         m_ThreadHandle = (HANDLE)_beginthread(&cOSG::Render,0,m_osg);
  6. }
复制代码


  1. void cOSG::Render(void* ptr)
  2. {
  3.     cOSG* osg = (cOSG*)ptr;

  4.     osgViewer::Viewer* viewer = osg->getViewer();

  5.     // You have two options for the main viewer loop
  6.     //      viewer->run()   or
  7.     //      while(!viewer->done()) { viewer->frame(); }

  8.     //viewer->run();
  9.     while(!viewer->done())
  10.     {
  11.         osg->PreFrameUpdate();
  12.         viewer->frame();
  13.         osg->PostFrameUpdate();
  14.         //Sleep(10);         // Use this command if you need to allow other processes to have cpu time
  15.     }

  16.     // For some reason this has to be here to avoid issue:
  17.     // if you have multiple OSG windows up
  18.     // and you exit one then all stop rendering
  19.     //AfxMessageBox("Exit Rendering Thread");

  20.     _endthread();
  21. }
复制代码

该用户从未签到

发表于 2015-1-6 18:18:48 | 显示全部楼层
那你不直接CloseHandle()就得了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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