From 990a17b6b72252ea338e545274800867ee492f55 Mon Sep 17 00:00:00 2001 From: brunzelchen Date: Sun, 17 Oct 2010 18:06:59 +0000 Subject: - added PreCache option in font.ini - added MaxResolution option in font.ini - added new font type: bold high-res (for medley count-down) git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/branches/experimental@2678 b956fd51-792f-4845-bead-9b4dfca2ff2c --- medley_new/game/fonts/fonts.ini | 19 ++++++++++++++++++- medley_new/src/base/TextGL.pas | 26 ++++++++++++++++++++++---- 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)); -- cgit v1.2.3