diff --git a/Output/Fonts/Fonts.xml b/Output/Fonts/Fonts.xml
index f9bd90df..5d499a59 100644
--- a/Output/Fonts/Fonts.xml
+++ b/Output/Fonts/Fonts.xml
@@ -2,10 +2,28 @@
Normal
+ 0,00
+ 0,00
+ 0,00
+ 0,00
+ 1,00
FreeSans
FreeSans.ttf
FreeSansBold.ttf
FreeSansOblique.ttf
FreeSansBoldOblique.ttf
+
+ Outline
+ 0,08
+ 0,00
+ 0,00
+ 0,00
+ 1,00
+ FreeSans
+ FreeSans.ttf
+ FreeSansBold.ttf
+ FreeSansOblique.ttf
+ FreeSansBoldOblique.ttf
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient.xml b/Output/Themes/Ambient.xml
index 033f80e3..25940dca 100644
--- a/Output/Themes/Ambient.xml
+++ b/Output/Themes/Ambient.xml
@@ -1,12 +1,12 @@
- 4
+ 5
Ambient
bohning
Ambient
0
- 1
+ 2
Cursor
diff --git a/Output/Themes/Ambient/Screens/ScreenHighscore.xml b/Output/Themes/Ambient/Screens/ScreenHighscore.xml
index 596abbd3..80f2dd70 100644
--- a/Output/Themes/Ambient/Screens/ScreenHighscore.xml
+++ b/Output/Themes/Ambient/Screens/ScreenHighscore.xml
@@ -65,7 +65,7 @@
- Normal
+ Outline
TR_SCREENHIGHSCORE_HIGHSCORE
@@ -92,7 +92,7 @@
- Normal
+ Outline
@@ -119,7 +119,7 @@
- Normal
+ Outline
@@ -146,7 +146,7 @@
- Normal
+ Outline
@@ -173,7 +173,7 @@
- Normal
+ Outline
@@ -200,7 +200,7 @@
- Normal
+ Outline
@@ -227,7 +227,7 @@
- Normal
+ Outline
@@ -254,7 +254,7 @@
- Normal
+ Outline
@@ -281,7 +281,7 @@
- Normal
+ Outline
@@ -308,7 +308,7 @@
- Normal
+ Outline
@@ -335,7 +335,7 @@
- Normal
+ Outline
@@ -362,7 +362,7 @@
- Normal
+ Outline
@@ -389,7 +389,7 @@
- Normal
+ Outline
@@ -416,7 +416,7 @@
- Normal
+ Outline
@@ -443,7 +443,7 @@
- Normal
+ Outline
@@ -470,7 +470,7 @@
- Normal
+ Outline
@@ -497,7 +497,7 @@
- Normal
+ Outline
@@ -524,7 +524,7 @@
- Normal
+ Outline
@@ -551,7 +551,7 @@
- Normal
+ Outline
@@ -578,7 +578,7 @@
- Normal
+ Outline
@@ -605,7 +605,7 @@
- Normal
+ Outline
@@ -632,7 +632,7 @@
- Normal
+ Outline
@@ -659,7 +659,7 @@
- Normal
+ Outline
@@ -686,7 +686,7 @@
- Normal
+ Outline
@@ -713,7 +713,7 @@
- Normal
+ Outline
@@ -740,7 +740,7 @@
- Normal
+ Outline
@@ -767,7 +767,7 @@
- Normal
+ Outline
@@ -794,7 +794,7 @@
- Normal
+ Outline
@@ -821,7 +821,7 @@
- Normal
+ Outline
@@ -848,7 +848,7 @@
- Normal
+ Outline
@@ -875,7 +875,7 @@
- Normal
+ Outline
@@ -902,7 +902,7 @@
- Normal
+ Outline
@@ -929,7 +929,7 @@
- Normal
+ Outline
@@ -956,7 +956,7 @@
- Normal
+ Outline
@@ -983,7 +983,7 @@
- Normal
+ Outline
@@ -1010,7 +1010,7 @@
- Normal
+ Outline
@@ -1037,7 +1037,7 @@
- Normal
+ Outline
@@ -1064,7 +1064,7 @@
- Normal
+ Outline
@@ -1091,7 +1091,7 @@
- Normal
+ Outline
@@ -1118,7 +1118,7 @@
- Normal
+ Outline
@@ -1145,7 +1145,7 @@
- Normal
+ Outline
@@ -1172,7 +1172,7 @@
- Normal
+ Outline
@@ -1199,7 +1199,7 @@
- Normal
+ Outline
diff --git a/Output/Themes/Ambient/Screens/ScreenLoad.xml b/Output/Themes/Ambient/Screens/ScreenLoad.xml
index a85293a5..bda793ce 100644
--- a/Output/Themes/Ambient/Screens/ScreenLoad.xml
+++ b/Output/Themes/Ambient/Screens/ScreenLoad.xml
@@ -49,7 +49,7 @@
- Normal
+ Outline
TR_PROGRAM_NAME
@@ -76,7 +76,7 @@
- Normal
+ Outline
TR_SCREENLOAD_LOADING
@@ -103,7 +103,7 @@
- Normal
+ Outline
diff --git a/Output/Themes/Ambient/Screens/ScreenMain.xml b/Output/Themes/Ambient/Screens/ScreenMain.xml
index 63ed0825..41404cb8 100644
--- a/Output/Themes/Ambient/Screens/ScreenMain.xml
+++ b/Output/Themes/Ambient/Screens/ScreenMain.xml
@@ -65,7 +65,7 @@
- Normal
+ Outline
TR_SCREENMAIN_BUTTON_SING
@@ -120,7 +120,7 @@
- Normal
+ Outline
TR_SCREENMAIN_BUTTON_OPTIONS
@@ -175,7 +175,7 @@
- Normal
+ Outline
TR_SCREENMAIN_BUTTON_PROFILES
@@ -230,7 +230,7 @@
- Normal
+ Outline
TR_BUTTON_EXIT
diff --git a/Output/Themes/Ambient/Screens/ScreenNames.xml b/Output/Themes/Ambient/Screens/ScreenNames.xml
index 54e3df3c..0daa48e9 100644
--- a/Output/Themes/Ambient/Screens/ScreenNames.xml
+++ b/Output/Themes/Ambient/Screens/ScreenNames.xml
@@ -65,7 +65,7 @@
- Normal
+ Outline
TR_SCREENNAMES_MENU
@@ -93,7 +93,7 @@
- Normal
+ Outline
@@ -136,7 +136,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -191,7 +191,7 @@
- Normal
+ Outline
TR_BUTTON_START
@@ -246,7 +246,7 @@
- Normal
+ Outline
TR_SCREENNAMES_BUTTON_1PLAYER
@@ -293,7 +293,7 @@
- Normal
+ Outline
TR_SCREENNAMES_BUTTON_2PLAYER
@@ -340,7 +340,7 @@
- Normal
+ Outline
TR_SCREENNAMES_BUTTON_3PLAYER
@@ -410,7 +410,7 @@
186,00
- Normal
+ Outline
Bold
@@ -475,7 +475,7 @@
186,00
- Normal
+ Outline
Bold
@@ -540,7 +540,7 @@
186,00
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenOptions.xml b/Output/Themes/Ambient/Screens/ScreenOptions.xml
index 0099e067..9bf1033a 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptions.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptions.xml
@@ -49,7 +49,7 @@
- Normal
+ Outline
TR_SCREENO_OPTIONS
@@ -92,7 +92,7 @@
- Normal
+ Outline
TR_SCREENO_BUTTON_GAME
@@ -147,7 +147,7 @@
- Normal
+ Outline
TR_SCRENNO_BUTTON_SOUND
@@ -202,7 +202,7 @@
- Normal
+ Outline
TR_SCREENO_BUTTON_RECORD
@@ -257,7 +257,7 @@
- Normal
+ Outline
TR_SCREENO_BUTTON_VIDEO
@@ -312,7 +312,7 @@
- Normal
+ Outline
TR_SCREENO_BUTTON_THEME
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml b/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
index 3ae21688..0054fae4 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsGame.xml
@@ -145,7 +145,7 @@
- Normal
+ Outline
TR_SCREENOGAME_OPTIONS
@@ -172,7 +172,7 @@
- Normal
+ Outline
TR_SCREENOGAME_LANGUAGE
@@ -199,7 +199,7 @@
- Normal
+ Outline
TR_SCREENOGAME_DEBUGLEVEL
@@ -226,7 +226,7 @@
- Normal
+ Outline
TR_SCREENOGAME_SONGMENU
@@ -253,7 +253,7 @@
- Normal
+ Outline
TR_SCREENOGAME_SONGSORTING
@@ -280,7 +280,7 @@
- Normal
+ Outline
TR_SCREENOGAME_TABS
@@ -307,7 +307,7 @@
- Normal
+ Outline
TR_SCREENOGAME_TIMERMODE
@@ -350,7 +350,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -428,7 +428,7 @@
205,33
- Normal
+ Outline
Bold
@@ -493,7 +493,7 @@
205,33
- Normal
+ Outline
Bold
@@ -558,7 +558,7 @@
205,33
- Normal
+ Outline
Bold
@@ -623,7 +623,7 @@
205,33
- Normal
+ Outline
Bold
@@ -688,7 +688,7 @@
308,00
- Normal
+ Outline
Bold
@@ -753,7 +753,7 @@
205,33
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml b/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
index 3fdea73b..0e43d77c 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsRecord.xml
@@ -177,7 +177,7 @@
- Normal
+ Outline
TR_SCREENORECORD_OPTIONS
@@ -204,7 +204,7 @@
- Normal
+ Outline
TR_SCREENORECORD_DEVICE
@@ -231,7 +231,7 @@
- Normal
+ Outline
TR_SCREENORECORD_INPUT
@@ -258,7 +258,7 @@
- Normal
+ Outline
TR_SCREENORECORD_CHANNEL_1
@@ -285,7 +285,7 @@
- Normal
+ Outline
TR_SCREENORECORD_CHANNEL_2
@@ -312,7 +312,7 @@
- Normal
+ Outline
TR_SCREENORECORD_MIC_DELAY
@@ -340,7 +340,7 @@
- Normal
+ Outline
TR_SCREENORECORD_MIC_WARNING
@@ -367,7 +367,7 @@
- Normal
+ Outline
@@ -394,7 +394,7 @@
- Normal
+ Outline
@@ -437,7 +437,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -492,7 +492,7 @@
- Normal
+ Outline
TR_SCREENORECORD_BUTTON_DELAYTEST
@@ -570,7 +570,7 @@
616,00
- Normal
+ Outline
Bold
@@ -635,7 +635,7 @@
616,00
- Normal
+ Outline
Bold
@@ -700,7 +700,7 @@
154,00
- Normal
+ Outline
Bold
@@ -765,7 +765,7 @@
154,00
- Normal
+ Outline
Bold
@@ -830,7 +830,7 @@
123,20
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
index 259915bd..35751819 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsSound.xml
@@ -55,7 +55,7 @@
- Normal
+ Outline
TR_SCREENOSOUND_OPTIONS
@@ -82,7 +82,7 @@
- Normal
+ Outline
TR_SCREENOSOUND_BACKGROUNDMUSIC
@@ -109,7 +109,7 @@
- Normal
+ Outline
TR_SCREENOSOUND_BACKGROUNDMUSICVOLUME
@@ -136,7 +136,7 @@
- Normal
+ Outline
TR_SCREENOSOUND_BACKGROUNDMUSICSOURCE
@@ -179,7 +179,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -257,7 +257,7 @@
205,33
- Normal
+ Outline
Bold
@@ -322,7 +322,7 @@
205,33
- Normal
+ Outline
Bold
@@ -385,13 +385,13 @@
32,00
- 500
+ 500,00
- Normal
+ Outline
Bold
1
-
+
\ No newline at end of file
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml b/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
index 3517c5bd..ac972646 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsTheme.xml
@@ -161,7 +161,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_OPTIONS
@@ -188,7 +188,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_THEME
@@ -215,7 +215,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_SKIN
@@ -242,7 +242,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_COVERTHEME
@@ -269,7 +269,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_NOTELINES
@@ -296,7 +296,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_TONEHELPER
@@ -323,7 +323,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_TIMERLOOK
@@ -350,7 +350,7 @@
- Normal
+ Outline
TR_SCREENOTHEME_COVERLOADING
@@ -393,7 +393,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -471,7 +471,7 @@
616,00
- Normal
+ Outline
Bold
@@ -536,7 +536,7 @@
616,00
- Normal
+ Outline
Bold
@@ -601,7 +601,7 @@
308,00
- Normal
+ Outline
Bold
@@ -666,7 +666,7 @@
308,00
- Normal
+ Outline
Bold
@@ -731,7 +731,7 @@
308,00
- Normal
+ Outline
Bold
@@ -796,7 +796,7 @@
308,00
- Normal
+ Outline
Bold
@@ -861,7 +861,7 @@
616,00
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml b/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
index 292cce63..c74bdfd3 100644
--- a/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
+++ b/Output/Themes/Ambient/Screens/ScreenOptionsVideo.xml
@@ -97,7 +97,7 @@
- Normal
+ Outline
TR_SCREENOVIDEO_OPTIONS
@@ -124,7 +124,7 @@
- Normal
+ Outline
TR_SCREENOVIDEO_VIDEOBACKGROUNDS
@@ -151,7 +151,7 @@
- Normal
+ Outline
TR_SCREENOVIDEO_VIDEOPREVIEW
@@ -178,7 +178,7 @@
- Normal
+ Outline
TR_SCREENOVIDEO_VIDEOINSONGS
@@ -221,7 +221,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -299,7 +299,7 @@
205,33
- Normal
+ Outline
Bold
@@ -364,7 +364,7 @@
205,33
- Normal
+ Outline
Bold
@@ -429,7 +429,7 @@
205,33
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenProfiles.xml b/Output/Themes/Ambient/Screens/ScreenProfiles.xml
index 7a6c788f..6f19efb6 100644
--- a/Output/Themes/Ambient/Screens/ScreenProfiles.xml
+++ b/Output/Themes/Ambient/Screens/ScreenProfiles.xml
@@ -145,7 +145,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_PROFILES
@@ -172,7 +172,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_PLAYERNAME
@@ -199,7 +199,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_GAMEDIFFICULTY
@@ -226,7 +226,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_AVATAR
@@ -253,7 +253,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_GUESTPROFILE
@@ -280,7 +280,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_ACTIVE
@@ -323,7 +323,7 @@
- Normal
+ Outline
@@ -370,7 +370,7 @@
- Normal
+ Outline
TR_BUTTON_BACK
@@ -425,7 +425,7 @@
- Normal
+ Outline
TR_BUTTON_SAVE
@@ -480,7 +480,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_BUTTON_NEW
@@ -535,7 +535,7 @@
- Normal
+ Outline
TR_SCREENPROFILES_BUTTON_DELETE
@@ -613,7 +613,7 @@
219,20
- Normal
+ Outline
Bold
@@ -678,7 +678,7 @@
208,67
- Normal
+ Outline
Bold
@@ -743,7 +743,7 @@
208,67
- Normal
+ Outline
Bold
@@ -808,7 +808,7 @@
313,00
- Normal
+ Outline
Bold
@@ -873,7 +873,7 @@
313,00
- Normal
+ Outline
Bold
diff --git a/Output/Themes/Ambient/Screens/ScreenScore.xml b/Output/Themes/Ambient/Screens/ScreenScore.xml
index d03c560d..1673c63e 100644
--- a/Output/Themes/Ambient/Screens/ScreenScore.xml
+++ b/Output/Themes/Ambient/Screens/ScreenScore.xml
@@ -398,7 +398,7 @@
- Normal
+ Outline
TR_SCREENSCORE_SCORES
@@ -425,7 +425,7 @@
- Normal
+ Outline
@@ -452,7 +452,7 @@
- Normal
+ Outline
@@ -479,7 +479,7 @@
- Normal
+ Outline
@@ -506,7 +506,7 @@
- Normal
+ Outline
@@ -533,7 +533,7 @@
- Normal
+ Outline
@@ -560,7 +560,7 @@
- Normal
+ Outline
@@ -587,7 +587,7 @@
- Normal
+ Outline
@@ -614,7 +614,7 @@
- Normal
+ Outline
@@ -641,7 +641,7 @@
- Normal
+ Outline
@@ -668,7 +668,7 @@
- Normal
+ Outline
@@ -695,7 +695,7 @@
- Normal
+ Outline
@@ -722,7 +722,7 @@
- Normal
+ Outline
@@ -749,7 +749,7 @@
- Normal
+ Outline
@@ -776,7 +776,7 @@
- Normal
+ Outline
@@ -803,7 +803,7 @@
- Normal
+ Outline
@@ -830,7 +830,7 @@
- Normal
+ Outline
@@ -857,7 +857,7 @@
- Normal
+ Outline
@@ -884,7 +884,7 @@
- Normal
+ Outline
@@ -911,7 +911,7 @@
- Normal
+ Outline
@@ -938,7 +938,7 @@
- Normal
+ Outline
@@ -965,7 +965,7 @@
- Normal
+ Outline
@@ -992,7 +992,7 @@
- Normal
+ Outline
@@ -1019,7 +1019,7 @@
- Normal
+ Outline
@@ -1046,7 +1046,7 @@
- Normal
+ Outline
@@ -1073,7 +1073,7 @@
- Normal
+ Outline
diff --git a/Output/Themes/Ambient/Screens/ScreenSing.xml b/Output/Themes/Ambient/Screens/ScreenSing.xml
index 935fb419..0e206c1d 100644
--- a/Output/Themes/Ambient/Screens/ScreenSing.xml
+++ b/Output/Themes/Ambient/Screens/ScreenSing.xml
@@ -611,7 +611,7 @@
- Normal
+ Outline
TR_SCREENSING_BUTTON_CANCEL
@@ -666,7 +666,7 @@
- Normal
+ Outline
TR_SCREENSING_BUTTON_CONTINUE
diff --git a/Output/Themes/Ambient/Screens/ScreenSong.xml b/Output/Themes/Ambient/Screens/ScreenSong.xml
index 2d0cfcfb..f693065d 100644
--- a/Output/Themes/Ambient/Screens/ScreenSong.xml
+++ b/Output/Themes/Ambient/Screens/ScreenSong.xml
@@ -74,7 +74,7 @@
- Normal
+ Outline
@@ -106,7 +106,7 @@
- Normal
+ Outline
@@ -137,7 +137,7 @@
- Normal
+ Outline
TR_SCREENSONG_SEARCH
@@ -164,7 +164,7 @@
- Normal
+ Outline
@@ -229,7 +229,7 @@
- Normal
+ Outline
@@ -257,7 +257,7 @@
- Normal
+ Outline
@@ -285,7 +285,7 @@
- Normal
+ Outline
diff --git a/Output/Themes/Ambient/Skin Blue.xml b/Output/Themes/Ambient/Skin Blue.xml
index 585aff80..9de8a3f4 100644
--- a/Output/Themes/Ambient/Skin Blue.xml
+++ b/Output/Themes/Ambient/Skin Blue.xml
@@ -169,7 +169,7 @@
0,000
0,000
- 0,000
+ 0,600
1,000
diff --git a/Output/Themes/Ambient/Skin Green.xml b/Output/Themes/Ambient/Skin Green.xml
index c1fb83b1..81bc480d 100644
--- a/Output/Themes/Ambient/Skin Green.xml
+++ b/Output/Themes/Ambient/Skin Green.xml
@@ -169,7 +169,7 @@
0,000
0,000
- 0,000
+ 0,600
1,000
diff --git a/Output/Themes/Ambient/Skin Red.xml b/Output/Themes/Ambient/Skin Red.xml
index bf15aab2..05c4d75a 100644
--- a/Output/Themes/Ambient/Skin Red.xml
+++ b/Output/Themes/Ambient/Skin Red.xml
@@ -169,7 +169,7 @@
0,000
0,000
- 0,000
+ 0,600
1,000
diff --git a/Output/Themes/Ambient/Skin Yellow.xml b/Output/Themes/Ambient/Skin Yellow.xml
index a72e0825..52b8a5c8 100644
--- a/Output/Themes/Ambient/Skin Yellow.xml
+++ b/Output/Themes/Ambient/Skin Yellow.xml
@@ -169,7 +169,7 @@
0,000
0,000
- 0,000
+ 0,600
1,000
diff --git a/Output/Themes/Changelog/Changelog_ThemeSystem.txt b/Output/Themes/Changelog/Changelog_ThemeSystem.txt
index 43e7ac09..0da5e6f1 100644
--- a/Output/Themes/Changelog/Changelog_ThemeSystem.txt
+++ b/Output/Themes/Changelog/Changelog_ThemeSystem.txt
@@ -1,5 +1,18 @@
Theme System
+++++++++++
+Version 5:
+
+Added:
+ outline thickness 0..1
+ outline color red
+ outline color green
+ outline color blue
+ outline color alpha
+
+to Fonts
+
+
++++++++++
Version 4:
diff --git a/Vocaluxe/Base/CFont.cs b/Vocaluxe/Base/CFont.cs
index 9841e1dd..16eb4208 100644
--- a/Vocaluxe/Base/CFont.cs
+++ b/Vocaluxe/Base/CFont.cs
@@ -2,6 +2,7 @@
using System.Collections;
using System.Collections.Generic;
using System.Drawing;
+using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.IO;
@@ -38,6 +39,7 @@ namespace Vocaluxe.Base
public CGlyph(char chr)
{
+ float outline = CFonts.Outline;
TextFormatFlags flags = TextFormatFlags.NoPadding | TextFormatFlags.NoPrefix;
float factor = GetFactor(chr, flags);
@@ -53,19 +55,53 @@ namespace Vocaluxe.Base
g.Dispose();
bmp.Dispose();
- bmp = new Bitmap((int)(sizeB.Width * 1.5f), sizeB.Height);
+ bmp = new Bitmap((int)(sizeB.Width * 2f), sizeB.Height);
g = System.Drawing.Graphics.FromImage(bmp);
g.Clear(System.Drawing.Color.Transparent);
+ g.SmoothingMode = SmoothingMode.AntiAlias;
+ g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.ClearTypeGridFit;
CFonts.Height = SIZEh;
fo = CFonts.GetFont();
- g.DrawString(chr.ToString(), fo, Brushes.White, new PointF((sizeB.Width - size.Width) / 2f, (sizeB.Height - size.Height - (size.Height + SIZEh/4f) * (1f - factor)) / 2f));
+
+ PointF point = new PointF(
+ outline * Math.Abs(sizeB.Width - size.Width) + (sizeB.Width - size.Width) / 2f + SIZEh / 5f,
+ (sizeB.Height - size.Height - (size.Height + SIZEh/4f) * (1f - factor)) / 2f);
+
+ GraphicsPath path = new GraphicsPath();
+ path.AddString(
+ chr.ToString(),
+ fo.FontFamily,
+ (int)fo.Style,
+ SIZEh,
+ point,
+ new StringFormat());
+
+ Pen pen = new Pen(
+ Color.FromArgb(
+ (int)CFonts.OutlineColor.A * 255,
+ (int)CFonts.OutlineColor.R * 255,
+ (int)CFonts.OutlineColor.G * 255,
+ (int)CFonts.OutlineColor.B * 255),
+ SIZEh * outline);
+
+ pen.LineJoin = LineJoin.Round;
+ g.DrawPath(pen, path);
+ g.FillPath(Brushes.White, path);
+
+ /*
+ g.DrawString(
+ chr.ToString(),
+ fo,
+ Brushes.White,
+ point);
+ * */
Texture = CDraw.AddTexture(bmp);
-
+ //bmp.Save("test.png", ImageFormat.Png);
Chr = chr;
- width = (int)(sizeB.Width * Texture.width/factor / bmp.Width);
+ width = (int)((1f + outline / 2f) * sizeB.Width * Texture.width/factor / bmp.Width);
bmp.Dispose();
g.Dispose();
@@ -146,7 +182,8 @@ namespace Vocaluxe.Base
CFonts.Height = h;
CGlyph glyph = _Glyphs[(int)_htGlyphs[chr]];
float factor = h / glyph.Texture.height;
- CDraw.DrawTexture(glyph.Texture, new SRectF(x, y, glyph.Texture.width * factor, h, z), color);
+ float d = glyph.SIZEh / 5f * factor;
+ CDraw.DrawTexture(glyph.Texture, new SRectF(x - d, y, glyph.Texture.width * factor, h, z), color);
}
public void DrawGlyphReflection(char chr, float x, float y, float h, float z, SColorF color, float rspace, float rheight)
@@ -156,7 +193,8 @@ namespace Vocaluxe.Base
CFonts.Height = h;
CGlyph glyph = _Glyphs[(int)_htGlyphs[chr]];
float factor = h / glyph.Texture.height;
- SRectF rect = new SRectF(x, y, glyph.Texture.width * factor, h, z);
+ float d = glyph.SIZEh / 5f * factor;
+ SRectF rect = new SRectF(x - d, y, glyph.Texture.width * factor, h, z);
CDraw.DrawTextureReflection(glyph.Texture, rect, color, rect, rspace, rheight);
}
@@ -168,8 +206,9 @@ namespace Vocaluxe.Base
CGlyph glyph = _Glyphs[(int)_htGlyphs[chr]];
float factor = h / glyph.Texture.height;
float width = glyph.Texture.width * factor;
-
- CDraw.DrawTexture(glyph.Texture, new SRectF(x, y, width, h, z), color, begin, end);
+ float d = glyph.SIZEh / 5f * factor;
+
+ CDraw.DrawTexture(glyph.Texture, new SRectF(x - d, y, width, h, z), color, begin, end);
}
public float GetWidth(char chr)
@@ -215,6 +254,9 @@ namespace Vocaluxe.Base
public string FileBold;
public string FileBoldItalic;
+ public float Outline; //0..1, 0=not outline 1=100% outline
+ public SColorF OutlineColor;
+
public CFont Normal;
public CFont Italic;
public CFont Bold;
@@ -252,6 +294,30 @@ namespace Vocaluxe.Base
}
}
+ public static float Outline
+ {
+ get { return _Fonts[_CurrentFont].Outline; }
+ set
+ {
+ SFont font = _Fonts[_CurrentFont];
+ font.Outline = value;
+ if (font.Outline < 0f)
+ font.Outline = 0f;
+ if (font.Outline > 1f)
+ font.Outline = 1f;
+ }
+ }
+
+ public static SColorF OutlineColor
+ {
+ get { return _Fonts[_CurrentFont].OutlineColor; }
+ set
+ {
+ SFont font = _Fonts[_CurrentFont];
+ font.OutlineColor = value;
+ }
+ }
+
public static void Init()
{
_settings.Indent = true;
@@ -610,6 +676,15 @@ namespace Vocaluxe.Base
f = new CFont(value);
sf.BoldItalic = f;
+ sf.Outline = 0f;
+ CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
+
+ sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
+ CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
+ CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
+ CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
+ CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
+
_Fonts.Add(sf);
i++;
}
@@ -662,6 +737,15 @@ namespace Vocaluxe.Base
f = new CFont(value);
sf.BoldItalic = f;
+ sf.Outline = 0f;
+ ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
+
+ sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
+ ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
+ ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
+ ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
+ ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
+
if (ok)
_Fonts.Add(sf);
else
@@ -698,6 +782,13 @@ namespace Vocaluxe.Base
writer.WriteElementString("Name", _Fonts[Index].Name);
writer.WriteElementString("Folder", _Fonts[Index].Folder);
+
+ writer.WriteElementString("Outline", _Fonts[Index].Outline.ToString("#0.00"));
+ writer.WriteElementString("ColorR", _Fonts[Index].OutlineColor.R.ToString("#0.00"));
+ writer.WriteElementString("ColorG", _Fonts[Index].OutlineColor.G.ToString("#0.00"));
+ writer.WriteElementString("ColorB", _Fonts[Index].OutlineColor.B.ToString("#0.00"));
+ writer.WriteElementString("ColorA", _Fonts[Index].OutlineColor.A.ToString("#0.00"));
+
writer.WriteElementString("FileNormal", _Fonts[Index].FileNormal);
writer.WriteElementString("FileBold", _Fonts[Index].FileBold);
writer.WriteElementString("FileItalic", _Fonts[Index].FileItalic);
diff --git a/Vocaluxe/Base/CTheme.cs b/Vocaluxe/Base/CTheme.cs
index d28064da..639ebdac 100644
--- a/Vocaluxe/Base/CTheme.cs
+++ b/Vocaluxe/Base/CTheme.cs
@@ -82,7 +82,7 @@ namespace Vocaluxe.Base
static class CTheme
{
// Version number for main theme and skin files. Increment it, if you've changed something on the theme files!
- const int ThemeSystemVersion = 4;
+ const int ThemeSystemVersion = 5;
const int SkinSystemVersion = 3;
#region Vars
diff --git a/Vocaluxe/Menu/CLyric.cs b/Vocaluxe/Menu/CLyric.cs
index 8a70e0ab..15cd5d2b 100644
--- a/Vocaluxe/Menu/CLyric.cs
+++ b/Vocaluxe/Menu/CLyric.cs
@@ -142,7 +142,7 @@ namespace Vocaluxe.Menu
{
_Theme.Name = ElementName;
LoadTextures();
- _Text = new CText(_X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Normal", Color, String.Empty);
+ _Text = new CText(_X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Outline", Color, String.Empty);
}
return _ThemeLoaded;
}
diff --git a/Vocaluxe/Menu/CText.cs b/Vocaluxe/Menu/CText.cs
index 770a40f3..c0c95948 100644
--- a/Vocaluxe/Menu/CText.cs
+++ b/Vocaluxe/Menu/CText.cs
@@ -423,6 +423,9 @@ namespace Vocaluxe.Menu
CurrentColor = new SColorF(SColor);
SColorF color = new SColorF(CurrentColor.R, CurrentColor.G, CurrentColor.B, CurrentColor.A * Alpha);
+
+ CFonts.SetFont(Fon);
+ CFonts.Style = Style;
CFonts.DrawText(CLanguage.Translate(Text), h, x, y, Z, color);
if (Reflection)
@@ -461,6 +464,9 @@ namespace Vocaluxe.Menu
CurrentColor = new SColorF(SColor);
SColorF color = new SColorF(CurrentColor.R, CurrentColor.G, CurrentColor.B, CurrentColor.A * Alpha);
+
+ CFonts.SetFont(Fon);
+ CFonts.Style = Style;
CFonts.DrawText(Text, Height, x, Y, Z, color, begin, end);
if (Reflection)
@@ -520,6 +526,9 @@ namespace Vocaluxe.Menu
CurrentColor = new SColorF(SColor);
SColorF color = new SColorF(CurrentColor.R, CurrentColor.G, CurrentColor.B, CurrentColor.A * Alpha);
+
+ CFonts.SetFont(Fon);
+ CFonts.Style = Style;
CFonts.DrawText(CLanguage.Translate(Text), h, x, y, Z, color);
if (reflection)