From 31813c29af11f7abbd1b223de8dab384e346010e Mon Sep 17 00:00:00 2001 From: "Avi Halachmi (:avih)" Date: Wed, 7 Oct 2015 03:32:01 +0300 Subject: [PATCH] GS window title info: improve, shorten The goal here is to reduce clutter and to make it more useful by putting the important values at the begining, and the less used values at the end. The GSdx string is unmodified, and maybe we could simplify it too in the future. Previously, the tile displayed the following items in this order: - (e.g. GSdx OGL HW | 514x224 | None) - Progressive/Interlaced (Frame/Field) - Limiter: None/Turbo/Slomo/Normal - Speed: <100-based-percentage> () - EE: <%> | GS: <%> | VU <%> | UI: <%> - State: This patch changes the following to this order and format: - Move the save state value to the front since it's actually useful. - The speed value, which now includes the limiter value if not "Normal". - Then the CPU usage parts, but the UI value only shows on debug/devel builds. - The output mode, shortened to Frame/Field-i/p - the GSdx string same as before only at the end So all the info is still there as before (except UI), but more readable format. E.g. before (normal limiter and turbo limiter): GSdx D3D11 HW | 640x512 | None | Interlaced (frame) | Limiter: Normal | Speed: 100% (50.01) | EE: 43% | GS: 4% | UI: 0% | State 0 GSdx D3D11 HW | 640x512 | None | Interlaced (frame) | Limiter: Turbo | Speed: 443% (221.31) | EE: 99% | GS: 16% | UI: 0% | State 0 E.g. after (normal limiter and turbo limiter) for the same values as above: State 0 | Speed: 100% (50.01) | EE: 43% | GS: 4% | frame-i | GSdx D3D11 HW | 640x512 | None State 0 | Speed (Turbo): 443% (221.31) | EE: 99% | GS: 16% | frame-i | GSdx D3D11 HW | 640x512 | None --- pcsx2/gui/FrameForGS.cpp | 38 ++++++++++++++++++-------------------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/pcsx2/gui/FrameForGS.cpp b/pcsx2/gui/FrameForGS.cpp index 32f77123f5..e3e60468c4 100644 --- a/pcsx2/gui/FrameForGS.cpp +++ b/pcsx2/gui/FrameForGS.cpp @@ -564,43 +564,41 @@ void GSFrame::OnUpdateTitle( wxTimerEvent& evt ) gsDest[0] = 0; // No need to set whole array to NULL. GSgetTitleInfo2( gsDest, sizeof(gsDest) ); - const wxChar* limiterStr = L"None"; + const wxChar* limiterStr = L" (Unlimited)"; if( g_Conf->EmuOptions.GS.FrameLimitEnable ) { switch( g_LimiterMode ) { - case Limit_Nominal: limiterStr = L"Normal"; break; - case Limit_Turbo: limiterStr = L"Turbo"; break; - case Limit_Slomo: limiterStr = L"Slomo"; break; + case Limit_Nominal: limiterStr = L""; break; + case Limit_Turbo: limiterStr = L" (Turbo)"; break; + case Limit_Slomo: limiterStr = L" (Slomo)"; break; } } FastFormatUnicode cpuUsage; if (m_CpuUsage.IsImplemented()) { m_CpuUsage.UpdateStats(); - if (THREAD_VU1) { // Display VU thread's usage - cpuUsage.Write(L" | EE: %3d%% | GS: %3d%% | VU: %3d%% | UI: %3d%%", - m_CpuUsage.GetEEcorePct(), m_CpuUsage.GetGsPct(), - m_CpuUsage.GetVUPct(), m_CpuUsage.GetGuiPct()); - } - else { - cpuUsage.Write(L" | EE: %3d%% | GS: %3d%% | UI: %3d%%", - m_CpuUsage.GetEEcorePct(), m_CpuUsage.GetGsPct(), - m_CpuUsage.GetGuiPct()); - } + + cpuUsage.Write(L" | EE: %3d%%", m_CpuUsage.GetEEcorePct()); + cpuUsage.Write(L" | GS: %3d%%", m_CpuUsage.GetGsPct()); + + if (THREAD_VU1) + cpuUsage.Write(L" | VU: %3d%%", m_CpuUsage.GetVUPct()); + + pxNonReleaseCode(cpuUsage.Write(L" | UI: %3d%%", m_CpuUsage.GetEEcorePct());) } const u64& smode2 = *(u64*)PS2GS_BASE(GS_SMODE2); - SetTitle( pxsFmt( L"%s | %ls (%ls) | Limiter: %ls | Speed: %3d%% (%.02f)%ls | State %d", - WX_STR(fromUTF8(gsDest)), - (smode2 & 1) ? L"Interlaced" : L"Progressive", + SetTitle( pxsFmt( L"State %d | Speed%ls: %3d%% (%.02f)%ls | %ls-%ls | %s", + States_GetCurrentSlot(), + limiterStr, lround(per), fps, + cpuUsage.c_str(), (smode2 & 2) ? L"frame" : L"field", - limiterStr, lround(per), fps, cpuUsage.c_str(), States_GetCurrentSlot() ) + (smode2 & 1) ? L"i" : L"p", + WX_STR(fromUTF8(gsDest))) ); - - //States_GetCurrentSlot() } void GSFrame::OnActivate( wxActivateEvent& evt )