Index: WindowPlugins/GUIPictures/GUISlideShow.cs =================================================================== --- WindowPlugins/GUIPictures/GUISlideShow.cs (revision 26673) +++ WindowPlugins/GUIPictures/GUISlideShow.cs (working copy) @@ -823,10 +823,43 @@ // x-fade GUIGraphicsContext.DX9Device.Clear(ClearFlags.Target, Color.Black, 1.0f, 0); + + //Show center-zoomed picture as Background + int lColorDiffuse = 0xff; + lColorDiffuse <<= 24; + lColorDiffuse |= 0x202020; + float backWidth, backHeight, backX, backY, helperRatio, helperScreen; + helperScreen = ((float)GUIGraphicsContext.Width / (float)GUIGraphicsContext.Height); + helperRatio = (16F / 9F); + + if (helperScreen < 1.7) + { + helperRatio = (4F / 3F); + } + if (_transitionMethod != 9 || _currentSlide == null) { GetOutputRect(_backgroundSlide.Width, _backgroundSlide.Height, _zoomFactorBackground, out x, out y, out width, out height); + + //Get rectangle for background + if (width >= height) + { + backHeight = (int)(height / 2); + backWidth = (int)(backHeight * helperRatio); + backY = (int)(height / 4); + backX = (int)((width - backWidth) / 2); + } + else + { + backWidth = (int)(width / 2); + backHeight = (int)(backWidth / helperRatio); + backX = (int)(width / 4); + backY = (int)((height - backHeight) / 2); + } + + Util.Picture.RenderImage(_backgroundSlide.Texture, 0, 0, GUIGraphicsContext.Width, GUIGraphicsContext.Height, backWidth, backHeight, backX, backY, lColorDiffuse); + if (_zoomTopBackground + _zoomHeight > _backgroundSlide.Height) { _zoomHeight = _backgroundSlide.Height - _zoomTopBackground; @@ -847,6 +880,27 @@ if (_currentSlide != null) { + //Show center-zoomed picture as Background + GetOutputRect(_currentSlide.Width, _currentSlide.Height, _currentZoomFactor, out x, out y, out width, out height); + + //Get rectangle for background + if (width >= height) + { + backHeight = (int)(height / 2); + backWidth = (int)(backHeight * helperRatio); + backY = (int)(height / 4); + backX = (int)((width - backWidth) / 2); + } + else + { + backWidth = (int)(width / 2); + backHeight = (int)(backWidth / helperRatio); + backX = (int)(width / 4); + backY = (int)((height - backHeight) / 2); + } + + Util.Picture.RenderImage(_currentSlide.Texture, 0, 0, GUIGraphicsContext.Width, GUIGraphicsContext.Height, backWidth, backHeight, backX, backY, lColorDiffuse); + // render the new picture bool bResult = false; //Log.Info("method:{0} frame:{1}", _transitionMethod, _frameCounter);