1

Sumanta Guha のコード サンプルを使用しており、2 つのウィンドウを作成しようとしています。次のコードを使用します。

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 を使用していますが、通常は 2 つのウィンドウが表示されます。しかし、ご覧のとおり、適切に表示されるウィンドウは 1 つだけで、もう 1 つのウィンドウはうまく機能していないようです。GLUT_DOUBLE とバッファ スワップ以外に必要な追加の手順はありますか?

ここに画像の説明を入力

4

1 に答える 1

1

GLUT_DOUBLE とバッファ スワップ以外に必要な追加の手順はありますか?

複数のウィンドウを作成しているので、コールバックでglutSetWindow()を呼び出す必要があります。

freeglut には、共有 opengl コンテキストを作成するための拡張 (機能しません) がありますが、元の glut はそれをサポートしていません。

于 2013-09-25T17:26:56.080 に答える