Ich bin neu in der U/I-Programmierung, und ich versuche, mit OpenGL zu beginnen. Wenn ich ein Beispielprogramm ausführe, das ein neues OpenGL-Fenster mit GLUT erstellt, funktioniert es gut. Gut. Jedoch im Rahmen eines anderen Programms, wo ich reagieren Ereignisse Draw (unter Windows), mit einem Gerätekontext zu mir vorbei - und wo ich vielleicht nicht GLUT zur Verfügung haben - meine Verwirrung ist dies:Wie funktionieren OpenGL-Kontexte und Gerätekontexte?
Wann wird ein Gerätekontext erstellt und zerstört? Kann ich mich auf einen mir vorliegenden Gerätekontext beziehen oder nur auf einen Teil davon (und woher weiß ich das)?
Muss ich meinen eigenen OpenGL-Kontext erstellen und diesen zum Zeichnen verwenden, oder kann ich einen "aktuellen" OpenGL-Kontext verwenden? Muss ich den Kontext jedes Mal neu erstellen, wenn ein Zeichenereignis gesendet wird?
Im Grunde ist meine Frage, da eine Situation, wo ich „Zeichnen“ Ereignisse bin gesandt, wie oft ich versuchen, OpenGL Kontexte zu erstellen und wie sich dies auf die Schaffung/Zerstörung Zyklus von Gerätekontexten zusammen?
Großartig - ich denke, das beantwortet meine Frage. Dann wird der OpenGL-Kontext ziemlich gut mit dem DC in Verbindung gebracht, oder? Ich erinnere mich, dass ich gelesen habe, dass es nur einen Kontext pro Thread gibt. Ich nehme an, dass verschiedene Threads dann auch andere DCs haben werden? –
Das Threading-Problem ist anders - wenn Sie einen Domänencontroller erstellen, müssen Sie diesen Thread immer für alle Anrufe in diesem Domänencontroller verwenden. Im Allgemeinen bedeutet dies einen Grafik/Rendering-Thread pro Gerätekontext (dh pro Fenster). –