mirror of
https://github.com/TerryCavanagh/VVVVVV.git
synced 2024-12-22 09:39:43 +01:00
Add PR_RTL_XFLIP print flag
This lets you mirror the X axis specifically in RTL languages, so the left border is 320 and the right border is 0, and invert the meaning of PR_LEFT (0) and PR_RIGHT. Most of the time this is not necessary, it's just for stuff where a label is followed by a different print, like "Font: " followed by the font name, time trial time displays, etc
This commit is contained in:
parent
3588168c4d
commit
eac612c309
3 changed files with 14 additions and 2 deletions
|
@ -103,6 +103,9 @@ A not-technically-exhaustive list of all flags (which are defined in Font.h):
|
||||||
- PR_CJK_LOW Larger fonts should stick out fully on the bottom
|
- PR_CJK_LOW Larger fonts should stick out fully on the bottom
|
||||||
(draw at Y)
|
(draw at Y)
|
||||||
- PR_CJK_HIGH Larger fonts should stick out fully on the top
|
- PR_CJK_HIGH Larger fonts should stick out fully on the top
|
||||||
|
- PR_RTL_XFLIP In RTL languages, mirror the X axis, so left is 320
|
||||||
|
and right is 0, and invert the meaning of PR_LEFT and
|
||||||
|
PR_RIGHT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,7 @@ struct PrintFlags
|
||||||
bool cjk_low;
|
bool cjk_low;
|
||||||
bool cjk_high;
|
bool cjk_high;
|
||||||
bool rtl;
|
bool rtl;
|
||||||
|
bool rtl_xflip;
|
||||||
};
|
};
|
||||||
|
|
||||||
static FontContainer fonts_main = {};
|
static FontContainer fonts_main = {};
|
||||||
|
@ -830,6 +831,7 @@ static PrintFlags decode_print_flags(uint32_t flags)
|
||||||
pf.align_right = flags & PR_RIGHT;
|
pf.align_right = flags & PR_RIGHT;
|
||||||
pf.cjk_low = flags & PR_CJK_LOW;
|
pf.cjk_low = flags & PR_CJK_LOW;
|
||||||
pf.cjk_high = flags & PR_CJK_HIGH;
|
pf.cjk_high = flags & PR_CJK_HIGH;
|
||||||
|
pf.rtl_xflip = flags & PR_RTL_XFLIP;
|
||||||
|
|
||||||
if (pf.full_border)
|
if (pf.full_border)
|
||||||
{
|
{
|
||||||
|
@ -1269,6 +1271,12 @@ void print(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (pf.rtl && pf.rtl_xflip && (!pf.align_cen || x != -1))
|
||||||
|
{
|
||||||
|
x = SCREEN_WIDTH_PIXELS - x;
|
||||||
|
pf.align_right = !pf.align_right;
|
||||||
|
}
|
||||||
|
|
||||||
if (pf.align_cen || pf.align_right)
|
if (pf.align_cen || pf.align_right)
|
||||||
{
|
{
|
||||||
const int textlen = len(flags, text);
|
const int textlen = len(flags, text);
|
||||||
|
@ -1294,7 +1302,7 @@ void print(
|
||||||
for (int offset = 0; offset < 4; offset++)
|
for (int offset = 0; offset < 4; offset++)
|
||||||
{
|
{
|
||||||
print(
|
print(
|
||||||
flags & ~PR_BOR & ~PR_CEN & ~PR_RIGHT,
|
flags & ~PR_BOR & ~PR_CEN & ~PR_RIGHT & ~PR_RTL_XFLIP,
|
||||||
x + offsets[offset][0]*pf.scale,
|
x + offsets[offset][0]*pf.scale,
|
||||||
y + offsets[offset][1]*pf.scale,
|
y + offsets[offset][1]*pf.scale,
|
||||||
text,
|
text,
|
||||||
|
@ -1310,7 +1318,7 @@ void print(
|
||||||
for (int offset = 0; offset < 8; offset++)
|
for (int offset = 0; offset < 8; offset++)
|
||||||
{
|
{
|
||||||
print(
|
print(
|
||||||
flags & ~PR_FULLBOR & ~PR_CEN & ~PR_RIGHT,
|
flags & ~PR_FULLBOR & ~PR_CEN & ~PR_RIGHT & ~PR_RTL_XFLIP,
|
||||||
x + offsets[offset][0] * pf.scale,
|
x + offsets[offset][0] * pf.scale,
|
||||||
y + offsets[offset][1] * pf.scale,
|
y + offsets[offset][1] * pf.scale,
|
||||||
text,
|
text,
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#define PR_CJK_LOW (1 << 20) /* larger fonts should stick out fully on the bottom (draw at Y) */
|
#define PR_CJK_LOW (1 << 20) /* larger fonts should stick out fully on the bottom (draw at Y) */
|
||||||
#define PR_CJK_HIGH (2 << 20) /* larger fonts should stick out fully on the top */
|
#define PR_CJK_HIGH (2 << 20) /* larger fonts should stick out fully on the top */
|
||||||
#define PR_RTL_FORCE (1 << 22) /* force the RTL flag, not needed if the font is set to INTERFACE or LEVEL */
|
#define PR_RTL_FORCE (1 << 22) /* force the RTL flag, not needed if the font is set to INTERFACE or LEVEL */
|
||||||
|
#define PR_RTL_XFLIP (1 << 23) /* in RTL languages, mirror the X axis, so left is 320 and right is 0, and invert the meaning of PR_LEFT and PR_RIGHT */
|
||||||
|
|
||||||
|
|
||||||
namespace font
|
namespace font
|
||||||
|
|
Loading…
Reference in a new issue