Je veux rendre ma scène dans un fil, puis écraser le résultat dans une fenêtre appartenant à un autre fil. Pour éviter de lire le framebuffer en mémoire cpu, je voudrais utiliser un objet framebuffer. Jusqu'à présent, je n'ai pas réussi à faire fonctionner cela (texture blanche), ce qui me fait croire que cela n'est pas supporté par opengl. Est-il possible de partager des objets framebuffer entre des contextes différents?Est-il possible de partager un objet framegl frame opengl entre contextes/threads?
- Est-il possible de partager des objets framebuffer entre différents contextes?
- Est-il possible de partager un objet framebuffer entre différents threads, étant donné que l'objet n'est lié que par un thread à la fois?
Si quelqu'un peut pointer vers où cela est décrit dans la documentation, ce serait un bonus.
Une prime sera accordée à quiconque pour un exemple de code de travail - mort ou vivant :) - ou au moins un guide étape par étape comment configurer un partage FBO, ou l'implémenter en partageant une texture et renderbuffer. – Suma
@Suma Partage de textures est spécifique à la plate-forme. Dans Windows, il est fait avec wglShareLists(), qui doit être appelé avant de générer la texture (s) qui sont attachés à votre FBO avec glFramebufferTexture(). Ma compréhension est que vous devriez être capable d'utiliser cette texture de votre autre contexte même si votre implémentation/version OpenGL ne vous permet pas de partager le FBO directement. – Plow
Oui, je comprends cela, mais je n'ai pas réussi à trouver un exemple complet et concret de la façon de le faire, et en l'expérimentant sur la base de ce que je sais déjà, je n'ai pas réussi à le faire correctement. Lors de Google, j'ai trouvé cette question ou une question similaire à plusieurs reprises sur divers forums, mais la réponse n'a jamais été satisfaisante. (Comme avec le PO, je suis intéressé par Windows maintenant). – Suma