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)