Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

スライド描画でエラーが出る場合がある #48

Open
paralleltree opened this issue Nov 21, 2020 · 1 comment
Open

スライド描画でエラーが出る場合がある #48

paralleltree opened this issue Nov 21, 2020 · 1 comment
Labels

Comments

@paralleltree
Copy link
Owner

paralleltree commented Nov 21, 2020

こんな感じのスタックトレースと共に落ちる。

System.ArgumentOutOfRangeException [visibleSteps must contain steps]
   場所 Ched.Drawing.NoteGraphics.DrawSlideBackground(DrawingContext dc, IEnumerable`1 steps, IEnumerable`1 visibleSteps, Single noteHeight)
   場所 Ched.UI.NoteView.OnPaint(PaintEventArgs pe)
   場所 System.Windows.Forms.Control.PaintWithErrorHandling(PaintEventArgs e, Int16 layer)
   場所 System.Windows.Forms.Control.WmPaint(Message& m)
   場所 System.Windows.Forms.Control.WndProc(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   場所 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

スライドの編集で矛盾した状態を作っているか上下スクロール時のタイミングあたり?

@paralleltree
Copy link
Owner Author

paralleltree commented Nov 21, 2020

スライド背景描画時に可視中継点のリスト範囲外の中継点のリストを渡してしまっていることが原因(負荷を抑えるためにこの前提のコレクションを受け取って描画している)。
譜面スクロール時に落ちたらしいので描画部分で想定していないパターンがある?
スライドの状態によってスクロールで一部が見えたりする際にハマってしまう可能性がありそう

if (orderedSteps[0].Point.Y < orderedVisibleSteps[0] || orderedSteps[orderedSteps.Count - 1].Point.Y > orderedVisibleSteps[orderedVisibleSteps.Count - 1])
{
throw new ArgumentOutOfRangeException("visibleSteps", "visibleSteps must contain steps");
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant