Sto provando a creare un modello orientato agli oggetti per avvolgere OpenAL e avere un piccolo problema nella comprensione di dispositivi, buffer e contesti.Dispositivo OpenAL, buffer e relazione di contesto
Da quello che posso vedere nella Guida del programmatore, ci sono più dispositivi, ognuno dei quali può avere più contesti e più buffer. Ogni contesto ha un listener e le funzioni alListener*()
operano tutte sull'ascoltatore del contesto attivo. (Significa che per prima cosa devo rendere attivo un altro contesto se volevo cambiare il suo ascoltatore, se ho capito bene.) Finora, tutto bene. Ciò che mi irrita è che devo passare un dispositivo alla funzione alcCreateContext()
, ma nessuno a alGenBuffers()
.
Come funziona allora? Quando apro più dispositivi, su quale dispositivo sono creati i buffer? I buffer sono condivisi tra tutti i dispositivi? Cosa succede ai buffer se chiudo tutti i dispositivi aperti?
(O c'è qualcosa che ho perso?)