diff options
-rwxr-xr-x | medley_new/game/fonts/fonts.ini | 19 | ||||
-rw-r--r-- | medley_new/src/base/TextGL.pas | 26 | ||||
-rw-r--r-- | medley_new/src/screens/UScreenSing.pas | 2 |
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)); |