diff --git a/src/rtext.c b/src/rtext.c index dd6bcf2d7915..c4388cd0ef91 100644 --- a/src/rtext.c +++ b/src/rtext.c @@ -364,7 +364,9 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) #define MAX_GLYPHS_FROM_IMAGE 256 // Maximum number of glyphs supported on image scan #endif - #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r)&&(col1.g == col2.g)&&(col1.b == col2.b)&&(col1.a == col2.a)) + #define COLOR_EQUAL(col1, col2) ((col1.r == col2.r) && (col1.g == col2.g) && (col1.b == col2.b) && (col1.a == col2.a)) + + Font font = GetFontDefault(); int charSpacing = 0; int lineSpacing = 0; @@ -374,8 +376,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) // We allocate a temporal arrays for chars data measures, // once we get the actual number of chars, we copy data to a sized arrays - int tempCharValues[MAX_GLYPHS_FROM_IMAGE]; - Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE]; + int tempCharValues[MAX_GLYPHS_FROM_IMAGE] = { 0 }; + Rectangle tempCharRecs[MAX_GLYPHS_FROM_IMAGE] = { 0 }; Color *pixels = LoadImageColors(image); @@ -390,6 +392,8 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) if (!COLOR_EQUAL(pixels[y*image.width + x], key)) break; } + if ((x == 0) || (y == 0)) return font; + charSpacing = x; lineSpacing = y; @@ -445,9 +449,7 @@ Font LoadFontFromImage(Image image, Color key, int firstChar) .mipmaps = 1 }; - // Create font with all data parsed from image - Font font = { 0 }; - + // Set font with all data parsed from image font.texture = LoadTextureFromImage(fontClear); // Convert processed image to OpenGL texture font.glyphCount = index; font.glyphPadding = 0;