Ho un compito per implementare il renderer OpenGL offscreen sia per Window che Linux in C++. Ho già una versione già scritta in Java usando LWJGL lib.There ho usato l'oggetto PBuffer, che sotto la cappa crea Pbuffer basato sul sistema operativo utilizzato. Prima ho pensato di ri-implementare la logica di creazione completa di PBuffer proprio come ho fatto nella sorgente nativa di LWJGL. Poi ho letto il this post su StackOverflow.com dove è suggerito l'uso della creazione di contesto standard, diciamo usando GLFW (che è multipiattaforma) ma non per creare la finestra effettiva. È la strada giusta da percorrere? Quali sono i pro ei contro contro l'uso di Pbuffer in questo caso?Creazione del contesto off-platform OpenGL multipiattaforma
Aggiornamento: voglio solo sottolineare che uso FBO per rendere i fotogrammi in modo il mio problema qui non è come eseguire il rendering in modalità fuori campo, ma come creare un contesto senza finestra sia in Windows e Linux OS.
Esattamente, suppongo di utilizzare gli FBO. Gli FBO non creano il contesto GL, ecco perché sto facendo questa domanda. –
Se si desidera l'accelerazione hardware, almeno su Windows, non è possibile creare un contesto OpenGL senza prima creare una finestra (nascosta). Questo perché [wglCreateContext] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd374379 (v = vs.85) .aspx) prevede un Device Context (DC) e solo una finestra di DC può avere un formato pixel accelerato hardware assegnato. In particolare, non è possibile eseguire il rendering con OpenGL con accelerazione hardware in una memoria DC] (http://www.opengl.org/discussion_boards/showthread.php/161374-Why-can-ti-write-to-a-memory-device -context? p = 1143832 & viewFull = 1 # post1143832). – sschuberth
Quindi intendi la versione di Windows di PBuffer in LWJGL crea comunque la finestra e quindi la rimuove? –