summaryrefslogtreecommitdiffstats
path: root/src/render/Font.cpp
diff options
context:
space:
mode:
authorerorcun <erorcunerorcun@hotmail.com.tr>2020-11-19 00:09:04 +0100
committererorcun <erorcunerorcun@hotmail.com.tr>2020-11-19 00:09:04 +0100
commit808f7c46f1df9acaf8d00ebde7cb1925e1d27f94 (patch)
treed021c5b31e7145abe0565ad76cf3c065fbd3c8ac /src/render/Font.cpp
parentmore fixes to librw stuff (diff)
downloadre3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar.gz
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar.bz2
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar.lz
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar.xz
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.tar.zst
re3-808f7c46f1df9acaf8d00ebde7cb1925e1d27f94.zip
Diffstat (limited to 'src/render/Font.cpp')
-rw-r--r--src/render/Font.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/render/Font.cpp b/src/render/Font.cpp
index fbcc38e4..42ddd0fb 100644
--- a/src/render/Font.cpp
+++ b/src/render/Font.cpp
@@ -942,6 +942,40 @@ CFont::PrintString(float x, float y, wchar *start, wchar *end, float spwidth)
}
#endif
+#ifdef XBOX_SUBTITLES
+void
+CFont::PrintStringFromBottom(float x, float y, wchar *str)
+{
+#ifdef MORE_LANGUAGES
+ if (IsJapaneseFont())
+ y -= (32.0f * CFont::Details.scaleY / 2.75f + 2.0f * CFont::Details.scaleY) * GetNumberLines(x, y, str);
+ else
+#endif
+ y -= (32.0f * CFont::Details.scaleY * 0.5f + 2.0f * CFont::Details.scaleY) * GetNumberLines(x, y, str);
+ PrintString(x, y, str);
+}
+
+void
+CFont::PrintOutlinedString(float x, float y, wchar *str, float outlineStrength, bool fromBottom, CRGBA outlineColor)
+{
+ CRGBA textColor = Details.color;
+ SetColor(outlineColor);
+ CVector2D offsets[] = { {1.f, 1.f}, {1.f, -1.f}, {-1.f, 1.f}, {-1.f, -1.f} };
+ for(int i = 0; i < ARRAY_SIZE(offsets); i++){
+ if (fromBottom)
+ PrintStringFromBottom(x + SCREEN_SCALE_X(offsets[i].x * outlineStrength), y + SCREEN_SCALE_Y(offsets[i].y * outlineStrength), str);
+ else
+ PrintString(x + SCREEN_SCALE_X(offsets[i].x * outlineStrength), y + SCREEN_SCALE_Y(offsets[i].y * outlineStrength), str);
+ }
+ SetColor(textColor);
+
+ if (fromBottom)
+ PrintStringFromBottom(x, y, str);
+ else
+ PrintString(x, y, str);
+}
+#endif
+
float
CFont::GetCharacterWidth(wchar c)
{