|
|
@ -791,7 +791,7 @@ Image GenImageFontAtlas(const GlyphInfo *glyphs, Rectangle **glyphRecs, int glyp |
|
|
|
for(int j = i + 1; j < glyphCount; j++) |
|
|
|
{ |
|
|
|
TRACELOG(LOG_WARNING, "FONT: Failed to package character (%i)", j); |
|
|
|
// make sure remaining recs contain valid data |
|
|
|
// Make sure remaining recs contain valid data |
|
|
|
recs[j].x = 0; |
|
|
|
recs[j].y = 0; |
|
|
|
recs[j].width = 0; |
|
|
@ -1986,21 +1986,21 @@ int GetCodepointNext(const char *text, int *codepointSize) |
|
|
|
if (0xf0 == (0xf8 & ptr[0])) |
|
|
|
{ |
|
|
|
// 4 byte UTF-8 codepoint |
|
|
|
if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks |
|
|
|
if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80) || ((ptr[3] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks |
|
|
|
codepoint = ((0x07 & ptr[0]) << 18) | ((0x3f & ptr[1]) << 12) | ((0x3f & ptr[2]) << 6) | (0x3f & ptr[3]); |
|
|
|
*codepointSize = 4; |
|
|
|
} |
|
|
|
else if (0xe0 == (0xf0 & ptr[0])) |
|
|
|
{ |
|
|
|
// 3 byte UTF-8 codepoint */ |
|
|
|
if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } //10xxxxxx checks |
|
|
|
if(((ptr[1] & 0xC0) ^ 0x80) || ((ptr[2] & 0xC0) ^ 0x80)) { return codepoint; } // 10xxxxxx checks |
|
|
|
codepoint = ((0x0f & ptr[0]) << 12) | ((0x3f & ptr[1]) << 6) | (0x3f & ptr[2]); |
|
|
|
*codepointSize = 3; |
|
|
|
} |
|
|
|
else if (0xc0 == (0xe0 & ptr[0])) |
|
|
|
{ |
|
|
|
// 2 byte UTF-8 codepoint |
|
|
|
if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } //10xxxxxx checks |
|
|
|
if((ptr[1] & 0xC0) ^ 0x80) { return codepoint; } // 10xxxxxx checks |
|
|
|
codepoint = ((0x1f & ptr[0]) << 6) | (0x3f & ptr[1]); |
|
|
|
*codepointSize = 2; |
|
|
|
} |
|
|
|