Re: OpenAL device, buffer and context relationship

Daniel PEACOCK <[email protected]>
Newsgroups gmane.comp.lib.openal
Message-ID <OF81D9E407.FEE48EF4-ON80257738.004FC8AC-80257738.0050463E@cli.creaf.com>
Hi Markus,

> 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?

All the al* functions (rather than alc* functions) operate on the current
context.  So, alGenBuffer calls will operate on the current context and
create Buffers that belong to the Context's Device (a Context can only have
one Device).

Buffers created on one Device are not available on another Device.

A Device's Buffers will (probably) be automatically destroyed when you call
alcCloseDevice.

Dan
Creative Labs, UK

_______________________________________________
Openal mailing list
[email protected]
http://opensource.creative.com/mailman/listinfo/openal
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.