aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alBuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'OpenAL32/alBuffer.c')
-rw-r--r--OpenAL32/alBuffer.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/OpenAL32/alBuffer.c b/OpenAL32/alBuffer.c
index ed03df00..c923819d 100644
--- a/OpenAL32/alBuffer.c
+++ b/OpenAL32/alBuffer.c
@@ -361,6 +361,8 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid
ALBuf->LoopStart = 0;
ALBuf->LoopEnd = newsize / NewChannels / NewBytes;
+ DecompFormat(NewFormat, &ALBuf->FmtType, &ALBuf->FmtChannels);
+
ALBuf->OriginalSize = size;
ALBuf->OriginalAlign = OrigBytes * 2;
}
@@ -409,6 +411,8 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid
ALBuf->LoopStart = 0;
ALBuf->LoopEnd = newsize / Channels / NewBytes;
+ DecompFormat(NewFormat, &ALBuf->FmtType, &ALBuf->FmtChannels);
+
ALBuf->OriginalSize = size;
ALBuf->OriginalAlign = 36 * Channels;
}
@@ -462,6 +466,8 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid
ALBuf->LoopStart = 0;
ALBuf->LoopEnd = newsize / Channels / NewBytes;
+ DecompFormat(NewFormat, &ALBuf->FmtType, &ALBuf->FmtChannels);
+
ALBuf->OriginalSize = size;
ALBuf->OriginalAlign = 1 * Channels;
}
@@ -503,6 +509,8 @@ AL_API ALvoid AL_APIENTRY alBufferData(ALuint buffer,ALenum format,const ALvoid
ALBuf->LoopStart = 0;
ALBuf->LoopEnd = newsize / NewChannels / NewBytes;
+ DecompFormat(NewFormat, &ALBuf->FmtType, &ALBuf->FmtChannels);
+
ALBuf->OriginalSize = size;
ALBuf->OriginalAlign = 1 * 2;
}
@@ -1085,6 +1093,8 @@ static ALenum LoadData(ALbuffer *ALBuf, const ALvoid *data, ALsizei size, ALuint
ALBuf->LoopStart = 0;
ALBuf->LoopEnd = newsize / NewChannels / NewBytes;
+ DecompFormat(NewFormat, &ALBuf->FmtType, &ALBuf->FmtChannels);
+
ALBuf->OriginalSize = size;
ALBuf->OriginalAlign = OrigBytes * OrigChannels;