我要发帖 回复

正式会员

3

主题

40

积分

0

专家分

:

私信
发表时间 : 2008-12-1 13:18:15 | 浏览 : 1291    评论 : 1
Win32下VP帧循环常用框架一般采用两种方式,1 定时器方式,2 线程方式,这两种方式有一个共同点,场景基本上达到实时渲染, 系统硬件资源消耗较大(论坛上经常有人问为什么cpu总是100%),而通常我们相当一部分应用仅仅只是借助VP作为表现的软件平台,无需要实时渲染(比如立体输出),为此,在需要的时候才刷新场景,那么在MFC中,其框架为:
1 重载App的Run函数

          ::PeekMessage(&(pState->m_msgCur), NULL, NULL, NULL, PM_NOREMOVE) ;
       
        while( WM_QUIT != (pState->m_msgCur).message  )
        {
                bGotMsg = PeekMessage( &(pState->m_msgCur), NULL, 0U, 0U, PM_REMOVE );

                if( bGotMsg )
                {
                        TranslateMessage( &(pState->m_msgCur) );
                        DispatchMessage(&(pState->m_msgCur));
                }
                else
                {
                        if (! m_pMainWnd->IsWindowVisible() )
                        {
                                WaitMessage() ;
                        }
                        else
                        {

                                pView->RenderVP() ;
                        }
                }
        }



2 然后在view中

RenderVP()
{
     if (m_bVPisRunning)
        {
                ...
                int frameNum = vpKernel::instance()->beginFrame();
                assert(frameNum != 0);

                int result = vpKernel::instance()->endFrame();
                assert(result == vsgu::SUCCESS);
                                           ....
        }
}

最近VR访客

menghewei 评论于2008-12-1 13:37:00
xue xi ...
thanks!!!!!!!!!!!!!!!!!!!!

手机版|VR开发网 ( 津ICP备18009691号 ) 统计 网安备12019202000257

GMT+8, 2020-10-20 12:11 AM

返回顶部