From 85908befeabecf34f04b983173d73a4f80fbf4b7 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Thu, 3 Dec 2015 13:44:45 +0100 Subject: [PATCH 1/2] Corrected bug on spritefont loading --- src/text.c | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/text.c b/src/text.c index 7b9660ddc..c62704aae 100644 --- a/src/text.c +++ b/src/text.c @@ -240,20 +240,25 @@ SpriteFont LoadSpriteFont(const char *fileName) else { Image image = LoadImage(fileName); - -#if defined(PLATFORM_WEB) - ImageToPOT(&image, MAGENTA); -#endif - // Process bitmap font pixel data to get characters measures - // spriteFont chars data is filled inside the function and memory is allocated! - int numChars = ParseImageData(image, &spriteFont.charValues, &spriteFont.charRecs); - - TraceLog(DEBUG, "[%s] SpriteFont data parsed correctly", fileName); - TraceLog(DEBUG, "[%s] SpriteFont num chars detected: %i", fileName, numChars); - - spriteFont.numChars = numChars; - spriteFont.texture = LoadTextureFromImage(image); // Convert loaded image to OpenGL texture - spriteFont.size = spriteFont.charRecs[0].height; + + if (image.data != NULL) + { + // Process bitmap font pixel data to get characters measures + // spriteFont chars data is filled inside the function and memory is allocated! + int numChars = ParseImageData(image, &spriteFont.charValues, &spriteFont.charRecs); + + TraceLog(DEBUG, "[%s] SpriteFont data parsed correctly", fileName); + TraceLog(DEBUG, "[%s] SpriteFont num chars detected: %i", fileName, numChars); + + spriteFont.numChars = numChars; + spriteFont.texture = LoadTextureFromImage(image); // Convert loaded image to OpenGL texture + spriteFont.size = spriteFont.charRecs[0].height; + } + else + { + TraceLog(WARNING, "[%s] SpriteFont could not be loaded, using default font", fileName, numChars); + spriteFont = GetDefaultFont(); + } UnloadImage(image); } @@ -545,7 +550,9 @@ static SpriteFont LoadRBMF(const char *fileName) 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 { From f4e455398c5215ed6b38e7d5f7769e76a54d902d Mon Sep 17 00:00:00 2001 From: raysan5 Date: Thu, 3 Dec 2015 13:45:06 +0100 Subject: [PATCH 2/2] Small bug corrected --- src/audio.c | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/audio.c b/src/audio.c index 4ba133e24..8ef711163 100644 --- a/src/audio.c +++ b/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 void EmptyMusicStream(void); // Empty music buffers -extern void UpdateMusicStream(void); // Updates buffers (refill) for music streaming #if defined(AUDIO_STANDALONE) 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 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; else currentMusic.format = AL_FORMAT_MONO16; @@ -567,7 +566,7 @@ void PlayMusicStream(char *fileName) alSourceQueueBuffers(currentMusic.source, 2, currentMusic.buffers); 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; } @@ -708,7 +707,7 @@ static void EmptyMusicStream(void) alGetSourcei(currentMusic.source, AL_BUFFERS_QUEUED, &queued); - while(queued > 0) + while (queued > 0) { alSourceUnqueueBuffers(currentMusic.source, 1, &buffer); @@ -739,19 +738,16 @@ void UpdateMusicStream(void) // If no more data to stream, restart music (if loop) if ((!active) && (currentMusic.loop)) { - if (currentMusic.loop) - { - stb_vorbis_seek_start(currentMusic.stream); - currentMusic.totalSamplesLeft = stb_vorbis_stream_length_in_samples(currentMusic.stream) * currentMusic.channels; + stb_vorbis_seek_start(currentMusic.stream); + 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! 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--; }