Ist es möglich, zu teilen, eine opengl-framebuffer-Objekt zwischen Kontexten/threads?

Möchte ich render meine Szene in einem thread, und dann blit das Ergebnis im Fenster besaß, durch einen anderen thread. Um zu vermeiden das Lesen der framebuffer des cpu-Speichers, ich möchte mit einem framebuffer-Objekt. So weit ich habe nicht in der Lage, diese zu arbeiten (weiß Struktur), das lässt mich glauben, dass dies nicht unterstützt opengl.

  1. Ist es möglich, zu teilen framebuffer-Objekte zwischen den verschiedenen Kontexten?
  2. Ist es möglich, zu teilen ein framebuffer-Objekt zwischen verschiedenen threads gegeben, dass das Objekt nur dann gebunden, ein thread zu einem Zeitpunkt?

Wenn jemand kann mir zeigen Sie mir, wo ist dies in der Dokumentation beschrieben, wäre das ein bonus.

  • Ein Kopfgeld zugesprochen wird jemand für einen funktionierenden Beispiel-code - tot oder lebendig 🙂 - oder zumindest eine Schritt-für-Schritt-Anleitung, wie Sie entweder setup ein FBO zu teilen, oder führen Sie mit teilen eine textur-und renderbuffer.
  • Austausch von Texturen ist Plattform-spezifisch. In Windows ist es getan mit wglShareLists(), die aufgerufen werden muss, bevor dem generieren der textur(en), die an Ihrem FBO mit glFramebufferTexture(). Mein Verständnis ist, dass Sie sollten in der Lage sein zu verwenden, diese textur aus Ihren anderen Kontext, auch wenn Ihre OpenGL-implementation/version erlaubt es Ihnen nicht, zu teilen FBO direkt.
  • Ja, ich verstehe das, aber ich war nicht in der Lage zu finden, ein komplettes und lauffähiges Beispiel wie genau würde man dies tun, und beim Experimentieren mit es basiert auf dem, was ich bereits weiß, ich war nicht in der Lage, es richtig zu machen, so weit. Beim Googlen habe ich gefunden das diese oder eine ähnliche Frage gestellt viele Male auf verschiedenen Foren, aber die Antwort war nie befriedigend. (Wie mit der OP, ich bin interessiert an der Windows-jetzt).
  • Ok, das ist entmutigend. Ich habe nicht in der Lage gewesen um dies zu testen mich, da ich keinen Zugriff auf den zweiten Kontext, bis die Texturen bereits Hinzugefügt worden, etwas, das wglShareLists() nicht unterstützt.
InformationsquelleAutor Plow | 2010-12-08
Schreibe einen Kommentar