/ / OpenGL / OpenTK: zobrazenie FBO vykresleného na podklade v OpenGL-control - multithreading, opengl, opentk, fbo

OpenGL / OpenTK: zobrazenie FBO vykresleného na pozadí v OpenGL-control - multithreading, opengl, opentk, fbo

Používam OpenGL cez OpenTK a vykresľujemFramebufferObject vo vlákne pozadia. Teraz po každom vykreslenom rámčeku chcem zobraziť (časť) FBO v jednom alebo viacerých ovládacích prvkoch OpenGL v mojom používateľskom rozhraní.

Ako to funguje?

odpovede:

1 pre odpoveď č. 1

Máte dve možnosti:

  • Ak vaše ovládače podporujú zdieľanie kontextu, môžeteviazanie štruktúry FBO na ovládacích prvkoch OpenGL a zobrazenie priamo (väzba textúry, render quad, hotovo). Jednoduché a rýchle - jednoducho synchronizujte zobrazovanie s displejom.
  • Ak vaši vodiči nie sú, budete musieť prečítaťvýsledky vykresľovania do objektu bitmapy (alebo ekvivalentu) pomocou protokolu GL.ReadPixels. Potom ich môžete znova nahrať do iných ovládacích prvkov OpenGL ako textúry alebo ich zobraziť priamo na ovládacích prvkoch, ktoré nie sú OpenGL.

V predvolenom nastavení sa OpenTK vždy pokúša zdieľať kontexty. Bohužiaľ, ovládače Intel nepodporujú zdieľanie kontextu, takže nemôžete použiť prvý prístup tam.