我試圖創建一個面向對象的模型來包裝OpenAL並且在理解設備,緩衝區和上下文時有一點問題。OpenAL設備,緩衝區和上下文關係
從我在程序員指南中可以看到的,有多個設備,其中每個設備可以有多個上下文以及多個緩衝區。每個上下文都有一個監聽器,並且所有的函數都在活動上下文的監聽器上運行。 (這意味着如果我想改變它的監聽者,我必須先創建另一個上下文,如果我明白了的話)。到目前爲止,這麼好。 雖然我需要將設備傳遞給alcCreateContext()
函數,但是沒有傳遞給alGenBuffers()
,但令我感到惱火的是。
這是如何工作的呢?當我打開多個設備時,在哪個設備上創建緩衝區?所有設備之間是否共享緩衝區?如果關閉所有打開的設備,緩衝區會發生什麼變化?
(或者有什麼我錯過了嗎?)