我试图创建一个面向对象的模型来包装OpenAL并且在理解设备,缓冲区和上下文时有一点问题。OpenAL设备,缓冲区和上下文关系
从我在程序员指南中可以看到的,有多个设备,其中每个设备可以有多个上下文以及多个缓冲区。每个上下文都有一个监听器,并且所有的函数都在活动上下文的监听器上运行。 (这意味着如果我想改变它的监听者,我必须先创建另一个上下文,如果我明白了的话)。到目前为止,这么好。 虽然我需要将设备传递给alcCreateContext()
函数,但是没有传递给alGenBuffers()
,但令我感到恼火的是。
这是如何工作的呢?当我打开多个设备时,在哪个设备上创建缓冲区?所有设备之间是否共享缓冲区?如果关闭所有打开的设备,缓冲区会发生什么变化?
(或者有什么我错过了吗?)