From fe6b7ef8c8e109b15b0f73224b84e6a8af6a89a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20K=C3=BCpper?= Date: Sat, 26 Oct 2013 14:36:26 +0200 Subject: [PATCH] Added new background-option: SlideShow. --- VocaluxeLib/Menu/CBackground.cs | 65 ++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs index 7049bac9..be8f8b06 100644 --- a/VocaluxeLib/Menu/CBackground.cs +++ b/VocaluxeLib/Menu/CBackground.cs @@ -104,7 +104,7 @@ namespace VocaluxeLib.Menu string slideShow = ""; int i = 1; - + _Theme.SlideShowTextures = new List(); while (xmlReader.ItemExists(item + "/SlideShow" + i)) { xmlReader.GetValue(item + "/SlideShow" + i, out slideShow, String.Empty); @@ -191,11 +191,19 @@ namespace VocaluxeLib.Menu ok = _DrawVideo(); } +<<<<<<< .mine + if (_Theme.Type == EBackgroundTypes.SlideShow && _Theme.SlideShowTextures.Count > 0) + { + ok = _DrawSlideShow(); + } + +======= if (_Theme.Type == EBackgroundTypes.SlideShow ) { ok = _DrawSlideShow(); } +>>>>>>> .theirs if (!String.IsNullOrEmpty(_Theme.TextureName) && (_Theme.Type == EBackgroundTypes.Texture || (_Theme.Type == EBackgroundTypes.Video && (CBase.Config.GetVideoBackgrounds() == EOffOn.TR_CONFIG_OFF || !ok)))) @@ -270,6 +278,60 @@ namespace VocaluxeLib.Menu return false; } +<<<<<<< .mine + private bool _DrawSlideShow() + { + if (_SlideShowTextures.Count > 0) + { + if (!_SlideShowTimer.IsRunning) + { + _SlideShowTimer.Start(); + _SlideShowCurrent = 0; + } + + CTexture texture = _SlideShowTextures[_SlideShowCurrent]; + + if (texture == null) + return false; + + var bounds = new RectangleF(0f, 0f, CBase.Settings.GetRenderW(), CBase.Settings.GetRenderH()); + RectangleF rect; + CHelper.SetRect(bounds, out rect, texture.OrigAspect, EAspect.Crop); + + CBase.Drawing.DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, CBase.Settings.GetZFar() / 4)); + + if (_SlideShowTimer.ElapsedMilliseconds >= (CBase.Settings.GetSlideShowFadeTime() + CBase.Settings.GetSlideShowImageTime())) + { + _SlideShowTimer.Restart(); + if (_SlideShowCurrent + 1 < _SlideShowTextures.Count) + _SlideShowCurrent++; + else if (_SlideShowCurrent != 0) + _SlideShowCurrent = 0; + } + else if (_SlideShowTimer.ElapsedMilliseconds >= CBase.Settings.GetSlideShowImageTime()) + { + if (_SlideShowCurrent + 1 < _SlideShowTextures.Count) + texture = _SlideShowTextures[_SlideShowCurrent + 1]; + else if (_SlideShowCurrent != 0) + texture = _SlideShowTextures[0]; + else + texture = null; + + if (texture != null) + { + float alpha = (_SlideShowTimer.ElapsedMilliseconds - CBase.Settings.GetSlideShowImageTime()) / CBase.Settings.GetSlideShowFadeTime(); + CHelper.SetRect(bounds, out rect, texture.OrigAspect, EAspect.Crop); + CBase.Drawing.DrawTexture(texture, new SRectF(rect.X, rect.Y, rect.Width, rect.Height, (CBase.Settings.GetZFar() / 4) - 1), new SColorF(1,1,1, alpha)); + } + } + + return true; + } + return false; + } + + +======= private bool _DrawSlideShow() { if (_SlideShowTextures.Count > 0) @@ -322,6 +384,7 @@ namespace VocaluxeLib.Menu return false; } +>>>>>>> .theirs private bool _DrawVideo() { CTexture videoTexture = CBase.Theme.GetSkinVideoTexture(_Theme.VideoName, _PartyModeID);