Exemple #1
0
        /// <summary>Renders a background</summary>
        /// <param name="Data">The background to render</param>
        /// <param name="Alpha">The alpha level</param>
        /// <param name="Scale">The scale</param>
        public void Render(BackgroundHandle Data, float Alpha, float Scale)
        {
            DynamicBackground dynamicBackground = Data as DynamicBackground;
            StaticBackground  staticBackground  = Data as StaticBackground;
            BackgroundObject  backgroundObject  = Data as BackgroundObject;

            if (dynamicBackground != null)
            {
                RenderDynamicBackground(dynamicBackground, Alpha, Scale);
            }

            if (staticBackground != null)
            {
                if (renderer.currentOptions.IsUseNewRenderer)
                {
                    RenderStaticBackground(staticBackground, Alpha, Scale);
                }
                else
                {
                    RenderStaticBackgroundImmediate(staticBackground, Alpha, Scale);
                }
            }

            if (backgroundObject != null)
            {
                RenderBackgroundObject(backgroundObject);
            }
        }
Exemple #2
0
        private void ApplyDynamicBackground([CanBeNull] string filename, double opacity = 0.5)
        {
            ActionExtension.InvokeInMainThreadAsync(() => {
                try {
                    if (filename == null)
                    {
                        DisposeHelper.Dispose(ref _dynamicBackground);
                        if (FancyBackgroundManager.Instance.Enabled)
                        {
                            FancyBackgroundManager.Instance.Recreate(this);
                        }
                        else
                        {
                            ClearValue(BackgroundContentProperty);
                        }
                    }
                    else
                    {
                        var animatedBackground = Regex.IsMatch(filename, @"\.(?:avi|flv|gif|m(?:4[pv]|kv|ov|p[4g])|og[vg]|qt|webm|wmv)$",
                                                               RegexOptions.IgnoreCase) ?
                                                 filename : null;
                        var staticBackground = animatedBackground == null ? filename : Regex.Replace(filename, @"\.\w+$", @".jpg");

                        _dynamicBackground?.Dispose();
                        BackgroundContent = _dynamicBackground = new DynamicBackground {
                            Animated = animatedBackground,
                            Static   = staticBackground,
                            Opacity  = opacity
                        };
                    }
                } catch (Exception e) {
                    Logging.Error(e);
                }
            });
        }
Exemple #3
0
 /// <summary>Renders a dynamic frustrum based background</summary>
 /// <param name="data">The background to render</param>
 /// <param name="alpha">The alpha level</param>
 /// <param name="scale">The scale</param>
 private void RenderDynamicBackground(DynamicBackground data, float alpha, float scale)
 {
     if (renderer.currentOptions.IsUseNewRenderer)
     {
         RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], alpha, scale);
     }
     else
     {
         RenderStaticBackgroundImmediate(data.StaticBackgrounds[data.CurrentBackgroundIndex], alpha, scale);
     }
 }
Exemple #4
0
        /// <summary>Renders a dynamic frustrum based background</summary>
        /// <param name="data">The background to render</param>
        /// <param name="scale">The scale</param>
        private void RenderDynamicBackground(DynamicBackground data, float scale)
        {
            if (data.PreviousBackgroundIndex == data.CurrentBackgroundIndex)
            {
                if (renderer.currentOptions.IsUseNewRenderer)
                {
                    RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                }
                else
                {
                    RenderStaticBackgroundImmediate(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                }

                return;
            }

            switch (data.StaticBackgrounds[data.CurrentBackgroundIndex].Mode)
            {
            case BackgroundTransitionMode.FadeIn:
                if (renderer.currentOptions.IsUseNewRenderer)
                {
                    RenderStaticBackground(data.StaticBackgrounds[data.PreviousBackgroundIndex], 1.0f, scale);
                    RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], data.CurrentAlpha, scale);
                }
                else
                {
                    RenderStaticBackgroundImmediate(data.StaticBackgrounds[data.PreviousBackgroundIndex], 1.0f, scale);
                    RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], data.CurrentAlpha, scale);
                }
                break;

            case BackgroundTransitionMode.FadeOut:
                if (renderer.currentOptions.IsUseNewRenderer)
                {
                    RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                    RenderStaticBackground(data.StaticBackgrounds[data.PreviousBackgroundIndex], data.CurrentAlpha, scale);
                }
                else
                {
                    RenderStaticBackgroundImmediate(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                    RenderStaticBackgroundImmediate(data.StaticBackgrounds[data.PreviousBackgroundIndex], data.CurrentAlpha, scale);
                }
                break;
            }
        }
Exemple #5
0
        /// <summary>Renders a dynamic frustrum based background</summary>
        /// <param name="data">The background to render</param>
        /// <param name="scale">The scale</param>
        private void RenderDynamicBackground(DynamicBackground data, float scale)
        {
            if (data.PreviousBackgroundIndex == data.CurrentBackgroundIndex)
            {
                RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                return;
            }

            switch (data.StaticBackgrounds[data.CurrentBackgroundIndex].Mode)
            {
            case BackgroundTransitionMode.FadeIn:
                RenderStaticBackground(data.StaticBackgrounds[data.PreviousBackgroundIndex], 1.0f, scale);
                RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], data.CurrentAlpha, scale);
                break;

            case BackgroundTransitionMode.FadeOut:
                RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], 1.0f, scale);
                RenderStaticBackground(data.StaticBackgrounds[data.PreviousBackgroundIndex], data.CurrentAlpha, scale);
                break;
            }
        }
Exemple #6
0
        /// <summary>Renders a background</summary>
        /// <param name="Data">The background to render</param>
        /// <param name="Alpha">The alpha level</param>
        /// <param name="Scale">The scale</param>
        public void Render(BackgroundHandle Data, float Alpha, float Scale)
        {
            DynamicBackground dynamicBackground = Data as DynamicBackground;
            StaticBackground  staticBackground  = Data as StaticBackground;
            BackgroundObject  backgroundObject  = Data as BackgroundObject;

            if (dynamicBackground != null)
            {
                RenderDynamicBackground(dynamicBackground, Alpha, Scale);
            }

            if (staticBackground != null)
            {
                RenderStaticBackground(staticBackground, Alpha, Scale);
            }

            if (backgroundObject != null)
            {
                RenderBackgroundObject(backgroundObject);
            }
        }
Exemple #7
0
 /// <summary>Renders a dynamic frustrum based background</summary>
 /// <param name="data">The background to render</param>
 /// <param name="alpha">The alpha level</param>
 /// <param name="scale">The scale</param>
 private void RenderDynamicBackground(DynamicBackground data, float alpha, float scale)
 {
     RenderStaticBackground(data.StaticBackgrounds[data.CurrentBackgroundIndex], alpha, scale);
 }