I'm trying to create an object oriented model to wrap OpenAL and have a little problem understanding the devices, buffers and contexts.
From what I can see in the Programmer's Guide, there are multiple devices, each of which can have multiple contexts as well as multiple buffers. Each context has a listener, and the alListener*()
functions all operate on the listener of the active context. (Meaning that I have to make another context active first if I wanted to change it's listener, if I got that right.) So far, so good.
What irritates me though is that I need to pass a device to the alcCreateContext()
function, but none to alGenBuffers()
.
How does this work then? When I open multiple devices, on which device are the buffers created? Are the buffers shared between all devices? What happens to the buffers if I close all open devices?
(Or is there something I missed?)