Quiero representar mi escena en un hilo y luego ajustar el resultado en una ventana propiedad de otro hilo. Para evitar leer el framebuffer de vuelta a la memoria de la CPU, me gustaría utilizar un objeto framebuffer. Hasta ahora no he podido hacer que esto funcione (textura blanca), lo que me hace creer que esto no es compatible con opengl.¿Es posible compartir un objeto opengl framebuffer entre contextos/hilos?
- ¿Es posible compartir objetos framebuffer entre diferentes contextos?
- ¿Es posible compartir un objeto framebuffer entre diferentes hilos, dado que el objeto solo está vinculado por un hilo a la vez?
Si alguien me puede indicar dónde se describe esto en la documentación, sería una ventaja.
Se otorgará una recompensa a cualquiera por un código de muestra que funcione, vivo o muerto :) o, al menos, una guía paso a paso cómo configurar un intercambio de FBO o implementarlo utilizando una textura y un buffer de representación. – Suma
@Suma Compartir texturas es específico de la plataforma. En Windows, se hace con wglShareLists(), que debe invocarse antes de generar la (s) textura (s) que se adjuntan a su FBO con glFramebufferTexture(). Según tengo entendido, debería poder usar esta textura de su otro contexto, incluso si su implementación/versión de OpenGL no le permite compartir el FBO directamente. – Plow
Sí, entiendo esto, sin embargo, no pude encontrar un ejemplo completo y funcional de cómo exactamente uno haría esto, y al experimentar con él en base a lo que ya sé, hasta ahora no pude hacerlo bien. Cuando busqué en Google encontré esta o varias preguntas similares en varios foros, pero la respuesta nunca fue satisfactoria. (Al igual que con el OP, ahora estoy interesado en Windows). – Suma