Domanda

Voglio rendere la mia scena in un thread e quindi blit il risultato nella finestra di proprietà di un altro thread. Per evitare di leggere la parte posteriore framebuffer alla memoria della CPU, vorrei utilizzare un oggetto framebuffer. Finora non sono stato in grado di ottenere questo al lavoro (pasta bianca), che mi fa credere che questo non è supportato da OpenGL.

  1. E 'possibile oggetti framebuffer di condivisione tra i diversi contesti?
  2. È possibile condividere un oggetto framebuffer tra diversi thread, dato che l'oggetto è vincolata da un solo filo per volta?

Se qualcuno mi può indicare dove questo è descritto nella documentazione, che sarebbe un bonus.

È stato utile?

Soluzione

Non è possibile condividere i framebuffer tra i diversi contesti. Vedere il primo comma, Appendice D, OpenGL 3.3 spec. Tuttavia, è possibile condividere le texture e renderbuffers, che dovrebbe dare si desidera è necessario.

Per quanto riguarda la filettatura: Dovrebbe essere possibile, ma non è generalmente consigliato di inviare comandi GL da più thread (perché è solo molto difficile da sincronizzare). Di solito, si dovrebbe copiare il contenuto di un pixel-buffer-oggetto e e la mappa dal thread GL, quindi utilizzare il puntatore mappato dal l'altro thread.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top