我想在Visual Studio 2010中运行下面的C++ opengl代码。我使用openglut作为opengl实用工具包。OpenGL跳过Visual Studio的主要功能
#include <iostream>
#include <gl\openglut.h>
using std::cout;
using std::endl;
void RenderScene()
{
glClear(GL_COLOR_BUFFER_BIT);
glFlush();
}
void SetupRC()
{
glClearColor(0, 0, 1.0f, 1.0f);
}
int main(int argc, char* argv[])
{
cout << "Test1" << endl;
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
glutCreateWindow("Simple");
glutDisplayFunc(RenderScene);
SetupRC();
glutMainLoop();
cout << "Test2" << endl;
return 0;
}
代码编译正确,但是当我没有调试运行时,控制台上没有显示任何内容。当我在第一个cout语句创建一个断点并运行调试时,它不会停在断点处。它似乎在跳过主要功能。在我注释掉2个cout语句和干净的解决方案之间的过剩,gl语句之后,它的行为是正确的(停在断点处)。如果我没有清理解决方案,它的行为不正确,但我看到Visual Studio在执行更改后编译了代码。这些奇怪的行为只发生在我包含opengl代码的时候。正常更改后,我不需要清理解决方案。这是什么原因?
不贪恋有自己的主要方法吗?你作为暗示者,是否应该实施某些其他方法? (从记忆角度讲,自从我看了Glut已经很长时间了,所以可能完全错误/想到不同的框架......) – TJMonk15
我是opengl的新手,但我直接从这本书中学习了这个例子“OpenGL SuperBible第4版“,所以它应该是正确的。 –
@ TJMonk15:没有GLUT不提供主菜单。 – datenwolf