diff --git a/Compatible/Compatible.cs b/Compatible/Compatible.cs index 0a3b95b..98f1615 100644 --- a/Compatible/Compatible.cs +++ b/Compatible/Compatible.cs @@ -792,6 +792,11 @@ zipEntry.FileName = $"Audio/Higher Entry Item{Path.GetExtension(zipEntry.FileName)}"; wasModified = true; } + if (zipEntry.FileName.StartsWith($"Sign in/S 0.")) + { + zipEntry.FileName = $"Log In/L 0{Path.GetExtension(zipEntry.FileName)}"; + wasModified = true; + } for (var i = 1; i >= 0; --i) { if (zipEntry.FileName.StartsWith($"Audio/Controller {i}.")) diff --git a/Qwilight/Assets/Language.json b/Qwilight/Assets/Language.json index 5358075..cc3fd5e 100644 --- a/Qwilight/Assets/Language.json +++ b/Qwilight/Assets/Language.json @@ -1611,55 +1611,55 @@ "ko-KR": "노트 라인 개수를 설정합니다.", "en-US": "Sets the number of note lines." }, - "InputFavorModeFill10": { + "InputFavorModeLabelled10": { "ko-KR": "10 으로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 10. (Beta)" }, - "InputFavorModeFill102": { + "InputFavorModeLabelled102": { "ko-KR": "⑩K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural ⑩K. (Beta)" }, - "InputFavorModeFill142": { + "InputFavorModeLabelled142": { "ko-KR": "⑭K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural ⑭K. (Beta)" }, - "InputFavorModeFill242": { + "InputFavorModeLabelled242": { "ko-KR": "24로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 24. (Beta)" }, - "InputFavorModeFill4": { + "InputFavorModeLabelled4": { "ko-KR": "4K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 4K. (Beta)" }, - "InputFavorModeFill484": { + "InputFavorModeLabelled484": { "ko-KR": "48로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 48. (Beta)" }, - "InputFavorModeFill5": { + "InputFavorModeLabelled5": { "ko-KR": "5K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 5K. (Beta)" }, - "InputFavorModeFill51": { + "InputFavorModeLabelled51": { "ko-KR": "⑤K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural ⑤K. (Beta)" }, - "InputFavorModeFill6": { + "InputFavorModeLabelled6": { "ko-KR": "6K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 6K. (Beta)" }, - "InputFavorModeFill7": { + "InputFavorModeLabelled7": { "ko-KR": "7K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 7K. (Beta)" }, - "InputFavorModeFill71": { + "InputFavorModeLabelled71": { "ko-KR": "⑦K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural ⑦K. (Beta)" }, - "InputFavorModeFill8": { + "InputFavorModeLabelled8": { "ko-KR": "8K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 8K. (Beta)" }, - "InputFavorModeFill9": { + "InputFavorModeLabelled9": { "ko-KR": "9K로 자연스럽게 만듭니다. (Beta)", "en-US": "Make it natural 9K. (Beta)" }, diff --git a/Qwilight/Assets/UI/@Default/@Default.zip b/Qwilight/Assets/UI/@Default/@Default.zip index 85e6f03..91fe85a 100644 --- a/Qwilight/Assets/UI/@Default/@Default.zip +++ b/Qwilight/Assets/UI/@Default/@Default.zip @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:89e355203ebf9c0081e65dcae26990fafa1c541df3d31beadb1e6cc7344728e8 -size 150758154 +oid sha256:8e507017f34e811cd39b8638a28113cbd30e0d1ae7e9c7b3dc2874f9b27bb0ec +size 150758150 diff --git a/Qwilight/Bound.cs b/Qwilight/Bound.cs index 8cd182d..b7529cb 100644 --- a/Qwilight/Bound.cs +++ b/Qwilight/Bound.cs @@ -5,13 +5,17 @@ { public struct Bound { + public double Position0Margin; + public double Position1Margin; public double Position0; public double Position1; public double Length; public double Height; - public Bound(double position0, double position1, double length, double height) + public Bound(double position0, double position1, double length, double height, double position0Margin = 0.0, double position1Margin = 0.0) { + Position0Margin = position0Margin; + Position1Margin = position1Margin; Position0 = position0; Position1 = position1; Length = length; @@ -22,6 +26,14 @@ { } + public void Set(Bound r) + { + Position0 = r.Position0; + Position1 = r.Position1; + Length = r.Length; + Height = r.Height; + } + public void Set(double position0, double position1, double length, double height) { Position0 = position0; @@ -42,22 +54,22 @@ Height = Math.Max(0.0, point[3]); } - public bool IsPoint(System.Windows.Point point) => IsPoint(new Point(point.X, point.Y)); + public bool IsPoint(System.Windows.Point point) => Position0 <= point.X && point.X < Position0 + Length && Position1 <= point.Y && point.Y < Position1 + Height; - public bool IsPoint(Point point) => Position0 <= point.X && point.X < Position0 + Length && Position1 <= point.Y && point.Y < Position1 + Height; + public bool IsPoint(Point point) => Position0Margin + Position0 <= point.X && point.X < Position0Margin + Position0 + Length && Position1Margin + Position1 <= point.Y && point.Y < Position1Margin + Position1 + Height; public bool CanPaint => Length > 0.0 && Height > 0.0; - public static implicit operator Windows.Foundation.Rect(Bound r) => new Windows.Foundation.Rect(r.Position0, r.Position1, r.Length, r.Height); - - public static implicit operator Vector2(Bound r) => new Vector2((float)r.Position0, (float)r.Position1); - - public static implicit operator System.Windows.Rect(Bound r) => new System.Windows.Rect(r.Position0, r.Position1, r.Length, r.Height); - - public static implicit operator System.Windows.Point(Bound r) => new System.Windows.Point(r.Position0, r.Position1); + public static implicit operator Windows.Foundation.Rect(Bound r) => new Windows.Foundation.Rect(r.Position0Margin + r.Position0, r.Position1Margin + r.Position1, r.Length, r.Height); public static implicit operator Bound(Windows.Foundation.Rect r) => new Bound(r.X, r.Y, r.Width, r.Height); + public static implicit operator Vector2(Bound r) => new Vector2((float)(r.Position0Margin + r.Position0), (float)(r.Position1Margin + r.Position1)); + + public static implicit operator System.Windows.Rect(Bound r) => new System.Windows.Rect(r.Position0, r.Position1, r.Length, r.Height); + public static implicit operator Bound(System.Windows.Rect r) => new Bound(r.X, r.Y, r.Width, r.Height); + + public static implicit operator System.Windows.Point(Bound r) => new System.Windows.Point(r.Position0, r.Position1); } } diff --git a/Qwilight/MSG/SetD2DViewFill.cs b/Qwilight/MSG/SetD2DViewFill.cs deleted file mode 100644 index 7f1cd9b..0000000 --- a/Qwilight/MSG/SetD2DViewFill.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace Qwilight.MSG -{ - public sealed class SetD2DViewFill - { - } -} \ No newline at end of file diff --git a/Qwilight/System/BaseUI/BasePaintProperty.cs b/Qwilight/System/BaseUI/BasePaintProperty.cs index ab06c00..dcd9671 100644 --- a/Qwilight/System/BaseUI/BasePaintProperty.cs +++ b/Qwilight/System/BaseUI/BasePaintProperty.cs @@ -158,11 +158,11 @@ } } - public void Paint(CanvasDrawingSession targetSession, double millis, DefaultCompute defaultComputer, DefaultCompute handlingComputer) + public void Paint(CanvasDrawingSession targetSession, ref Bound r, double millis, DefaultCompute defaultComputer, DefaultCompute handlingComputer) { if (Mode == 1) { - var r = PaintBound; + r.Set(PaintBound); if (DrawingVariety < 100) { var defaultMediaFaint = (float)Configure.Instance.BaseUIConfigureValue.DefaultMediaFaint; diff --git a/Qwilight/System/BaseUI/BaseUI.cs b/Qwilight/System/BaseUI/BaseUI.cs index ed8b867..fe831b0 100644 --- a/Qwilight/System/BaseUI/BaseUI.cs +++ b/Qwilight/System/BaseUI/BaseUI.cs @@ -1768,9 +1768,9 @@ break; } break; - case "Sign in": + case "Log In": fileNameContents = justFileName.Split(" "); - if (fileNameContents[0] == "S") + if (fileNameContents[0] == "L") { LogInDrawings[Utility.ToInt32(fileNameContents[1])] = defaultDrawing; } diff --git a/Qwilight/System/BaseUI/FadingProperty.cs b/Qwilight/System/BaseUI/FadingProperty.cs index c2cf901..75f34a5 100644 --- a/Qwilight/System/BaseUI/FadingProperty.cs +++ b/Qwilight/System/BaseUI/FadingProperty.cs @@ -42,11 +42,10 @@ } } - public void Paint(CanvasDrawingSession targetSession, double fadingStatus) + public void Paint(CanvasDrawingSession targetSession, ref Bound r, double fadingStatus) { if (Frame > 0) { - var r = new Bound(); var mainViewModel = ViewModels.Instance.MainValue; var defaultLength = mainViewModel.DefaultLength; var defaultHeight = mainViewModel.DefaultHeight; @@ -62,16 +61,16 @@ hasContents = fadingViewComputer.HasContents && fadingViewDrawing != null; if (hasContents) { - HandleDrawing(fadingViewDrawing); + HandleDrawing(fadingViewDrawing, ref r); } } } if (!hasContents) { - HandleDrawing(DrawingSystem.Instance.DefaultDrawing); + HandleDrawing(DrawingSystem.Instance.DefaultDrawing, ref r); } - void HandleDrawing(HandledDrawingItem? fadingViewDrawing) + void HandleDrawing(HandledDrawingItem? fadingViewDrawing, ref Bound r) { var drawing = fadingViewDrawing?.Drawing; if (drawing.HasValue) diff --git a/Qwilight/System/Configure/Configure.cs b/Qwilight/System/Configure/Configure.cs index d181976..929b5d3 100644 --- a/Qwilight/System/Configure/Configure.cs +++ b/Qwilight/System/Configure/Configure.cs @@ -1,8 +1,5 @@ -using CommunityToolkit.Mvvm.Messaging; -using FMOD; -using Microsoft.UI.Xaml.Media; +using FMOD; using Microsoft.Win32; -using Qwilight.MSG; using Qwilight.NoteFile; using Qwilight.UIComponent; using Qwilight.Utilities; @@ -186,7 +183,6 @@ finally { _isLoaded = true; - OnSetQwilightFill(); OnSetMeterNoteColor(); OnSetLimiterColor(); OnSetAudioVisualizerMainColor(); @@ -435,38 +431,6 @@ public bool AllowTwilightComment { get; set; } - public bool IsQwilightFill - { - get => _isQwilightFill; - - set - { - if (SetProperty(ref _isQwilightFill, value)) - { - OnPropertyChanged(nameof(IsQwilightFillText)); - OnPropertyChanged(nameof(IsQwilightFillContents)); - OnPropertyChanged(nameof(QwilightFillMode)); - OnSetQwilightFill(); - } - } - } - - void OnSetQwilightFill() - { - if (_isLoaded) - { - StrongReferenceMessenger.Default.Send(); - } - } - - public string IsQwilightFillText => IsQwilightFill ? LanguageSystem.Instance.QwilightFillText : LanguageSystem.Instance.NotQwilightFillText; - - public string IsQwilightFillContents => IsQwilightFill ? LanguageSystem.Instance.QwilightFillContents : LanguageSystem.Instance.NotQwilightFillContents; - - public System.Windows.Media.Stretch QwilightFillMode => IsQwilightFill ? System.Windows.Media.Stretch.Fill : System.Windows.Media.Stretch.Uniform; - - public Stretch D2DFillMode => IsQwilightFill ? Stretch.Fill : Stretch.Uniform; - public double JudgmentMeterMillis { get => _judgmentMeterMillis; @@ -3215,7 +3179,6 @@ } if (isInit || Utility.IsLowerDate(Date, 1, 14, 78)) { - IsQwilightFill = false; DefaultControllerInputAPI = DefaultControllerSystem.InputAPI.DefaultInput; } if (isInit || Utility.IsLowerDate(Date, 1, 14, 96)) diff --git a/Qwilight/System/DrawingSystem/DrawingSystem.cs b/Qwilight/System/DrawingSystem/DrawingSystem.cs index fd0f5d2..2850a26 100644 --- a/Qwilight/System/DrawingSystem/DrawingSystem.cs +++ b/Qwilight/System/DrawingSystem/DrawingSystem.cs @@ -14,7 +14,6 @@ using System.Collections.Concurrent; using System.Diagnostics; using System.IO; -using System.Numerics; using System.Runtime.InteropServices; using System.Runtime.InteropServices.WindowsRuntime; using System.Windows.Media.Imaging; @@ -91,7 +90,9 @@ new ICanvasBrush[101], new ICanvasBrush[101], }; - Vector2 _drawingQuality; + float _drawingMargin0; + float _drawingMargin1; + double _defaultDPI; CanvasSwapChain _rawTargetSystem; CanvasRenderTarget _targetSystem; byte[] _rawTargetSystemData; @@ -318,8 +319,6 @@ { Span judgments = stackalloc int[6]; var mainViewModel = ViewModels.Instance.MainValue; - var r = new Bound(); - var s = new Bound(); var pauseNotify0Position0 = 0F; var pauseNotify0Position1 = 0F; var pauseNotify1Position0 = 0F; @@ -393,6 +392,9 @@ distanceMillis = millis - lastMillis; lastMillis = millis; + var r = new Bound(0.0, 0.0, 0.0, 0.0, _drawingMargin0, _drawingMargin1); + var s = new Bound(); + var wasLastPointed = LastPointedQueue.TryDequeue(out var lastPointed); var wasLastMoved = LastMovedQueue.TryDequeue(out var lastMoved); var wasLastNotPointed = LastNotPointedQueue.TryDequeue(out var lastNotPointed); @@ -400,8 +402,8 @@ var isNVLL = Configure.Instance.IsNVLL; var allowFramerate = TelnetSystem.Instance.IsAvailable; var mode = mainViewModel.ModeValue; - var defaultLength = (float)_rawTargetSystem.Size.Width; - var defaultHeight = (float)_rawTargetSystem.Size.Height; + var defaultLength = (float)mainViewModel.DefaultLength; + var defaultHeight = (float)mainViewModel.DefaultHeight; var fading = mainViewModel.FadingValue; var fadingStatus = fading.Status; pauseNotify0Position0 = Levels.StandardMarginFloat32; @@ -422,6 +424,7 @@ PaintNotifyXamlItems(); } PaintFramerate(); + PaintMargin(); } } @@ -1178,9 +1181,13 @@ r.Set(targetPosition0 + distanceNet + Levels.StandardEdgeFloat32, drawingPosition1 + Levels.StandardEdgeFloat32, highestNetHeight, highestNetHeight); targetSession.PaintDrawing(ref r, avatarDrawing?.Drawing, netItemFaint); - s.Set(r.Position0 + r.Length * Levels.EdgeXY, r.Position1 + r.Height * Levels.EdgeXY, r.Length * Levels.EdgeMargin, r.Height * Levels.EdgeMargin); - targetSession.PaintDrawing(ref s, avatarEdge?.Drawing, netItemFaint); + r.Position0 += r.Length * Levels.EdgeXY; + r.Position1 += r.Height * Levels.EdgeXY; + r.Length *= Levels.EdgeMargin; + r.Height *= Levels.EdgeMargin; + targetSession.PaintDrawing(ref r, avatarEdge?.Drawing, netItemFaint); + r.Set(targetPosition0 + distanceNet + Levels.StandardEdgeFloat32, drawingPosition1 + Levels.StandardEdgeFloat32, highestNetHeight, highestNetHeight); targetSession.FillRectangle(r, lowHitPointsPaint); if (drawings != null && netItem.AvatarNetStatus == Event.Types.AvatarNetStatus.Default) @@ -1198,17 +1205,17 @@ switch (drawing.DrawingVariety) { case Event.Types.NetDrawing.Types.Variety.Note: - s.Set(drawing.Position0 * valueLength, drawing.Position1 * valueHeight, drawing.Length * valueLength, drawing.Height * valueHeight); - var ellipse = (float)Math.Min(s.Length / 2, s.Height / 2); - session.FillRoundedRectangle(s, ellipse, ellipse, valueColor); + r.Set(drawing.Position0 * valueLength, drawing.Position1 * valueHeight, drawing.Length * valueLength, drawing.Height * valueHeight); + var ellipse = (float)Math.Min(r.Length / 2, r.Height / 2); + session.FillRoundedRectangle(r, ellipse, ellipse, valueColor); break; case Event.Types.NetDrawing.Types.Variety.Main: - s.Set(drawing.Position0 * valueLength, drawing.Position1 * valueHeight, drawing.Length * valueLength, drawing.Height * valueHeight); - session.FillRectangle(s, valueColor); + r.Set(drawing.Position0 * valueLength, drawing.Position1 * valueHeight, drawing.Length * valueLength, drawing.Height * valueHeight); + session.FillRectangle(r, valueColor); break; case Event.Types.NetDrawing.Types.Variety.Meter: - s.Set(0F, drawing.Position1 * valueHeight, highestNetHeight, valueHeight); - session.FillRectangle(s, valueColor); + r.Set(0F, drawing.Position1 * valueHeight, highestNetHeight, valueHeight); + session.FillRectangle(r, valueColor); break; } } @@ -1565,7 +1572,7 @@ for (var i = inputCount; i > 1; --i) { var limiterPosition0 = defaultComputer.GetPosition(defaultPaintValues[i]); - targetSession.DrawLine(limiterPosition0, limiterPosition1, limiterPosition0, limiterHeight, limiterColor, limiterLength); + targetSession.DrawLine(_drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterPosition1, _drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterHeight, limiterColor, limiterLength); } } else @@ -1578,9 +1585,9 @@ if (Array.IndexOf(autoableInputs, i) != -1) { var limiterPosition0 = defaultComputer.GetPosition(i); - targetSession.DrawLine(limiterPosition0, limiterPosition1, limiterPosition0, limiterHeight, limiterColor, limiterLength); + targetSession.DrawLine(_drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterPosition1, _drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterHeight, limiterColor, limiterLength); limiterPosition0 += drawingNoteLengthMap[i]; - targetSession.DrawLine(limiterPosition0, limiterPosition1, limiterPosition0, limiterHeight, limiterColor, limiterLength); + targetSession.DrawLine(_drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterPosition1, _drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterHeight, limiterColor, limiterLength); } } } @@ -1592,7 +1599,7 @@ for (var j = limiterCenterValues[i] - 1; j >= 0; --j) { var limiterPosition0 = defaultComputer.GetPosition(i) + j * drawingNoteLengthMap[i]; - targetSession.DrawLine(limiterPosition0, limiterPosition1, limiterPosition0, limiterHeight, limiterColor, limiterLength); + targetSession.DrawLine(_drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterPosition1, _drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterHeight, limiterColor, limiterLength); } } } @@ -1604,7 +1611,7 @@ if (limiter57Values[i]) { var limiterPosition0 = defaultComputer.GetPosition(i); - targetSession.DrawLine(limiterPosition0, limiterPosition1, limiterPosition0, limiterHeight, limiterColor, limiterLength); + targetSession.DrawLine(_drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterPosition1, _drawingMargin0 + limiterPosition0, _drawingMargin1 + limiterHeight, limiterColor, limiterLength); } } } @@ -1634,19 +1641,19 @@ { case 0: var judgmentVisualizerPosition1Value = (float)(judgmentVisualizerPosition1 + judgmentVisualizerHeight * (1 - judgmentVisualizerValue.Judgment)); - targetSession.DrawLine(judgmentVisualizerPosition0Float, judgmentVisualizerPosition1Value, judgmentVisualizerPosition0Float + judgmentVisualizerContentsLength, judgmentVisualizerPosition1Value, judgmentColorPaint, judgmentVisualizerContentsHeight); + targetSession.DrawLine(_drawingMargin0 + judgmentVisualizerPosition0Float, _drawingMargin1 + judgmentVisualizerPosition1Value, _drawingMargin0 + judgmentVisualizerPosition0Float + judgmentVisualizerContentsLength, _drawingMargin1 + judgmentVisualizerPosition1Value, judgmentColorPaint, judgmentVisualizerContentsHeight); break; case 1: judgmentVisualizerPosition1Value = (float)(judgmentVisualizerPosition1 + judgmentVisualizerHeight * judgmentVisualizerValue.Judgment); - targetSession.DrawLine(judgmentVisualizerPosition0Float, judgmentVisualizerPosition1Value, judgmentVisualizerPosition0Float + judgmentVisualizerContentsLength, judgmentVisualizerPosition1Value, judgmentColorPaint, judgmentVisualizerContentsHeight); + targetSession.DrawLine(_drawingMargin0 + judgmentVisualizerPosition0Float, _drawingMargin1 + judgmentVisualizerPosition1Value, _drawingMargin0 + judgmentVisualizerPosition0Float + judgmentVisualizerContentsLength, _drawingMargin1 + judgmentVisualizerPosition1Value, judgmentColorPaint, judgmentVisualizerContentsHeight); break; case 2: var judgmentVisualizerPosition0Value = (float)(judgmentVisualizerPosition0Float + judgmentVisualizerLength * (1 - judgmentVisualizerValue.Judgment)); - targetSession.DrawLine(judgmentVisualizerPosition0Value, judgmentVisualizerPosition1, judgmentVisualizerPosition0Value, judgmentVisualizerPosition1 + judgmentVisualizerContentsHeight, judgmentColorPaint, judgmentVisualizerContentsLength); + targetSession.DrawLine(_drawingMargin0 + judgmentVisualizerPosition0Value, _drawingMargin1 + judgmentVisualizerPosition1, _drawingMargin0 + judgmentVisualizerPosition0Value, _drawingMargin1 + judgmentVisualizerPosition1 + judgmentVisualizerContentsHeight, judgmentColorPaint, judgmentVisualizerContentsLength); break; case 3: judgmentVisualizerPosition0Value = (float)(judgmentVisualizerPosition0Float + judgmentVisualizerLength * judgmentVisualizerValue.Judgment); - targetSession.DrawLine(judgmentVisualizerPosition0Value, judgmentVisualizerPosition1, judgmentVisualizerPosition0Value, judgmentVisualizerPosition1 + judgmentVisualizerContentsHeight, judgmentColorPaint, judgmentVisualizerContentsLength); + targetSession.DrawLine(_drawingMargin0 + judgmentVisualizerPosition0Value, _drawingMargin1 + judgmentVisualizerPosition1, _drawingMargin0 + judgmentVisualizerPosition0Value, _drawingMargin1 + judgmentVisualizerPosition1 + judgmentVisualizerContentsHeight, judgmentColorPaint, judgmentVisualizerContentsLength); break; } } @@ -2313,6 +2320,7 @@ PaintNotifyXamlItems(); } PaintFramerate(); + PaintMargin(); } CopyD3D9Drawing(); @@ -2456,9 +2464,7 @@ var judgmentMeterViewHeight = BaseUI.Instance.JudgmentMeterViewPoint[3]; r.Set(judgmentMeterViewPosition0, judgmentMeterViewPosition1, judgmentMeterViewLength, judgmentMeterViewHeight); targetSession.DrawRectangle(r, Colors.White); - r.SetPosition(judgmentMeterViewPosition0, judgmentMeterViewPosition1 + judgmentMeterViewHeight / 2); - s.SetPosition(judgmentMeterViewPosition0 + judgmentMeterViewLength, judgmentMeterViewPosition1 + judgmentMeterViewHeight / 2); - targetSession.DrawLine(r, s, Colors.White); + targetSession.DrawLine(_drawingMargin0 + judgmentMeterViewPosition0, _drawingMargin1 + judgmentMeterViewPosition1 + judgmentMeterViewHeight / 2, _drawingMargin0 + judgmentMeterViewPosition0 + judgmentMeterViewLength, _drawingMargin1 + judgmentMeterViewPosition1 + judgmentMeterViewHeight / 2, Colors.White); var lowestJudgmentMillis = defaultComputer.LowestJudgmentMillis; var highestJudgmentMillis = defaultComputer.HighestJudgmentMillis; var noteFileLength = defaultComputer.NoteFile.Length; @@ -2512,9 +2518,7 @@ var hitPointsEventValue = hitPointsEventValues[i]; var hitPointsEventValueAs = hitPointsEventValues[i + 1]; - r.SetPosition((float)(statusViewPosition0 + hitPointsEventValue.Key * statusViewLength), (float)(statusViewPosition1 + hitPointsEventValue.Value * statusViewHeight)); - s.SetPosition((float)(statusViewPosition0 + hitPointsEventValueAs.Key * statusViewLength), (float)(statusViewPosition1 + hitPointsEventValueAs.Value * statusViewHeight)); - targetSession.DrawLine(r, s, hitPointsStatusViewColor); + targetSession.DrawLine((float)(_drawingMargin0 + statusViewPosition0 + hitPointsEventValue.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + hitPointsEventValue.Value * statusViewHeight), (float)(_drawingMargin0 + statusViewPosition0 + hitPointsEventValueAs.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + hitPointsEventValueAs.Value * statusViewHeight), hitPointsStatusViewColor); } for (var i = standEventValues.Count - 2; i >= 0; --i) @@ -2522,9 +2526,7 @@ var standEventValue = standEventValues[i]; var standEventValueAs = standEventValues[i + 1]; - r.SetPosition((float)(statusViewPosition0 + standEventValue.Key * statusViewLength), (float)(statusViewPosition1 + standEventValue.Value * statusViewHeight)); - s.SetPosition((float)(statusViewPosition0 + standEventValueAs.Key * statusViewLength), (float)(statusViewPosition1 + standEventValueAs.Value * statusViewHeight)); - targetSession.DrawLine(r, s, standStatusViewColor); + targetSession.DrawLine((float)(_drawingMargin0 + statusViewPosition0 + standEventValue.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + standEventValue.Value * statusViewHeight), (float)(_drawingMargin0 + statusViewPosition0 + standEventValueAs.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + standEventValueAs.Value * statusViewHeight), standStatusViewColor); } for (var i = pointEventValues.Count - 2; i >= 0; --i) @@ -2532,9 +2534,7 @@ var pointEventValue = pointEventValues[i]; var pointEventValueAs = pointEventValues[i + 1]; - r.SetPosition((float)(statusViewPosition0 + pointEventValue.Key * statusViewLength), (float)(statusViewPosition1 + pointEventValue.Value * statusViewHeight)); - s.SetPosition((float)(statusViewPosition0 + pointEventValueAs.Key * statusViewLength), (float)(statusViewPosition1 + pointEventValueAs.Value * statusViewHeight)); - targetSession.DrawLine(r, s, pointStatusViewColor); + targetSession.DrawLine((float)(_drawingMargin0 + statusViewPosition0 + pointEventValue.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + pointEventValue.Value * statusViewHeight), (float)(_drawingMargin0 + statusViewPosition0 + pointEventValueAs.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + pointEventValueAs.Value * statusViewHeight), pointStatusViewColor); } for (var i = bandEventValues.Count - 2; i >= 0; --i) @@ -2542,9 +2542,7 @@ var bandEventValue = bandEventValues[i]; var bandEventValueAs = bandEventValues[i + 1]; - r.SetPosition((float)(statusViewPosition0 + bandEventValue.Key * statusViewLength), (float)(statusViewPosition1 + bandEventValue.Value * statusViewHeight)); - s.SetPosition((float)(statusViewPosition0 + bandEventValueAs.Key * statusViewLength), (float)(statusViewPosition1 + bandEventValueAs.Value * statusViewHeight)); - targetSession.DrawLine(r, s, bandStatusViewColor); + targetSession.DrawLine((float)(_drawingMargin0 + statusViewPosition0 + bandEventValue.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + bandEventValue.Value * statusViewHeight), (float)(_drawingMargin0 + statusViewPosition0 + bandEventValueAs.Key * statusViewLength), (float)(_drawingMargin1 + statusViewPosition1 + bandEventValueAs.Value * statusViewHeight), bandStatusViewColor); } } @@ -2640,7 +2638,7 @@ { if (paintProperty?.Layer == layer) { - paintProperty.Paint(targetSession, distanceMillis, defaultComputer, handlingComputer); + paintProperty.Paint(targetSession, ref r, distanceMillis, defaultComputer, handlingComputer); } } } @@ -2659,6 +2657,7 @@ PaintNotifyXamlItems(); } PaintFramerate(); + PaintMargin(); } CopyD3D9Drawing(); @@ -2678,8 +2677,8 @@ if (mainViewModel.IsComputingMode) { var lastPointedPosition = lastPointed.Item1; - var lastPointedPositionX = lastPointedPosition.X; - var lastPointedPositionY = lastPointedPosition.Y; + var lastPointedPositionX = lastPointedPosition.X - _drawingMargin0; + var lastPointedPositionY = lastPointedPosition.Y - _drawingMargin1; switch (_mediaInputAreaStatus) { case MediaInputAreaStatus.Not: @@ -2734,8 +2733,8 @@ switch (_mediaInputAreaStatus) { case MediaInputAreaStatus.Area: - var lastMovedPositionX = lastMoved.X; - var lastMovedPositionY = lastMoved.Y; + var lastMovedPositionX = lastMoved.X - _drawingMargin0; + var lastMovedPositionY = lastMoved.Y - _drawingMargin1; if (_mediaInputPosition0 < lastMovedPositionX) { Configure.Instance.MediaInputLength = lastMovedPositionX - _mediaInputPosition0; @@ -2802,7 +2801,7 @@ { if (fadingStatus > 0.0) { - BaseUI.Instance.FadingProperties[(int)mode]?[fading.Layer].Paint(targetSession, fadingStatus); + BaseUI.Instance.FadingProperties[(int)mode]?[fading.Layer].Paint(targetSession, ref r, fadingStatus); } } } @@ -2870,14 +2869,37 @@ { if (mainViewModel.IsWPFViewVisible) { - _targetSystem.GetPixelBytes(_targetSystemData); - var d3D9Drawing = new WriteableBitmap((int)_targetSystem.SizeInPixels.Width, (int)_targetSystem.SizeInPixels.Height, _targetSystem.Dpi, _targetSystem.Dpi, PixelFormats.Bgra32, null); + var targetSystemArea = _targetSystem.SizeInPixels; + var targetSystemDPI = _targetSystem.Dpi; + var drawingMargin0 = _drawingMargin0 * targetSystemDPI / 96F; + var drawingMargin1 = _drawingMargin1 * targetSystemDPI / 96F; + var targetSystemLength = (int)(targetSystemArea.Width - drawingMargin0 * 2); + var targetSystemHeight = (int)(targetSystemArea.Height - drawingMargin1 * 2); + _targetSystem.GetPixelBytes(_targetSystemData, (int)drawingMargin0, (int)drawingMargin1, targetSystemLength, targetSystemHeight); + var d3D9Drawing = new WriteableBitmap(targetSystemLength, targetSystemHeight, targetSystemDPI, targetSystemDPI, PixelFormats.Bgra32, null); d3D9Drawing.WritePixels(new(0, 0, d3D9Drawing.PixelWidth, d3D9Drawing.PixelHeight), _rawTargetSystemData, d3D9Drawing.Format.BitsPerPixel / 8 * d3D9Drawing.PixelWidth, 0); d3D9Drawing.Freeze(); D3D9Drawing = d3D9Drawing; } } + void PaintMargin() + { + var targetSystemArea = _targetSystem.SizeInPixels; + var targetSystemLength = targetSystemArea.Width; + var targetSystemHeight = targetSystemArea.Height; + if (_drawingMargin0 > 0F) + { + targetSession.FillRectangle(0F, 0F, _drawingMargin0, targetSystemHeight, Colors.Black); + targetSession.FillRectangle(targetSystemLength - _drawingMargin0, 0F, _drawingMargin0, targetSystemHeight, Colors.Black); + } + if (_drawingMargin1 > 0F) + { + targetSession.FillRectangle(0F, 0F, targetSystemHeight, _drawingMargin1, Colors.Black); + targetSession.FillRectangle(0F, targetSystemHeight - _drawingMargin1, targetSystemLength, _drawingMargin1, Colors.Black); + } + } + float PaintNotify0Contents(string toNotifyContents, float toNotifyPosition0, float toNotifyPosition1, CanvasTextFormat toNotifyFont, Color toNotifyColor, Action onHandled = null) { var toNotifyTextItem = PoolSystem.Instance.GetTextItem(toNotifyContents, toNotifyFont); @@ -3055,19 +3077,37 @@ var mainViewModel = ViewModels.Instance.MainValue; var defaultLength = (float)mainViewModel.DefaultLength; var defaultHeight = (float)mainViewModel.DefaultHeight; - var drawingQuality = new Vector2(windowAreaLength / defaultLength, windowAreaHeight / defaultHeight); - var targetWindowDPI = 96F * Math.Max(drawingQuality.X, drawingQuality.Y); var dataCount = Configure.Instance.DataCount; + + var rateDefault = defaultLength / defaultHeight; + var rateWindowArea = (float)windowAreaLength / (float)windowAreaHeight; + var enlargedLength = defaultLength; + var enlargedHeight = defaultHeight; + + if (rateDefault > rateWindowArea) + { + enlargedHeight = defaultHeight * (rateDefault / rateWindowArea); + _drawingMargin0 = 0F; + _drawingMargin1 = (enlargedHeight - defaultHeight) / 2; + } + else + { + enlargedLength = defaultLength * (rateWindowArea / rateDefault); + _drawingMargin0 = (enlargedLength - defaultLength) / 2; + _drawingMargin1 = 0F; + } + var defaultDPI = 96F * Math.Max(windowAreaLength / enlargedLength, windowAreaHeight / enlargedHeight); + if (_rawTargetSystem == null) { lock (_d2D1CSX) { _targetSystem?.Dispose(); - _targetSystem = new(CanvasDevice.GetSharedDevice(), defaultLength, defaultHeight, targetWindowDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, CanvasAlphaMode.Ignore); - _rawTargetSystemData = new byte[_targetSystem.SizeInPixels.Width * _targetSystem.SizeInPixels.Height * 4]; + _targetSystem = new(CanvasDevice.GetSharedDevice(), enlargedLength, enlargedHeight, defaultDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, CanvasAlphaMode.Ignore); + _rawTargetSystemData = new byte[(int)(defaultLength * defaultHeight * 4)]; _targetSystemData = _rawTargetSystemData.AsBuffer(); _rawTargetSystem?.Dispose(); - _rawTargetSystem = new(CanvasDevice.GetSharedDevice(), defaultLength, defaultHeight, targetWindowDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, dataCount, CanvasAlphaMode.Ignore); + _rawTargetSystem = new(CanvasDevice.GetSharedDevice(), enlargedLength, enlargedHeight, defaultDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, dataCount, CanvasAlphaMode.Ignore); } StrongReferenceMessenger.Default.Send(new SetD2DView { @@ -3075,19 +3115,19 @@ }); StrongReferenceMessenger.Default.Send(); } - else if (_rawTargetSystem.Size.Width != defaultLength || _rawTargetSystem.Size.Height != defaultHeight || _drawingQuality != drawingQuality || _rawTargetSystem.BufferCount != dataCount) + else if (_rawTargetSystem.Size.Width != enlargedLength || _rawTargetSystem.Size.Height != enlargedHeight || _defaultDPI != defaultDPI || _rawTargetSystem.BufferCount != dataCount) { lock (_d2D1CSX) { _targetSystem?.Dispose(); - _targetSystem = new(CanvasDevice.GetSharedDevice(), defaultLength, defaultHeight, targetWindowDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, CanvasAlphaMode.Ignore); - _rawTargetSystemData = new byte[_targetSystem.SizeInPixels.Width * _targetSystem.SizeInPixels.Height * 4]; + _targetSystem = new(CanvasDevice.GetSharedDevice(), enlargedLength, enlargedHeight, defaultDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, CanvasAlphaMode.Ignore); + _rawTargetSystemData = new byte[(int)(defaultLength * defaultHeight * 4)]; _targetSystemData = _rawTargetSystemData.AsBuffer(); - _rawTargetSystem.ResizeBuffers(defaultLength, defaultHeight, targetWindowDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, dataCount); + _rawTargetSystem.ResizeBuffers(enlargedLength, enlargedHeight, defaultDPI, DirectXPixelFormat.B8G8R8A8UIntNormalized, dataCount); } StrongReferenceMessenger.Default.Send(); } - _drawingQuality = drawingQuality; + _defaultDPI = defaultDPI; } public DrawingItem Load(string drawingFilePath, IDrawingContainer drawingContainer) diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.cs b/Qwilight/System/LanguageSystem/LanguageSystem.cs index 8feb014..913f670 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.cs @@ -143,19 +143,19 @@ InputFavorModeTexts[(int)ModeComponent.InputFavorMode._14_2] = InputFavorMode142; InputFavorModeTexts[(int)ModeComponent.InputFavorMode._24_2] = InputFavorMode242; InputFavorModeTexts[(int)ModeComponent.InputFavorMode._48_4] = InputFavorMode484; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled4] = InputFavorModeFill4; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled5] = InputFavorModeFill5; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled6] = InputFavorModeFill6; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled7] = InputFavorModeFill7; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled8] = InputFavorModeFill8; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled9] = InputFavorModeFill9; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled10] = InputFavorModeFill10; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled5_1] = InputFavorModeFill51; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled7_1] = InputFavorModeFill71; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled10_2] = InputFavorModeFill102; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled14_2] = InputFavorModeFill142; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled24_2] = InputFavorModeFill242; - InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled48_4] = InputFavorModeFill484; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled4] = InputFavorModeLabelled4; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled5] = InputFavorModeLabelled5; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled6] = InputFavorModeLabelled6; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled7] = InputFavorModeLabelled7; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled8] = InputFavorModeLabelled8; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled9] = InputFavorModeLabelled9; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled10] = InputFavorModeLabelled10; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled5_1] = InputFavorModeLabelled51; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled7_1] = InputFavorModeLabelled71; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled10_2] = InputFavorModeLabelled102; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled14_2] = InputFavorModeLabelled142; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled24_2] = InputFavorModeLabelled242; + InputFavorModeTexts[(int)ModeComponent.InputFavorMode.Labelled48_4] = InputFavorModeLabelled484; NoteSaltModeTexts[(int)ModeComponent.NoteSaltMode.Default] = DefaultSaltModeContents; NoteSaltModeTexts[(int)ModeComponent.NoteSaltMode.Symmetric] = SymmetricModeContents; diff --git a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs index 1cc0fc6..8f922b5 100644 --- a/Qwilight/System/LanguageSystem/LanguageSystem.g.cs +++ b/Qwilight/System/LanguageSystem/LanguageSystem.g.cs @@ -405,19 +405,19 @@ public string InputFavorMode8 { get; set; } public string InputFavorMode9 { get; set; } public string InputFavorModeAssist { get; set; } - public string InputFavorModeFill10 { get; set; } - public string InputFavorModeFill102 { get; set; } - public string InputFavorModeFill142 { get; set; } - public string InputFavorModeFill242 { get; set; } - public string InputFavorModeFill4 { get; set; } - public string InputFavorModeFill484 { get; set; } - public string InputFavorModeFill5 { get; set; } - public string InputFavorModeFill51 { get; set; } - public string InputFavorModeFill6 { get; set; } - public string InputFavorModeFill7 { get; set; } - public string InputFavorModeFill71 { get; set; } - public string InputFavorModeFill8 { get; set; } - public string InputFavorModeFill9 { get; set; } + public string InputFavorModeLabelled10 { get; set; } + public string InputFavorModeLabelled102 { get; set; } + public string InputFavorModeLabelled142 { get; set; } + public string InputFavorModeLabelled242 { get; set; } + public string InputFavorModeLabelled4 { get; set; } + public string InputFavorModeLabelled484 { get; set; } + public string InputFavorModeLabelled5 { get; set; } + public string InputFavorModeLabelled51 { get; set; } + public string InputFavorModeLabelled6 { get; set; } + public string InputFavorModeLabelled7 { get; set; } + public string InputFavorModeLabelled71 { get; set; } + public string InputFavorModeLabelled8 { get; set; } + public string InputFavorModeLabelled9 { get; set; } public string InputMapText { get; set; } public string InputNoteCountViewColor { get; set; } public string InputSaltModeContents { get; set; } diff --git a/Qwilight/View/ConfigureWindow/GUIConfigureWindow.xaml b/Qwilight/View/ConfigureWindow/GUIConfigureWindow.xaml index 49faaec..ac64fab 100644 --- a/Qwilight/View/ConfigureWindow/GUIConfigureWindow.xaml +++ b/Qwilight/View/ConfigureWindow/GUIConfigureWindow.xaml @@ -79,14 +79,6 @@ - - - - - -