2013-09-25 1 views
1

Я использую образец кода Sumanta Guha, и я пытаюсь создать два окна. Использование следующего кода:Проблемы с OpenGL с GLUT_DOUBLE и двумя окнами

int main(int argc, char **argv) 
{ 
glutInit(&argc, argv); 
glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB); 

// First top-level window definition. 
glutInitWindowSize(250, 500); 
glutInitWindowPosition(100, 100); 

// Create the first window and return id. 
id1 = glutCreateWindow("windows.cpp - window 1"); 

// Initialization, display, and other routines of the first window. 
setup1(); 
glutDisplayFunc(drawScene1); 
glutReshapeFunc(resize1); 
glutKeyboardFunc(keyInput); // Routine is shared by both windows. 

// Second top-level window definition. 
glutInitWindowSize(250, 500); 
glutInitWindowPosition(400, 100); 

// Create the second window and return id. 
id2 = glutCreateWindow("windows.cpp - window 2"); 

// Initialization, display, and other routines of the second window. 
setup2(); 
glutDisplayFunc(drawScene2); 
glutReshapeFunc(resize2); 
glutKeyboardFunc(keyInput); // Routine is shared by both windows. 

glutMainLoop(); 

return 0; 
} 

Я использую Windows 7, и обычно он должен отображать два окна. Но, как вы можете видеть, только одно окно отображается правильно, а другое, похоже, работает не так хорошо. Есть ли дополнительные шаги, которые я должен предпринять, кроме GLUT_DOUBLE и swap swap?

enter image description here

ответ

1

Существуют ли дополнительные шаги, которые я должен принять, кроме GLUT_DOUBLE и буфер подкачки?

Поскольку вы создаете несколько окон, вы должны вызвать glutSetWindow() в своих обратных вызовах.

freeglut имеет расширение (которое не работает), чтобы создать общий контекст opengl, но первоначальный избыток не поддерживает его.

Смежные вопросы