diff options
author | Chris Robinson <chris.kcat@gmail.com> | 2020-04-04 01:52:29 -0700 |
---|---|---|
committer | Chris Robinson <chris.kcat@gmail.com> | 2020-04-04 01:52:29 -0700 |
commit | fc906c97f52fd13549dfdfae229d0dc6d60a2865 (patch) | |
tree | 278b33097cd082f85442fe785579e6b78969e652 /al/buffer.h | |
parent | 902f5a0dd267e0849e93e863a24a0a350d1696f9 (diff) |
Track a buffer's ambisonic order
Diffstat (limited to 'al/buffer.h')
-rw-r--r-- | al/buffer.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/al/buffer.h b/al/buffer.h index 44ada667..2e98e927 100644 --- a/al/buffer.h +++ b/al/buffer.h @@ -79,6 +79,8 @@ struct ALbuffer { ALenum AmbiLayout{AL_FUMA_SOFT}; ALenum AmbiScaling{AL_FUMA_SOFT}; + /* AmbiOrder is only updated when loading new data. */ + ALuint AmbiOrder{0}; LPALBUFFERCALLBACKTYPESOFT Callback{nullptr}; void *UserData{nullptr}; @@ -88,6 +90,7 @@ struct ALbuffer { ALuint UnpackAlign{0}; ALuint PackAlign{0}; + ALuint UnpackAmbiOrder{1}; ALbitfieldSOFT MappedAccess{0u}; ALsizei MappedOffset{0}; @@ -100,7 +103,8 @@ struct ALbuffer { ALuint id{0}; inline ALuint bytesFromFmt() const noexcept { return BytesFromFmt(mFmtType); } - inline ALuint channelsFromFmt() const noexcept { return ChannelsFromFmt(mFmtChannels, 1); } + inline ALuint channelsFromFmt() const noexcept + { return ChannelsFromFmt(mFmtChannels, AmbiOrder); } inline ALuint frameSizeFromFmt() const noexcept { return channelsFromFmt() * bytesFromFmt(); } DISABLE_ALLOC() |