Я пытаюсь запустить следующий код opengl c ++ в Visual Studio 2010. Я использую openglut в качестве набора утилит opengl.
#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 и запускаю с отладкой, он не останавливается на точке останова. Кажется, пропускает основную функцию. После того, как я закомментировал перенасыщение операторов gl между 2 утверждениями cout и чистым решением, он ведет себя правильно (останавливается на точке останова). Если я не очищаю решение, оно ведет себя неправильно, но я вижу, что Visual Studio компилирует код после внесения изменений. Такое странное поведение происходит только тогда, когда я включаю код opengl. Мне не нужно чистить раствор после того, как я внесу изменения в обычном режиме. Что является причиной этого?