aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xmedley_new/game/fonts/fonts.ini19
-rw-r--r--medley_new/src/base/TextGL.pas26
-rw-r--r--medley_new/src/screens/UScreenSing.pas2
3 files changed, 41 insertions, 6 deletions
diff --git a/medley_new/game/fonts/fonts.ini b/medley_new/game/fonts/fonts.ini
index f152852d..6ac269ab 100755
--- a/medley_new/game/fonts/fonts.ini
+++ b/medley_new/game/fonts/fonts.ini
@@ -5,20 +5,32 @@
;-------------------------------------------------
;[Font_XYZ]
;# the font file
-;File=Filename
+;File=Filename
+;
;# space between glyphs (default: 0.0)
;GlyphSpacing=float
+;
;# width stretch factor (default: 1.0)
;Stretch=float
+;
;# makes the font more bold (default: 0.0). Not used if Outline > 0.0.
;Embolden=float(>=0.0)
+;
;# draws an outline around the glyph
;Outline=float(>=0.0)
+;
;# outline color components (default: 0.0/0.0/0.0/-1.0)
;OutlineColorR/G/B=float([0..1])
+;
;# outline alpha, -1.0 for alpha of interior (default: -1.0)
;OutlineColorA=float([0..1] or -1)
;
+;# set the maximum resolution (default: 64)
+;MaxResolution=integer([16, 32, 64, 128, 256, 512, ...])
+;
+;# precache of font (default=1=true)
+;PreCache=integer([0;1])
+;
;[Font_...]
;...
;
@@ -51,6 +63,11 @@ Outline=0.06
File=FreeSans/FreeSansBold.ttf
Outline=0.06
+[Font_BoldHighRes]
+File=FreeSans/FreeSansBold.ttf
+MaxResolution=256
+PreCache=0
+
[Fallbacks]
File1=wqy-microhei/wqy-microhei.ttc
;File2=C:/Windows/Fonts/simsun.ttc
diff --git a/medley_new/src/base/TextGL.pas b/medley_new/src/base/TextGL.pas
index feca0974..a4361319 100644
--- a/medley_new/src/base/TextGL.pas
+++ b/medley_new/src/base/TextGL.pas
@@ -56,6 +56,7 @@ const
ftBold = 1;
ftOutline1 = 2;
ftOutline2 = 3;
+ ftBoldHighRes = 4;
var
Fonts: array of TGLFont;
@@ -117,8 +118,8 @@ begin
end;
const
- FONT_NAMES: array [0..3] of string = (
- 'Normal', 'Bold', 'Outline1', 'Outline2'
+ FONT_NAMES: array [0..4] of string = (
+ 'Normal', 'Bold', 'Outline1', 'Outline2', 'BoldHighRes'
);
procedure BuildFonts;
@@ -126,6 +127,8 @@ var
I: integer;
FontIni: TMemIniFile;
FontFile: IPath;
+ FontMaxResolution: Integer;
+ FontPreCache: Integer;
Outline: single;
Embolden: single;
OutlineFont: TFTScalableOutlineFont;
@@ -144,12 +147,21 @@ begin
FontFile := FindFontFile(FontIni.ReadString(SectionName , 'File', ''));
+ FontMaxResolution := FontIni.ReadInteger(SectionName, 'MaxResolution', 64);
+ FontPreCache := FontIni.ReadInteger(SectionName, 'PreCache', 1);
+
// create either outlined or normal font
Outline := FontIni.ReadFloat(SectionName, 'Outline', 0.0);
if (Outline > 0.0) then
begin
// outlined font
- OutlineFont := TFTScalableOutlineFont.Create(FontFile, 64, Outline, True, True);
+ OutlineFont := TFTScalableOutlineFont.Create(
+ FontFile,
+ FontMaxResolution,
+ Outline,
+ True,
+ (FontPreCache<>0)
+ );
OutlineFont.SetOutlineColor(
FontIni.ReadFloat(SectionName, 'OutlineColorR', 0.0),
FontIni.ReadFloat(SectionName, 'OutlineColorG', 0.0),
@@ -163,7 +175,13 @@ begin
begin
// normal font
Embolden := FontIni.ReadFloat(SectionName, 'Embolden', 0.0);
- Fonts[I].Font := TFTScalableFont.Create(FontFile, 64, Embolden, True, True);
+ Fonts[I].Font := TFTScalableFont.Create(
+ FontFile,
+ FontMaxResolution,
+ Embolden,
+ True,
+ (FontPreCache<>0)
+ );
Fonts[I].Outlined := false;
end;
diff --git a/medley_new/src/screens/UScreenSing.pas b/medley_new/src/screens/UScreenSing.pas
index 6cadaf16..f4984386 100644
--- a/medley_new/src/screens/UScreenSing.pas
+++ b/medley_new/src/screens/UScreenSing.pas
@@ -1445,7 +1445,7 @@ begin
glColor4f(0.15, 0.30, 0.6, t);
h := 300*t*ScreenH/RenderH;
- SetFontStyle(ftBold);
+ SetFontStyle(ftBoldHighRes);
SetFontItalic(false);
SetFontSize(h);
CountDownText := IntToStr(round(timeDiff-t));