Ich habe eine Aufgabe OpenScreen-Renderer für Windows und Linux in C++ zu implementieren.Ich habe eine solche Version bereits in Java mit LWJGL lib.Hier habe ich PBuffer-Objekt, das unter der Haube erstellt Pbuffer basierend auf dem verwendeten Betriebssystem. Zuerst dachte ich, die volle PBuffer Erstellungslogik zu re-implementieren, so wie ich es in nativen Quelle von LWJGL getan habe. Dann lese ich this Post auf StackOverflow.com, wo es vorgeschlagen wird, die Standardkontexterstellung, Nehmen wir an, wir verwenden GLFW (was plattformübergreifend ist), aber nicht um das eigentliche Fenster zu erstellen. Ist es der richtige Weg? Was sind Vor- und Nachteile gegen die Verwendung von Pbuffer in einem solchen Fall?Erstellen plattformübergreifender OpenGL-Offscreen-Kontext
Update: Ich möchte nur betonen, dass ich FBOs verwenden, um die Bilder zu machen, so hier mein Problem ist nicht, wie Off-Screen-Modus zu machen in, sondern wie einen Kontext, ohne Fenster zu schaffen sowohl in Windows- und Linux-Betriebssystemen.
Das stimmt, ich nehme an, FBOs zu verwenden. Aber FBOs erstellen keinen GL Kontext, deshalb stelle ich diese Frage. –
Wenn Sie Hardwarebeschleunigung möchten, können Sie zumindest unter Windows keinen OpenGL-Kontext erstellen, ohne zuerst ein (verborgenes) Fenster zu erstellen. Das liegt daran, dass [wglCreateContext] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd374379 (v = vs.85) .aspx) einen Gerätekontext (DC) und nur den DC eines Fensters erwartet kann ein hardwarebeschleunigtes Pixelformat zugewiesen bekommen. Insbesondere können Sie [nicht mit hardwarebeschleunigter OpenGL in einen Speicher-DC rendern] (http://www.opengl.org/discussion_boards/showthread.php/161374-Whi-can-ti-write-to-a-memory-device -kontext? p = 1143832 & viewfull = 1 # post1143832). – sschuberth
Also meinst du meine Windows-Version von PBuffer in LWJGL erstellt sowieso Fenster und entfernt es dann? –