Skip to content

Commit

Permalink
Merge pull request #1196 from RachelBryk/framecount
Browse files Browse the repository at this point in the history
Add on screen frame counter.
  • Loading branch information
skidau committed Oct 3, 2014
2 parents 6333f41 + f6c6f03 commit 16d3604
Show file tree
Hide file tree
Showing 8 changed files with 47 additions and 4 deletions.
2 changes: 2 additions & 0 deletions Source/Core/Core/ConfigManager.cpp
Expand Up @@ -172,6 +172,7 @@ void SConfig::SaveGeneralSettings(IniFile& ini)
// General
general->Set("LastFilename", m_LastFilename);
general->Set("ShowLag", m_ShowLag);
general->Set("ShowFrameCount", m_ShowFrameCount);

// ISO folders
// Clear removed folders
Expand Down Expand Up @@ -379,6 +380,7 @@ void SConfig::LoadGeneralSettings(IniFile& ini)

general->Get("LastFilename", &m_LastFilename);
general->Get("ShowLag", &m_ShowLag, false);
general->Get("ShowFrameCount", &m_ShowFrameCount, false);
#ifdef USE_GDBSTUB
general->Get("GDBPort", &(m_LocalCoreStartupParameter.iGDBPort), -1);
#endif
Expand Down
1 change: 1 addition & 0 deletions Source/Core/Core/ConfigManager.h
Expand Up @@ -86,6 +86,7 @@ struct SConfig : NonCopyable
std::string m_WirelessMac;
bool m_PauseMovie;
bool m_ShowLag;
bool m_ShowFrameCount;
std::string m_strMovieAuthor;
unsigned int m_FrameSkip;

Expand Down
1 change: 1 addition & 0 deletions Source/Core/DolphinWX/Frame.cpp
Expand Up @@ -230,6 +230,7 @@ EVT_MENU(IDM_RECORDREADONLY, CFrame::OnRecordReadOnly)
EVT_MENU(IDM_TASINPUT, CFrame::OnTASInput)
EVT_MENU(IDM_TOGGLE_PAUSEMOVIE, CFrame::OnTogglePauseMovie)
EVT_MENU(IDM_SHOWLAG, CFrame::OnShowLag)
EVT_MENU(IDM_SHOWFRAMECOUNT, CFrame::OnShowFrameCount)
EVT_MENU(IDM_FRAMESTEP, CFrame::OnFrameStep)
EVT_MENU(IDM_SCREENSHOT, CFrame::OnScreenshot)
EVT_MENU(wxID_PREFERENCES, CFrame::OnConfigMain)
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DolphinWX/Frame.h
Expand Up @@ -270,6 +270,7 @@ class CFrame : public CRenderFrame
void OnTASInput(wxCommandEvent& event);
void OnTogglePauseMovie(wxCommandEvent& event);
void OnShowLag(wxCommandEvent& event);
void OnShowFrameCount(wxCommandEvent& event);
void OnChangeDisc(wxCommandEvent& event);
void OnScreenshot(wxCommandEvent& event);
void OnActive(wxActivateEvent& event);
Expand Down
8 changes: 8 additions & 0 deletions Source/Core/DolphinWX/FrameTools.cpp
Expand Up @@ -213,6 +213,8 @@ wxMenuBar* CFrame::CreateMenu()
movieMenu->Check(IDM_TOGGLE_PAUSEMOVIE, SConfig::GetInstance().m_PauseMovie);
movieMenu->AppendCheckItem(IDM_SHOWLAG, _("Show lag counter"));
movieMenu->Check(IDM_SHOWLAG, SConfig::GetInstance().m_ShowLag);
movieMenu->AppendCheckItem(IDM_SHOWFRAMECOUNT, _("Show frame counter"));
movieMenu->Check(IDM_SHOWFRAMECOUNT, SConfig::GetInstance().m_ShowFrameCount);
movieMenu->Check(IDM_RECORDREADONLY, true);
menubar->Append(movieMenu, _("&Movie"));

Expand Down Expand Up @@ -717,6 +719,12 @@ void CFrame::OnShowLag(wxCommandEvent& WXUNUSED (event))
SConfig::GetInstance().SaveSettings();
}

void CFrame::OnShowFrameCount(wxCommandEvent& WXUNUSED (event))
{
SConfig::GetInstance().m_ShowFrameCount = !SConfig::GetInstance().m_ShowFrameCount;
SConfig::GetInstance().SaveSettings();
}

void CFrame::OnFrameStep(wxCommandEvent& event)
{
bool wasPaused = (Core::GetState() == Core::CORE_PAUSE);
Expand Down
1 change: 1 addition & 0 deletions Source/Core/DolphinWX/Globals.h
Expand Up @@ -91,6 +91,7 @@ enum
IDM_TASINPUT,
IDM_TOGGLE_PAUSEMOVIE,
IDM_SHOWLAG,
IDM_SHOWFRAMECOUNT,
IDM_FRAMESTEP,
IDM_SCREENSHOT,
IDM_BROWSE,
Expand Down
18 changes: 16 additions & 2 deletions Source/Core/VideoBackends/D3D/Render.cpp
Expand Up @@ -896,9 +896,23 @@ void Renderer::SwapImpl(u32 xfbAddr, u32 fbWidth, u32 fbStride, u32 fbHeight, co
D3D::context->RSSetViewports(1, &vp);

// Finish up the current frame, print some stats
if (g_ActiveConfig.bShowFPS)
if (g_ActiveConfig.bShowFPS || SConfig::GetInstance().m_ShowFrameCount)
{
std::string fps = StringFromFormat("FPS: %d\n", m_fps_counter.m_fps);
std::string fps = "";
if (g_ActiveConfig.bShowFPS)
fps = StringFromFormat("FPS: %d", m_fps_counter.m_fps);

if (g_ActiveConfig.bShowFPS && SConfig::GetInstance().m_ShowFrameCount)
fps += " - ";
if (SConfig::GetInstance().m_ShowFrameCount)
{
fps += StringFromFormat("Frame: %d", Movie::g_currentFrame);
if (Movie::IsPlayingInput())
fps += StringFromFormat(" / %d", Movie::g_totalFrames);
}

fps += "\n";

D3D::font.DrawTextScaled(0, 0, 20, 0.0f, 0xFF00FFFF, fps);
}

Expand Down
19 changes: 17 additions & 2 deletions Source/Core/VideoBackends/OGL/Render.cpp
Expand Up @@ -709,8 +709,23 @@ void Renderer::DrawDebugInfo()
// Draw various messages on the screen, like FPS, statistics, etc.
std::string debug_info;

if (g_ActiveConfig.bShowFPS)
debug_info += StringFromFormat("FPS: %d\n", m_fps_counter.m_fps);
if (g_ActiveConfig.bShowFPS || SConfig::GetInstance().m_ShowFrameCount)
{
std::string fps = "";
if (g_ActiveConfig.bShowFPS)
debug_info += StringFromFormat("FPS: %d", m_fps_counter.m_fps);

if (g_ActiveConfig.bShowFPS && SConfig::GetInstance().m_ShowFrameCount)
debug_info += " - ";
if (SConfig::GetInstance().m_ShowFrameCount)
{
debug_info += StringFromFormat("Frame: %d", Movie::g_currentFrame);
if (Movie::IsPlayingInput())
debug_info += StringFromFormat(" / %d", Movie::g_totalFrames);
}

debug_info += "\n";
}

if (SConfig::GetInstance().m_ShowLag)
debug_info += StringFromFormat("Lag: %" PRIu64 "\n", Movie::g_currentLagCount);
Expand Down

0 comments on commit 16d3604

Please sign in to comment.