Add an on screen lag counter.
This commit is contained in:
parent
35e5a1e592
commit
a5d210129d
|
@ -132,6 +132,7 @@ void SConfig::SaveSettings()
|
||||||
// General
|
// General
|
||||||
ini.Set("General", "LastFilename", m_LastFilename);
|
ini.Set("General", "LastFilename", m_LastFilename);
|
||||||
ini.Set("General", "PauseMovie", m_pauseMovie);
|
ini.Set("General", "PauseMovie", m_pauseMovie);
|
||||||
|
ini.Set("General", "ShowLag", m_showLag);
|
||||||
|
|
||||||
// ISO folders
|
// ISO folders
|
||||||
// clear removed folders
|
// clear removed folders
|
||||||
|
@ -262,6 +263,7 @@ void SConfig::LoadSettings()
|
||||||
{
|
{
|
||||||
ini.Get("General", "LastFilename", &m_LastFilename);
|
ini.Get("General", "LastFilename", &m_LastFilename);
|
||||||
ini.Get("General", "PauseMovie", &m_pauseMovie, false);
|
ini.Get("General", "PauseMovie", &m_pauseMovie, false);
|
||||||
|
ini.Get("General", "ShowLag", &m_showLag, false);
|
||||||
|
|
||||||
m_ISOFolder.clear();
|
m_ISOFolder.clear();
|
||||||
int numGCMPaths;
|
int numGCMPaths;
|
||||||
|
|
|
@ -76,6 +76,7 @@ struct SConfig : NonCopyable
|
||||||
bool m_ListTaiwan;
|
bool m_ListTaiwan;
|
||||||
bool m_ListUnknown;
|
bool m_ListUnknown;
|
||||||
bool m_pauseMovie;
|
bool m_pauseMovie;
|
||||||
|
bool m_showLag;
|
||||||
|
|
||||||
SysConf* m_SYSCONF;
|
SysConf* m_SYSCONF;
|
||||||
|
|
||||||
|
|
|
@ -245,6 +245,7 @@ EVT_MENU(IDM_RECORDEXPORT, CFrame::OnRecordExport)
|
||||||
EVT_MENU(IDM_RECORDREADONLY, CFrame::OnRecordReadOnly)
|
EVT_MENU(IDM_RECORDREADONLY, CFrame::OnRecordReadOnly)
|
||||||
EVT_MENU(IDM_TASINPUT, CFrame::OnTASInput)
|
EVT_MENU(IDM_TASINPUT, CFrame::OnTASInput)
|
||||||
EVT_MENU(IDM_TOGGLE_PAUSEMOVIE, CFrame::OnTogglePauseMovie)
|
EVT_MENU(IDM_TOGGLE_PAUSEMOVIE, CFrame::OnTogglePauseMovie)
|
||||||
|
EVT_MENU(IDM_SHOWLAG, CFrame::OnShowLag)
|
||||||
EVT_MENU(IDM_FRAMESTEP, CFrame::OnFrameStep)
|
EVT_MENU(IDM_FRAMESTEP, CFrame::OnFrameStep)
|
||||||
EVT_MENU(IDM_SCREENSHOT, CFrame::OnScreenshot)
|
EVT_MENU(IDM_SCREENSHOT, CFrame::OnScreenshot)
|
||||||
EVT_MENU(wxID_PREFERENCES, CFrame::OnConfigMain)
|
EVT_MENU(wxID_PREFERENCES, CFrame::OnConfigMain)
|
||||||
|
|
|
@ -298,6 +298,7 @@ private:
|
||||||
void OnRecordReadOnly(wxCommandEvent& event);
|
void OnRecordReadOnly(wxCommandEvent& event);
|
||||||
void OnTASInput(wxCommandEvent& event);
|
void OnTASInput(wxCommandEvent& event);
|
||||||
void OnTogglePauseMovie(wxCommandEvent& event);
|
void OnTogglePauseMovie(wxCommandEvent& event);
|
||||||
|
void OnShowLag(wxCommandEvent& event);
|
||||||
void OnChangeDisc(wxCommandEvent& event);
|
void OnChangeDisc(wxCommandEvent& event);
|
||||||
void OnScreenshot(wxCommandEvent& event);
|
void OnScreenshot(wxCommandEvent& event);
|
||||||
void OnActive(wxActivateEvent& event);
|
void OnActive(wxActivateEvent& event);
|
||||||
|
|
|
@ -144,9 +144,11 @@ void CFrame::CreateMenu()
|
||||||
emulationMenu->Append(IDM_TASINPUT, _("TAS Input"));
|
emulationMenu->Append(IDM_TASINPUT, _("TAS Input"));
|
||||||
emulationMenu->AppendCheckItem(IDM_TOGGLE_PAUSEMOVIE, _("Pause at end of movie"));
|
emulationMenu->AppendCheckItem(IDM_TOGGLE_PAUSEMOVIE, _("Pause at end of movie"));
|
||||||
emulationMenu->Check(IDM_TOGGLE_PAUSEMOVIE, SConfig::GetInstance().m_pauseMovie);
|
emulationMenu->Check(IDM_TOGGLE_PAUSEMOVIE, SConfig::GetInstance().m_pauseMovie);
|
||||||
|
emulationMenu->AppendCheckItem(IDM_SHOWLAG, _("Show lag counter"));
|
||||||
|
emulationMenu->Check(IDM_SHOWLAG, SConfig::GetInstance().m_showLag);
|
||||||
emulationMenu->Check(IDM_RECORDREADONLY, true);
|
emulationMenu->Check(IDM_RECORDREADONLY, true);
|
||||||
emulationMenu->AppendSeparator();
|
emulationMenu->AppendSeparator();
|
||||||
|
|
||||||
emulationMenu->Append(IDM_FRAMESTEP, GetMenuLabel(HK_FRAME_ADVANCE), wxEmptyString);
|
emulationMenu->Append(IDM_FRAMESTEP, GetMenuLabel(HK_FRAME_ADVANCE), wxEmptyString);
|
||||||
|
|
||||||
wxMenu *skippingMenu = new wxMenu;
|
wxMenu *skippingMenu = new wxMenu;
|
||||||
|
@ -709,6 +711,13 @@ void CFrame::OnTogglePauseMovie(wxCommandEvent& WXUNUSED (event))
|
||||||
SConfig::GetInstance().m_pauseMovie = !SConfig::GetInstance().m_pauseMovie;
|
SConfig::GetInstance().m_pauseMovie = !SConfig::GetInstance().m_pauseMovie;
|
||||||
SConfig::GetInstance().SaveSettings();
|
SConfig::GetInstance().SaveSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CFrame::OnShowLag(wxCommandEvent& WXUNUSED (event))
|
||||||
|
{
|
||||||
|
SConfig::GetInstance().m_showLag = !SConfig::GetInstance().m_showLag;
|
||||||
|
SConfig::GetInstance().SaveSettings();
|
||||||
|
}
|
||||||
|
|
||||||
void CFrame::OnFrameStep(wxCommandEvent& event)
|
void CFrame::OnFrameStep(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
bool wasPaused = (Core::GetState() == Core::CORE_PAUSE);
|
bool wasPaused = (Core::GetState() == Core::CORE_PAUSE);
|
||||||
|
|
|
@ -81,6 +81,7 @@ enum
|
||||||
IDM_RECORDREADONLY,
|
IDM_RECORDREADONLY,
|
||||||
IDM_TASINPUT,
|
IDM_TASINPUT,
|
||||||
IDM_TOGGLE_PAUSEMOVIE,
|
IDM_TOGGLE_PAUSEMOVIE,
|
||||||
|
IDM_SHOWLAG,
|
||||||
IDM_FRAMESTEP,
|
IDM_FRAMESTEP,
|
||||||
IDM_SCREENSHOT,
|
IDM_SCREENSHOT,
|
||||||
IDM_BROWSE,
|
IDM_BROWSE,
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
#include "BPFunctions.h"
|
#include "BPFunctions.h"
|
||||||
#include "AVIDump.h"
|
#include "AVIDump.h"
|
||||||
#include "FPSCounter.h"
|
#include "FPSCounter.h"
|
||||||
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
namespace DX11
|
namespace DX11
|
||||||
{
|
{
|
||||||
|
@ -1094,11 +1095,18 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons
|
||||||
D3D::font.DrawTextScaled(0, 0, 20, 0.0f, 0xFF00FFFF, fps);
|
D3D::font.DrawTextScaled(0, 0, 20, 0.0f, 0xFF00FFFF, fps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SConfig::GetInstance().m_showLag)
|
||||||
|
{
|
||||||
|
char lag[10];
|
||||||
|
StringCchPrintfA(lag, 1000, "Lag: %d\n", Movie::g_currentLagCount);
|
||||||
|
D3D::font.DrawTextScaled(0, 18, 20, 0.0f, 0xFF00FFFF, lag);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_ActiveConfig.bShowInputDisplay)
|
if (g_ActiveConfig.bShowInputDisplay)
|
||||||
{
|
{
|
||||||
char inputDisplay[1000];
|
char inputDisplay[1000];
|
||||||
StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str());
|
StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str());
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 0.0f, 0xFF00FFFF, inputDisplay);
|
D3D::font.DrawTextScaled(0, 36, 20, 0.0f, 0xFF00FFFF, inputDisplay);
|
||||||
}
|
}
|
||||||
Renderer::DrawDebugText();
|
Renderer::DrawDebugText();
|
||||||
|
|
||||||
|
@ -1106,13 +1114,13 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons
|
||||||
{
|
{
|
||||||
char buf[32768];
|
char buf[32768];
|
||||||
Statistics::ToString(buf);
|
Statistics::ToString(buf);
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 0.0f, 0xFF00FFFF, buf);
|
D3D::font.DrawTextScaled(0, 36, 20, 0.0f, 0xFF00FFFF, buf);
|
||||||
}
|
}
|
||||||
else if (g_ActiveConfig.bOverlayProjStats)
|
else if (g_ActiveConfig.bOverlayProjStats)
|
||||||
{
|
{
|
||||||
char buf[32768];
|
char buf[32768];
|
||||||
Statistics::ToStringProj(buf);
|
Statistics::ToStringProj(buf);
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 0.0f, 0xFF00FFFF, buf);
|
D3D::font.DrawTextScaled(0, 36, 20, 0.0f, 0xFF00FFFF, buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
OSD::DrawMessages();
|
OSD::DrawMessages();
|
||||||
|
|
|
@ -55,6 +55,7 @@
|
||||||
#include "Movie.h"
|
#include "Movie.h"
|
||||||
#include "BPFunctions.h"
|
#include "BPFunctions.h"
|
||||||
#include "FPSCounter.h"
|
#include "FPSCounter.h"
|
||||||
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
namespace DX9
|
namespace DX9
|
||||||
{
|
{
|
||||||
|
@ -1091,23 +1092,31 @@ void Renderer::Swap(u32 xfbAddr, FieldType field, u32 fbWidth, u32 fbHeight,cons
|
||||||
D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps);
|
D3D::font.DrawTextScaled(0, 0, 20, 20, 0.0f, 0xFF00FFFF, fps);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (SConfig::GetInstance().m_showLag)
|
||||||
|
{
|
||||||
|
char lag[10];
|
||||||
|
StringCchPrintfA(lag, 1000, "Lag: %d\n", Movie::g_currentLagCount);
|
||||||
|
D3D::font.DrawTextScaled(0, 18, 20, 20, 0.0f, 0xFF00FFFF, lag);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_ActiveConfig.bShowInputDisplay)
|
if (g_ActiveConfig.bShowInputDisplay)
|
||||||
{
|
{
|
||||||
char inputDisplay[1000];
|
char inputDisplay[1000];
|
||||||
StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str());
|
StringCchPrintfA(inputDisplay, 1000, Movie::GetInputDisplay().c_str());
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay);
|
D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, inputDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderer::DrawDebugText();
|
Renderer::DrawDebugText();
|
||||||
|
|
||||||
if (g_ActiveConfig.bOverlayStats)
|
if (g_ActiveConfig.bOverlayStats)
|
||||||
{
|
{
|
||||||
Statistics::ToString(st);
|
Statistics::ToString(st);
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 20, 0.0f, 0xFF00FFFF, st);
|
D3D::font.DrawTextScaled(0, 36, 20, 20, 0.0f, 0xFF00FFFF, st);
|
||||||
}
|
}
|
||||||
else if (g_ActiveConfig.bOverlayProjStats)
|
else if (g_ActiveConfig.bOverlayProjStats)
|
||||||
{
|
{
|
||||||
Statistics::ToStringProj(st);
|
Statistics::ToStringProj(st);
|
||||||
D3D::font.DrawTextScaled(0, 30, 20, 20, 0.0f, 0xFF00FFFF, st);
|
D3D::font.DrawTextScaled(0, 35, 20, 20, 0.0f, 0xFF00FFFF, st);
|
||||||
}
|
}
|
||||||
|
|
||||||
OSD::DrawMessages();
|
OSD::DrawMessages();
|
||||||
|
|
|
@ -62,6 +62,7 @@
|
||||||
#include "Host.h"
|
#include "Host.h"
|
||||||
#include "BPFunctions.h"
|
#include "BPFunctions.h"
|
||||||
#include "FPSCounter.h"
|
#include "FPSCounter.h"
|
||||||
|
#include "ConfigManager.h"
|
||||||
|
|
||||||
#include "main.h" // Local
|
#include "main.h" // Local
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -531,6 +532,9 @@ void Renderer::DrawDebugInfo()
|
||||||
if (g_ActiveConfig.bShowFPS)
|
if (g_ActiveConfig.bShowFPS)
|
||||||
p+=sprintf(p, "FPS: %d\n", s_fps);
|
p+=sprintf(p, "FPS: %d\n", s_fps);
|
||||||
|
|
||||||
|
if (SConfig::GetInstance().m_showLag)
|
||||||
|
p+=sprintf(p, "Lag: %d\n", Movie::g_currentLagCount);
|
||||||
|
|
||||||
if (g_ActiveConfig.bShowInputDisplay)
|
if (g_ActiveConfig.bShowInputDisplay)
|
||||||
p+=sprintf(p, "%s", Movie::GetInputDisplay().c_str());
|
p+=sprintf(p, "%s", Movie::GetInputDisplay().c_str());
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue