Estoy tratando de crear un modelo orientado a objetos para ajustar OpenAL y tengo un pequeño problema para comprender los dispositivos, búferes y contextos.Dispositivo OpenAL, búfer y relación de contexto
Según lo que puedo ver en la Guía del programador, hay varios dispositivos, cada uno de los cuales puede tener múltiples contextos y múltiples búferes. Cada contexto tiene un oyente, y las funciones alListener*()
operan en el oyente del contexto activo. (Lo que significa que tengo que activar otro contexto primero si quería cambiar su oyente, si lo entendí bien). Hasta ahora, todo bien. Lo que me irrita es que necesito pasar un dispositivo a la función alcCreateContext()
, pero ninguno a alGenBuffers()
.
¿Cómo funciona esto? Cuando abro varios dispositivos, ¿en qué dispositivo están creados los búferes? ¿Los búferes se comparten entre todos los dispositivos? ¿Qué sucede con los buffers si cierro todos los dispositivos abiertos?
(O hay algo que había perdido?)