private void Validate_TopFrameType(FlagsViewModel model, TopFrameType oldValue, TopFrameType newValue)
        {
            if (!model.TopDrawType.Equals(TopDrawType.Texture))
            {
                model.TopFrameType = TopFrameType.Single;
            }
            else
            {
                switch (Textures.Top.Width)
                {
                case 512:
                    model.TopFrameType
                        = FilterEnum(newValue, oldValue, TopFrameType.Single);
                    break;

                case 1024:
                    Flags.TopFrameType
                        = FilterEnum(Flags.TopFrameType,
                                     TopFrameType.FastScroll,
                                     TopFrameType.SlowScroll,
                                     TopFrameType.FastScroll);
                    break;
                }
            }
        }
Exemple #2
0
        private void OnRender_BackgroundTexture(DrawingContext dc, TopFrameType frameType, ImageSource wallpaper)
        {
            ShaderEnable = 0;

            var scrollEnable = frameType == TopFrameType.SlowScroll || frameType == TopFrameType.FastScroll;

            const int SCR_OFFSET = 1008 - (412 / 2);
            const int OFFSET_3D  = 6;

            if (scrollEnable)
            {
                var posMap = _isListening
                    ? (Math.Sin(CompositionTargetEx.SecondsFromStart / 3) + 1) * SCR_OFFSET
                    : 0;
                posMap -= OFFSET_3D;

                if (posMap <= OFFSET_3D)
                {
                    dc.DrawImage(wallpaper, new Rect(-posMap - 1008, 0, wallpaper.Width, wallpaper.Height));
                }
                if (posMap < 1008)
                {
                    dc.DrawImage(wallpaper, new Rect(-posMap, 0, wallpaper.Width, wallpaper.Height));
                }
                if (posMap + 412 > 1008)
                {
                    dc.DrawImage(wallpaper, new Rect(-posMap + 1007, 0, wallpaper.Width, wallpaper.Height));
                }
            }
            else
            {
                dc.DrawImage(wallpaper, new Rect(0, 0, wallpaper.Width, wallpaper.Height));
            }

            OnRender_3DCorners(dc);
        }
        private void OnRender_BackgroundTexture(DrawingContext dc, TopFrameType frameType, ImageSource wallpaper)
        {
            SetEnableWarp(false);

            var scrollEnable = frameType == TopFrameType.SlowScroll || frameType == TopFrameType.FastScroll;

            const int SCR_OFFSET = 1008 - (412 / 2);
            const int OFFSET_3D = 6;
            if (scrollEnable)
            {
                var posMap = _isListening
                                 ? (Math.Sin(CompositionTargetEx.SecondsFromStart / 3) + 1) * SCR_OFFSET
                                 : 0;
                posMap -= OFFSET_3D;


                if (posMap <= OFFSET_3D)
                    dc.DrawImage(wallpaper, new Rect(-posMap - 1008, 0, wallpaper.Width, wallpaper.Height));
                if (posMap < 1008)
                    dc.DrawImage(wallpaper, new Rect(-posMap, 0, wallpaper.Width, wallpaper.Height));
                if (posMap + 412 > 1008)
                    dc.DrawImage(wallpaper, new Rect(-posMap + 1007, 0, wallpaper.Width, wallpaper.Height));
       
            }
            else
            {
                dc.DrawImage(wallpaper, new Rect(0, 0, wallpaper.Width, wallpaper.Height));
            }

            OnRender_3DCorners(dc);
        }