2010-07-27 42 views
3

我有一个使用GLUT进行OpenGL渲染的程序。现在我需要它在MFC项目中,以便它可以与另一个程序组件一起工作。更改GLUT调用以使用MFC/C++

我已经按照这个教程:http://www.codeguru.com/cpp/g-m/opengl/openfaq/article.php/c10975__1/Setting-Up-OpenGL-in-an-MFC-Control.htm

我打电话,这是过剩显示回调时,计时器火灾,但是这不工作,因为渲染取决于事情发生在过剩闲置回调函数。我不明白我应该在MFC程序中调用GLUT空闲回调的位置。是否有我应该为之制定的单独的事件处理程序?如果是,哪个事件?还是我在做其他事情完全错误?我对OpenGL相当熟悉,但这是我第一次使用MFC,所以我可能会犯这个错误。

非常感谢您的时间;对此,我真的非常感激!

回答

2

我刚刚浏览了您链接的教程;第二页,内容大致如下,可以发现在的东西(我清理代码一点点):

void COpenGLControl::OnTimer(UINT nIDEvent) 
{ 
    if(nIDEvent==1) 
    { 
     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);  
     oglDrawScene(); 
     // try to insert your idle function code here 
     SwapBuffers(hdc);  
    } 
    CWnd::OnTimer(nIDEvent); 
} 

所以,基本上这是本教程所建议的替代glutIdleFunc。我只是试图在呼叫SwapBuffers之前插入空闲函数中调用的代码。

我希望有帮助。

+0

我认为这是正常工作。非常感谢! – laurenelizabeth 2010-07-27 15:57:29