Debugger: Limit refresh to ~100 FPS on all debugger windows (to reduce chances of UI locking up at max speed)

This commit is contained in:
Sour 2019-03-31 20:02:10 -04:00
parent 2725534842
commit 08b1388cbd
4 changed files with 34 additions and 17 deletions

View file

@ -14,6 +14,7 @@ namespace Mesen.GUI.Debugger
public partial class frmEventViewer : BaseForm
{
private NotificationListener _notifListener;
private DateTime _lastUpdate = DateTime.MinValue;
public frmEventViewer()
{
@ -41,10 +42,14 @@ namespace Mesen.GUI.Debugger
switch(e.NotificationType) {
case ConsoleNotificationType.CodeBreak:
case ConsoleNotificationType.EventViewerRefresh:
ctrlPpuView.RefreshData();
this.BeginInvoke((Action)(() => {
ctrlPpuView.RefreshViewer();
}));
if((DateTime.Now - _lastUpdate).Milliseconds > 10) {
_lastUpdate = DateTime.Now;
ctrlPpuView.RefreshData();
this.BeginInvoke((Action)(() => {
ctrlPpuView.RefreshViewer();
}));
}
break;
}
}

View file

@ -7,6 +7,7 @@ namespace Mesen.GUI.Debugger
public partial class frmPaletteViewer : BaseForm
{
private NotificationListener _notifListener;
private DateTime _lastUpdate = DateTime.MinValue;
public frmPaletteViewer()
{
@ -54,11 +55,14 @@ namespace Mesen.GUI.Debugger
case ConsoleNotificationType.CodeBreak:
case ConsoleNotificationType.ViewerRefresh:
if(e.Parameter.ToInt32() == ctrlScanlineCycleSelect.ViewerId) {
ctrlPaletteViewer.RefreshData();
this.BeginInvoke((Action)(() => {
ctrlPaletteViewer.RefreshViewer();
UpdateFields();
}));
if((DateTime.Now - _lastUpdate).Milliseconds > 10) {
_lastUpdate = DateTime.Now;
ctrlPaletteViewer.RefreshData();
this.BeginInvoke((Action)(() => {
ctrlPaletteViewer.RefreshViewer();
UpdateFields();
}));
}
}
break;

View file

@ -24,6 +24,7 @@ namespace Mesen.GUI.Debugger
private bool _zoomed;
private SnesMemoryType _memoryType = SnesMemoryType.VideoRam;
private int _addressOffset = 0;
private DateTime _lastUpdate = DateTime.MinValue;
public frmTileViewer()
{
@ -71,10 +72,13 @@ namespace Mesen.GUI.Debugger
case ConsoleNotificationType.CodeBreak:
case ConsoleNotificationType.ViewerRefresh:
if(e.Parameter.ToInt32() == ctrlScanlineCycleSelect.ViewerId) {
RefreshData();
this.BeginInvoke((Action)(() => {
this.RefreshViewer();
}));
if((DateTime.Now - _lastUpdate).Milliseconds > 10) {
_lastUpdate = DateTime.Now;
RefreshData();
this.BeginInvoke((Action)(() => {
this.RefreshViewer();
}));
}
}
break;

View file

@ -28,6 +28,7 @@ namespace Mesen.GUI.Debugger
private int _scale = 1;
private int _selectedRow = 0;
private int _selectedColumn = 0;
private DateTime _lastUpdate = DateTime.MinValue;
public frmTilemapViewer()
{
@ -77,10 +78,13 @@ namespace Mesen.GUI.Debugger
case ConsoleNotificationType.CodeBreak:
case ConsoleNotificationType.ViewerRefresh:
if(e.Parameter.ToInt32() == ctrlScanlineCycleSelect.ViewerId) {
RefreshData();
this.BeginInvoke((Action)(() => {
this.RefreshViewer();
}));
if((DateTime.Now - _lastUpdate).Milliseconds > 10) {
_lastUpdate = DateTime.Now;
RefreshData();
this.BeginInvoke((Action)(() => {
this.RefreshViewer();
}));
}
}
break;