|
我按照《StepIntoOpenSceneGraph》中写了个OSG和MFC结合的项目,加载了一个牛进去并且鼠标拖动使其旋转,发现不进行任何操作时这个场景停止渲染了。也就是空闲渲染时没有调用viewer->frame();
这个空闲渲染中写的代码:-
- BOOL CosgFreeApp::OnIdle(LONG lCount)
- {
- // TODO: 在此添加专用代码和/或调用基类
- BOOL continue_processing = CWinApp::OnIdle(lCount) ;
- //把当前窗口转到渲染框架窗口,从而在空闲时间进行渲染
- CMainFrame* pFrame = dynamic_cast<CMainFrame*>(m_pMainWnd);
- //在空闲时将做渲染准备
- if (pFrame)
- {
- if (pFrame->PreToRen())
- return TRUE;
- }
- CWnd *pMainFrame=GetMainWnd();
- SendMessage(pFrame->m_wndCosgFreeViewer.GetSafeHwnd(),WM_LEFTVIEW,NULL,NULL);
- return continue_processing;
- }
复制代码 |
|