我有一个使用 GLUT 进行 OpenGL 渲染的程序。现在我需要它位于 MFC 项目内部,以便它可以与另一个程序组件一起使用。
我已经按照这个教程进行操作:http://www.codeguru.com/cpp/g-m/opengl/openfaq/article.php/c10975__1/Setting-Up-OpenGL-in-an-MFC-Control.htm http://www.codeguru.com/cpp/g-m/opengl/openfaq/article.php/c10975__1/Setting-Up-OpenGL-in-an-MFC-Control.htm
当计时器触发时,我正在调用作为 GLUT 显示回调的函数,但这不起作用,因为渲染取决于 GLUT 空闲回调中发生的事情。我不明白应该在 MFC 程序中的哪里调用 GLUT 空闲回调。我是否应该为其创建一个单独的事件处理程序,如果是,是哪个事件?或者我做了其他完全错误的事情?我对 OpenGL 相当熟悉,但这是我第一次使用 MFC,所以我可能在这方面犯了错误。
非常感谢您抽出时间;对此,我真的非常感激!
我刚刚浏览了您链接到的教程;在第二页上,可以找到以下内容(我稍微清理了代码):
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
.
我希望这有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)