REVIEWED: Avoid crash on bad data provided
This commit is contained in:
parent
904c505125
commit
35c777ef2c
24
src/rtext.c
24
src/rtext.c
@ -818,9 +818,12 @@ Image GenImageFontAtlas(const GlyphInfo *chars, Rectangle **charRecs, int glyphC
|
||||
// Unload font glyphs info data (RAM)
|
||||
void UnloadFontData(GlyphInfo *glyphs, int glyphCount)
|
||||
{
|
||||
for (int i = 0; i < glyphCount; i++) UnloadImage(glyphs[i].image);
|
||||
if (glyphs != NULL)
|
||||
{
|
||||
for (int i = 0; i < glyphCount; i++) UnloadImage(glyphs[i].image);
|
||||
|
||||
RL_FREE(glyphs);
|
||||
RL_FREE(glyphs);
|
||||
}
|
||||
}
|
||||
|
||||
// Unload Font from GPU memory (VRAM)
|
||||
@ -1142,7 +1145,7 @@ void DrawTextCodepoints(Font font, const int *codepoints, int count, Vector2 pos
|
||||
// Measure string width for default font
|
||||
int MeasureText(const char *text, int fontSize)
|
||||
{
|
||||
Vector2 vec = { 0.0f, 0.0f };
|
||||
Vector2 textSize = { 0.0f, 0.0f };
|
||||
|
||||
// Check if default font has been loaded
|
||||
if (GetFontDefault().texture.id != 0)
|
||||
@ -1151,15 +1154,19 @@ int MeasureText(const char *text, int fontSize)
|
||||
if (fontSize < defaultFontSize) fontSize = defaultFontSize;
|
||||
int spacing = fontSize/defaultFontSize;
|
||||
|
||||
vec = MeasureTextEx(GetFontDefault(), text, (float)fontSize, (float)spacing);
|
||||
textSize = MeasureTextEx(GetFontDefault(), text, (float)fontSize, (float)spacing);
|
||||
}
|
||||
|
||||
return (int)vec.x;
|
||||
return (int)textSize.x;
|
||||
}
|
||||
|
||||
// Measure string size for Font
|
||||
Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing)
|
||||
{
|
||||
Vector2 textSize = { 0 };
|
||||
|
||||
if ((font.texture.id == 0) || (text == NULL)) return textSize;
|
||||
|
||||
int size = TextLength(text); // Get size in bytes of text
|
||||
int tempByteCounter = 0; // Used to count longer text line num chars
|
||||
int byteCounter = 0;
|
||||
@ -1204,11 +1211,10 @@ Vector2 MeasureTextEx(Font font, const char *text, float fontSize, float spacing
|
||||
|
||||
if (tempTextWidth < textWidth) tempTextWidth = textWidth;
|
||||
|
||||
Vector2 vec = { 0 };
|
||||
vec.x = tempTextWidth*scaleFactor + (float)((tempByteCounter - 1)*spacing); // Adds chars spacing to measure
|
||||
vec.y = textHeight*scaleFactor;
|
||||
textSize.x = tempTextWidth*scaleFactor + (float)((tempByteCounter - 1)*spacing); // Adds chars spacing to measure
|
||||
textSize.y = textHeight*scaleFactor;
|
||||
|
||||
return vec;
|
||||
return textSize;
|
||||
}
|
||||
|
||||
// Get index position for a unicode character on font
|
||||
|
Loading…
x
Reference in New Issue
Block a user