From fc906c97f52fd13549dfdfae229d0dc6d60a2865 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sat, 4 Apr 2020 01:52:29 -0700 Subject: Track a buffer's ambisonic order --- al/buffer.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'al/buffer.h') 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() -- cgit v1.2.3