Merge remote-tracking branch 'refs/remotes/raysan5/develop' into develop
This commit is contained in:
commit
2f85735c8d
14
src/audio.c
14
src/audio.c
|
|
@ -105,7 +105,6 @@ static void UnloadWave(Wave wave); // Unload wave data
|
||||||
|
|
||||||
static bool BufferMusicStream(ALuint buffer); // Fill music buffers with data
|
static bool BufferMusicStream(ALuint buffer); // Fill music buffers with data
|
||||||
static void EmptyMusicStream(void); // Empty music buffers
|
static void EmptyMusicStream(void); // Empty music buffers
|
||||||
extern void UpdateMusicStream(void); // Updates buffers (refill) for music streaming
|
|
||||||
|
|
||||||
#if defined(AUDIO_STANDALONE)
|
#if defined(AUDIO_STANDALONE)
|
||||||
const char *GetExtension(const char *fileName); // Get the extension for a filename
|
const char *GetExtension(const char *fileName); // Get the extension for a filename
|
||||||
|
|
@ -539,7 +538,7 @@ void PlayMusicStream(char *fileName)
|
||||||
|
|
||||||
TraceLog(INFO, "[%s] Ogg sample rate: %i", fileName, info.sample_rate);
|
TraceLog(INFO, "[%s] Ogg sample rate: %i", fileName, info.sample_rate);
|
||||||
TraceLog(INFO, "[%s] Ogg channels: %i", fileName, info.channels);
|
TraceLog(INFO, "[%s] Ogg channels: %i", fileName, info.channels);
|
||||||
TraceLog(INFO, "[%s] Temp memory required: %i", fileName, info.temp_memory_required);
|
TraceLog(DEBUG, "[%s] Temp memory required: %i", fileName, info.temp_memory_required);
|
||||||
|
|
||||||
if (info.channels == 2) currentMusic.format = AL_FORMAT_STEREO16;
|
if (info.channels == 2) currentMusic.format = AL_FORMAT_STEREO16;
|
||||||
else currentMusic.format = AL_FORMAT_MONO16;
|
else currentMusic.format = AL_FORMAT_MONO16;
|
||||||
|
|
@ -567,7 +566,7 @@ void PlayMusicStream(char *fileName)
|
||||||
alSourceQueueBuffers(currentMusic.source, 2, currentMusic.buffers);
|
alSourceQueueBuffers(currentMusic.source, 2, currentMusic.buffers);
|
||||||
alSourcePlay(currentMusic.source);
|
alSourcePlay(currentMusic.source);
|
||||||
|
|
||||||
// NOTE: Regularly, we must check if a buffer has been processed and refill it: MusicStreamUpdate()
|
// NOTE: Regularly, we must check if a buffer has been processed and refill it: UpdateMusicStream()
|
||||||
|
|
||||||
currentMusic.totalSamplesLeft = stb_vorbis_stream_length_in_samples(currentMusic.stream) * currentMusic.channels;
|
currentMusic.totalSamplesLeft = stb_vorbis_stream_length_in_samples(currentMusic.stream) * currentMusic.channels;
|
||||||
}
|
}
|
||||||
|
|
@ -708,7 +707,7 @@ static void EmptyMusicStream(void)
|
||||||
|
|
||||||
alGetSourcei(currentMusic.source, AL_BUFFERS_QUEUED, &queued);
|
alGetSourcei(currentMusic.source, AL_BUFFERS_QUEUED, &queued);
|
||||||
|
|
||||||
while(queued > 0)
|
while (queued > 0)
|
||||||
{
|
{
|
||||||
alSourceUnqueueBuffers(currentMusic.source, 1, &buffer);
|
alSourceUnqueueBuffers(currentMusic.source, 1, &buffer);
|
||||||
|
|
||||||
|
|
@ -738,20 +737,17 @@ void UpdateMusicStream(void)
|
||||||
|
|
||||||
// If no more data to stream, restart music (if loop)
|
// If no more data to stream, restart music (if loop)
|
||||||
if ((!active) && (currentMusic.loop))
|
if ((!active) && (currentMusic.loop))
|
||||||
{
|
|
||||||
if (currentMusic.loop)
|
|
||||||
{
|
{
|
||||||
stb_vorbis_seek_start(currentMusic.stream);
|
stb_vorbis_seek_start(currentMusic.stream);
|
||||||
currentMusic.totalSamplesLeft = stb_vorbis_stream_length_in_samples(currentMusic.stream) * currentMusic.channels;
|
currentMusic.totalSamplesLeft = stb_vorbis_stream_length_in_samples(currentMusic.stream)*currentMusic.channels;
|
||||||
|
|
||||||
active = BufferMusicStream(buffer);
|
active = BufferMusicStream(buffer);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Add refilled buffer to queue again... don't let the music stop!
|
// Add refilled buffer to queue again... don't let the music stop!
|
||||||
alSourceQueueBuffers(currentMusic.source, 1, &buffer);
|
alSourceQueueBuffers(currentMusic.source, 1, &buffer);
|
||||||
|
|
||||||
if(alGetError() != AL_NO_ERROR) TraceLog(WARNING, "Ogg playing, error buffering data...");
|
if (alGetError() != AL_NO_ERROR) TraceLog(WARNING, "Ogg playing, error buffering data...");
|
||||||
|
|
||||||
processed--;
|
processed--;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
15
src/text.c
15
src/text.c
|
|
@ -241,9 +241,8 @@ SpriteFont LoadSpriteFont(const char *fileName)
|
||||||
{
|
{
|
||||||
Image image = LoadImage(fileName);
|
Image image = LoadImage(fileName);
|
||||||
|
|
||||||
#if defined(PLATFORM_WEB)
|
if (image.data != NULL)
|
||||||
ImageToPOT(&image, MAGENTA);
|
{
|
||||||
#endif
|
|
||||||
// Process bitmap font pixel data to get characters measures
|
// Process bitmap font pixel data to get characters measures
|
||||||
// spriteFont chars data is filled inside the function and memory is allocated!
|
// spriteFont chars data is filled inside the function and memory is allocated!
|
||||||
int numChars = ParseImageData(image, &spriteFont.charValues, &spriteFont.charRecs);
|
int numChars = ParseImageData(image, &spriteFont.charValues, &spriteFont.charRecs);
|
||||||
|
|
@ -254,6 +253,12 @@ SpriteFont LoadSpriteFont(const char *fileName)
|
||||||
spriteFont.numChars = numChars;
|
spriteFont.numChars = numChars;
|
||||||
spriteFont.texture = LoadTextureFromImage(image); // Convert loaded image to OpenGL texture
|
spriteFont.texture = LoadTextureFromImage(image); // Convert loaded image to OpenGL texture
|
||||||
spriteFont.size = spriteFont.charRecs[0].height;
|
spriteFont.size = spriteFont.charRecs[0].height;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
TraceLog(WARNING, "[%s] SpriteFont could not be loaded, using default font", fileName, numChars);
|
||||||
|
spriteFont = GetDefaultFont();
|
||||||
|
}
|
||||||
|
|
||||||
UnloadImage(image);
|
UnloadImage(image);
|
||||||
}
|
}
|
||||||
|
|
@ -545,7 +550,9 @@ static SpriteFont LoadRBMF(const char *fileName)
|
||||||
|
|
||||||
if (rbmfFile == NULL)
|
if (rbmfFile == NULL)
|
||||||
{
|
{
|
||||||
TraceLog(WARNING, "[%s] rBMF font file could not be opened", fileName);
|
TraceLog(WARNING, "[%s] rBMF font file could not be opened, using default font", fileName);
|
||||||
|
|
||||||
|
spriteFont = GetDefaultFont();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user