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; } } }
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); }