File include/fg2/fg2.h changed (mode: 100755) (index 278bc4a..06910f0) |
... |
... |
float getTextWidth( std::string text, Font &font ){ |
2454 |
2454 |
return getTextWidthUtf32( utf8ToUtf32( text ), font ); |
return getTextWidthUtf32( utf8ToUtf32( text ), font ); |
2455 |
2455 |
} |
} |
2456 |
2456 |
|
|
2457 |
|
void drawTextUtf32( std::u32string codepoints, Font &font, float posX, float posY, float scale, int align = 0, float wordWrap = 0.0f ){ |
|
|
2457 |
|
void drawTextUtf32( std::u32string codepoints, Font &font, float posX, float posY, float scale, int align, float wordWrap ){ |
2458 |
2458 |
// align modes -- 0: left, 1: center, 2: right |
// align modes -- 0: left, 1: center, 2: right |
2459 |
2459 |
|
|
2460 |
2460 |
Texture &tex = font.texture; |
Texture &tex = font.texture; |
|
... |
... |
void drawTextUtf32( std::u32string codepoints, Font &font, float posX, float pos |
2491 |
2491 |
wordStart = i + 1; |
wordStart = i + 1; |
2492 |
2492 |
wordStartX = charX; |
wordStartX = charX; |
2493 |
2493 |
}else if( cp == '\n' ){ |
}else if( cp == '\n' ){ |
2494 |
|
if( align == 0 ){ // Left-to-right alignment. |
|
2495 |
|
wordStart = i + 1; |
|
2496 |
|
wordStartX = charX; |
|
2497 |
|
charX = 0.0f; |
|
2498 |
|
charY += leading; |
|
2499 |
|
}else{ // Other alignment. |
|
2500 |
|
drawTextUtf32( codepoints.substr( i + 1 ), font, posX, posY + leading * scale, scale, align, wordWrap ); |
|
2501 |
|
break; |
|
2502 |
|
} |
|
|
2494 |
|
drawTextUtf32( codepoints.substr( i + 1 ), font, posX, posY + leading * scale, scale, align, wordWrap ); |
|
2495 |
|
break; |
2503 |
2496 |
}else if( wordWrap > 0.0f && charX * scale > wordWrap && wordStart > 0 ){ |
}else if( wordWrap > 0.0f && charX * scale > wordWrap && wordStart > 0 ){ |
2504 |
2497 |
// re-align |
// re-align |
2505 |
2498 |
charX = wordStartX; |
charX = wordStartX; |
File include/fg3/fg3.h changed (mode: 100644) (index a515b1c..e833686) |
... |
... |
void drawTextUtf32( std::u32string codepoints, Font &font, float posX, float pos |
2982 |
2982 |
wordStart = i + 1; |
wordStart = i + 1; |
2983 |
2983 |
wordStartX = charX; |
wordStartX = charX; |
2984 |
2984 |
}else if( cp == '\n' ){ |
}else if( cp == '\n' ){ |
2985 |
|
if( align == 0 ){ // Left-to-right alignment. |
|
2986 |
|
wordStart = i + 1; |
|
2987 |
|
wordStartX = charX; |
|
2988 |
|
charX = 0.0f; |
|
2989 |
|
charY += leading; |
|
2990 |
|
}else{ // Other alignment. |
|
2991 |
|
drawTextUtf32( codepoints.substr( i + 1 ), font, posX, posY + leading * scale, scale, align, wordWrap ); |
|
2992 |
|
break; |
|
2993 |
|
} |
|
|
2985 |
|
drawTextUtf32( codepoints.substr( i + 1 ), font, posX, posY + leading * scale, scale, align, wordWrap ); |
|
2986 |
|
break; |
2994 |
2987 |
}else if( wordWrap > 0.0f && charX * scale > wordWrap && wordStart > 0 ){ |
}else if( wordWrap > 0.0f && charX * scale > wordWrap && wordStart > 0 ){ |
2995 |
2988 |
// re-align |
// re-align |
2996 |
2989 |
charX = wordStartX; |
charX = wordStartX; |