Tôi đang cố gắng tạo mô hình hướng đối tượng để bao bọc OpenAL và có một chút vấn đề khi hiểu thiết bị, bộ đệm và ngữ cảnh.Thiết bị mở, bộ đệm và mối quan hệ ngữ cảnh
Từ những gì tôi có thể thấy trong Hướng dẫn của lập trình viên, có nhiều thiết bị, mỗi thiết bị có thể có nhiều ngữ cảnh cũng như nhiều bộ đệm. Mỗi ngữ cảnh có một người nghe, và các hàm alListener*()
đều hoạt động trên trình nghe của ngữ cảnh hoạt động. (Có nghĩa là tôi phải làm cho một ngữ cảnh khác hoạt động trước nếu tôi muốn thay đổi người nghe của nó, nếu tôi có quyền đó.) Cho đến nay, rất tốt. Điều khiến tôi khó chịu là tôi cần phải chuyển thiết bị đến chức năng alcCreateContext()
, nhưng không cần thiết đến alGenBuffers()
.
Tính năng này hoạt động như thế nào? Khi tôi mở nhiều thiết bị, thiết bị nào là bộ đệm được tạo? Bộ đệm có được chia sẻ giữa tất cả các thiết bị không? Điều gì sẽ xảy ra với bộ đệm nếu tôi đóng tất cả các thiết bị đang mở?
(Hoặc có điều gì tôi đã bỏ sót?)