hintergrund Farbe in opengl
Möchte ich die Hintergrundfarbe des Fensters nach dem drücken der Taste, aber mein Programm funktioniert nicht, kann jemand mir sagen, warum, danke im Voraus
int main(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(800, 600);
glutInitWindowPosition(300,50);
glutCreateWindow("GLRect");
glClearColor(1.0f, 0.0f, 0.0f, 1.0f); <---
glutDisplayFunc(RenderScene);
glutReshapeFunc(ChangeSize);
glutMainLoop();
system("pause");
glClearColor(0.0f, 1.0f, 0.0f, 1.0f); <---
return 0;
}
- Nach dem drücken von "was" - button?
- Da
glutMainLoop()
nie wieder zurückkehren wird, wie Sie erwarten, zu erhalten, um Ihresystem("pause")
- Anweisung und die zweiteglClearColor
nennen? - wie kann ich mein code zu sehen, diesen Effekt?
Du musst angemeldet sein, um einen Kommentar abzugeben.
glClearColor
keine clearing selbst-es ist nur setzt, was die Farbe sein wird, wenn Sie eigentlich klar. Zu tun, die Lichtung selbst, müssen Sie rufen SieglClear
mit (mindestens)COLOR_BUFFER_BIT
.Edit: es ist schon Recht eine Weile her, seit ich verwendet, glut, so die details dieses könnte falsch sein, aber wenn der Speicher dient zum ändern der Bildschirmfarbe in Reaktion auf das drücken einer Taste auf der Tastatur, solltest du etwas wie das hier tun:
Im Grunde, Sie tun alle Ihre Zeichnung, in welcher Funktion Sie passieren zu
glutDisplayFunc
. Fast alles andere ändert nur den Zustand, dann ruftPostRedisplayFunc();
zu sagen, glut, dass das Fenster neu gezeichnet werden muss. Warnung: wie ich schon sagte, es ist schon eine Weile her, seit ich verwendet, glut und habe ich noch nicht getestet mit diesem code. Es zeigt die Allgemeine Struktur eines glut-Programms, um das beste aus meiner Erinnerung, aber nicht erwarten, dass es genau so funktioniert, wie Sie ist.Ich könnte mir vorstellen, Sie haben nicht einen OpenGL-Kontext an, die zeigen, dass Sie anrufen
glClearColor
.Aber...
...Ich habe noch nie verwendet glut vor, so dass ein kurzer Blick auf die docs deutet darauf hin, dass Sie tatsächlich einen Zusammenhang nach
glutCreateWindow
so vielleicht das ist es nicht.Als mein Kommentar auf deine Frage sagt, bin ich neugierig auf den zweiten Anruf zu
glClearColor
und wie Sie denken, Sie werden es erreichen. Das ist eher die Ursache des Problems. Zu tun, alles auf eine Taste drücken, ich glaube, Sie hätte registrieren Sie einen Rückruf mitglutKeyboardFunc
.