diff --git a/Output/Fonts/Fonts.xml b/Output/Fonts/Fonts.xml index f9bd90df..70524adf 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,10 + 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/Readme.txt b/Output/Readme.txt index 4f05511a..93940687 100644 --- a/Output/Readme.txt +++ b/Output/Readme.txt @@ -115,6 +115,7 @@ Songscreen ================================= = 5. Help & Suppport = ================================= +GitHub Wiki: https://github.com/Vocaluxe/Vocaluxe/wiki Support Forum (German): http://www.ultra-star.de Song-DataBase (USDB): http://usdb.animux.de/ 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 686e2751..9d8b1bc1 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 @@ -248,7 +248,7 @@ - Normal + Outline TR_BUTTON_BACK @@ -326,7 +326,7 @@ 205,33 - Normal + Outline Bold @@ -391,7 +391,7 @@ 205,33 - Normal + Outline Bold @@ -456,7 +456,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/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/README b/README index e69de29b..071051a3 100644 --- a/README +++ b/README @@ -0,0 +1,50 @@ + __ __ _ + \ \ / /__ ___ __ _| |_ ___ _____ + \ \ / / _ \ / __/ _` | | | | \ \/ / _ \ + \ V / (_) | (_| (_| | | |_| |> < __/ + \_/ \___/ \___\__,_|_|\__,_/_/\_\___| + + +================================= += 1. About = += 2. Download = += 3. Development Guidelines = += 4. Help & Support = +================================= + + +================================= += 1. About = +================================= +Vocaluxe is a free and open source singing game. It allows up to three players (currently) to sing along with music using microphones in order to score points, depending on the pitch of the voice and the rhythm of singing. + +Vocaluxe is an entirely new development in C#, inspired by the original UltraStar (developed by corvus5) and the great Ultrastar Deluxe project. + +Supported Operating Systems / Requirements: +- WinXP, Vista, Windows 7 with .NET 2.0 +- 1 GHz CPU, 512 MB RAM, Graphics card with OpenGL 2.1 or DirectX 9.0 support + + +================================= += 2. Download = +================================= +You can donwloadn precompiles Windows binaries at SourceForge: + +Download: http://sourceforge.net/projects/vocaluxe/ + + +================================= += 3. Development Guidelines = +================================= +The development of Vocaluxe uses this git branching model: + + http://nvie.com/posts/a-successful-git-branching-model/ + + +================================= += 4. Help & Suppport = +================================= +GitHub Wiki: https://github.com/Vocaluxe/Vocaluxe/wiki +GitGub Issues Tracker: https://github.com/Vocaluxe/Vocaluxe/issues +Support Forum (German): http://www.ultra-star.de +Song-DataBase (USDB): http://usdb.animux.de/ \ No newline at end of file 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/CLanguage.cs b/Vocaluxe/Base/CLanguage.cs index cf118839..6b209bba 100644 --- a/Vocaluxe/Base/CLanguage.cs +++ b/Vocaluxe/Base/CLanguage.cs @@ -77,6 +77,9 @@ namespace Vocaluxe.Base public static string Translate(string KeyWord) { + if (KeyWord == null) + return null; + if (KeyWord.Length < 3) return KeyWord; 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/Doc/Roadmap.txt b/Vocaluxe/Doc/Roadmap.txt index 66024f04..5cbb31b5 100644 --- a/Vocaluxe/Doc/Roadmap.txt +++ b/Vocaluxe/Doc/Roadmap.txt @@ -81,41 +81,27 @@ - WiiMote Support - Jukebox light (bg music controls) - Show Avatars and Player Name in Sing Screen (and perhaps some other screens) - -+ v0.3.0: - - Song Editor - - Help System - - Duet (full support) - - Mark newly added songs - - Playlist-Support - - Theme System Update (Theme Editor) - -+ v0.4.0: - - Challenge Mode (with more than 2 player at once) - - More Player at once - -+ v0.5.0: - - Party Mode: Team-Battle - - Party Mode: Tic, Tac, Toe - - Party Mode: 4 in a row - -+ v0.6.0: - - Jukebox - -+ v0.7.0: - - Tournament Mode - -+ v0.8.0: - - Party Mode: Casting Show - -+ v0.9.0: - - ? - -+ v1.0.0: - - ? - + - New Lyric Effects + ----------------- just some ideas: + - Installer + - More Song List Views + - Tile Board: Show title and artist under each tile - OnScreen Keyboard? - - Kinect Support? \ No newline at end of file + - Kinect Support? + - Help System + - Party Mode: Casting Show + - More Player at once + - Mark newly added songs + - Playlist-Support + - Theme Editor + - Jukebox + - Tournament Mode + - Party Mode: Team-Battle + - Party Mode: Tic, Tac, Toe + - Party Mode: 4 in a row + - Challenge Mode (with more than 2 player at once) + - Song Editor + - Duet (full support, choose/toggle names) \ No newline at end of file diff --git a/Vocaluxe/Lib/Sound/CPortAudioPlay.cs b/Vocaluxe/Lib/Sound/CPortAudioPlay.cs index dc23bc91..ad2122f0 100644 --- a/Vocaluxe/Lib/Sound/CPortAudioPlay.cs +++ b/Vocaluxe/Lib/Sound/CPortAudioPlay.cs @@ -843,7 +843,7 @@ namespace Vocaluxe.Lib.Sound float latency = buf.Length / _BytesPerSecond + CConfig.AudioLatency/1000f; float time = _TimeCode - _data.BytesNotRead / _BytesPerSecond - latency; - _CurrentTime = time; // _SyncTimer.Update(time); + _CurrentTime = _SyncTimer.Update(time); } try 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) diff --git a/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs b/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs index 43cd6f28..7c5c069e 100644 --- a/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs +++ b/Vocaluxe/Menu/SongMenu/CSongMenuFramework.cs @@ -394,7 +394,7 @@ namespace Vocaluxe.Menu.SongMenu if (_streams.Count > 0 && _video != -1) { - if (CVideo.VdFinished(_video)) + if (CVideo.VdFinished(_video) || CSound.IsFinished(_actsongstream)) { CVideo.VdClose(_video); _video = -1;