Compare commits

...
3 Commits
Author SHA1 Message Date
KamFretoZandGovanifY 626e1b257c Qt: Decrease File Size Limit for Custom Backgroudn Cache
64MB is most likely too big, and may possibly cause out of memory. 25MB seems more reasonable.
2026-07-27 17:15:15 +02:00
KamFretoZandGovanifY 3973ba6aaf FSUI: Add Fallback to CPU Name OSD 2026-07-27 17:15:15 +02:00
KamFretoZandGovanifY 74e1dbb27f FSUI: Add gamelist hotkey to scan for new games 2026-07-27 17:15:15 +02:00
4 changed files with 16 additions and 20 deletions
+5 -4
View File
@@ -410,9 +410,6 @@ void GameListWidget::setCustomBackground()
delete m_background_movie;
m_background_movie = nullptr;
}
// Cache all frames for small images so loops don't keep re-decoding
else if (const s64 file_size = FileSystem::GetPathFileSize(path.c_str()); file_size > 0 && file_size < 64 * 1024 * 1024)
m_background_movie->setCacheMode(QMovie::CacheAll);
}
// Invalidate frame cache so the next animated frame triggers full reprocessing
@@ -436,6 +433,10 @@ void GameListWidget::setCustomBackground()
return;
}
// Cache all frames for small images so loops don't keep re-decoding
if (const s64 file_size = FileSystem::GetPathFileSize(path.c_str()); file_size > 0 && file_size < 25 * 1024 * 1024)
m_background_movie->setCacheMode(QMovie::CacheAll);
// Retrieve scaling setting
m_background_scaling = QtUtils::ScalingMode::Fit;
const std::string ar_value = Host::GetBaseStringSettingValue("UI", "GameListBackgroundMode", InterfaceSettingsWidget::BACKGROUND_SCALE_NAMES[static_cast<u8>(QtUtils::ScalingMode::Fit)]);
@@ -792,7 +793,7 @@ void GameListWidget::setShowFullCoverTitles(bool enabled)
Host::SetBaseBoolSettingValue("UI", "GameListShowFullCoverTitles", enabled);
Host::CommitBaseSettingChanges();
m_model->setShowFullCoverTitles(enabled);
m_list_view->setWordWrap(enabled);
m_list_view->setWordWrap(enabled);
if (isShowingGameGrid())
m_model->refresh();
updateToolbar();
+3 -15
View File
@@ -1068,27 +1068,15 @@ void EmuThread::updatePerformanceMetrics(bool force)
if (gpu_usage != m_last_gpu_usage || force)
{
QString text;
if (gpu_usage == 0)
text = tr("GPU: N/A");
else
text = tr("GPU: %1%").arg(gpu_usage, 0, 'f', 0);
QMetaObject::invokeMethod(g_main_window, "setStatusGPUText", Qt::QueuedConnection,
Q_ARG(const QString&, text));
Q_ARG(const QString&, tr("GPU: %1%").arg(gpu_usage, 0, 'f', 0)));
m_last_gpu_usage = gpu_usage;
}
if (gfps != m_last_game_fps || force)
{
QString text;
if (gfps == 0)
text = tr("FPS: N/A");
else
text = tr("FPS: %1").arg(gfps, 0, 'f', 0);
QMetaObject::invokeMethod(g_main_window, "setStatusFPSText", Qt::QueuedConnection,
Q_ARG(const QString&, text));
Q_ARG(const QString&, gfps == 0 ? tr("FPS: N/A") : tr("FPS: %1").arg(gfps, 0, 'f', 0)));
m_last_game_fps = gfps;
}
@@ -1267,7 +1255,7 @@ void Host::RunOnGSThread(std::function<void()> function)
void Host::RefreshGameListAsync(bool invalidate_cache)
{
QMetaObject::invokeMethod(g_main_window, "refreshGameList", Qt::QueuedConnection, Q_ARG(bool, invalidate_cache));
QMetaObject::invokeMethod(g_main_window, "refreshGameList", Qt::QueuedConnection, Q_ARG(bool, invalidate_cache), Q_ARG(bool, true));
}
void Host::CancelGameListRefresh()
+7
View File
@@ -2606,6 +2606,11 @@ void FullscreenUI::DrawGameListWindow()
{
OpenCoverDownloaderWindow();
}
else if (ImGui::IsKeyPressed(ImGuiKey_GamepadL2, false) || ImGui::IsKeyPressed(ImGuiKey_F5, false))
{
ShowToast(std::string(), FSUI_STR("Scanning for new games..."), 4.0f);
Host::RefreshGameListAsync(false);
}
switch (s_game_list_view)
{
@@ -2640,6 +2645,7 @@ void FullscreenUI::DrawGameListWindow()
std::make_pair(glyphs.dpad, FSUI_VSTR("Select Game")),
std::make_pair(glyphs.select, FSUI_VSTR("Cover Downloader")),
std::make_pair(glyphs.start, FSUI_VSTR("Settings")),
std::make_pair(ICON_PF_LEFT_TRIGGER_L2, FSUI_VSTR("Refresh List")),
std::make_pair(swapNorthWest ? glyphs.west : glyphs.north, FSUI_VSTR("Change View")),
std::make_pair(swapNorthWest ? glyphs.north : glyphs.west, FSUI_VSTR("Launch Options")),
std::make_pair(glyphs.confirm(circleOK), FSUI_VSTR("Start Game")),
@@ -2654,6 +2660,7 @@ void FullscreenUI::DrawGameListWindow()
std::make_pair(ICON_PF_F2, FSUI_VSTR("Settings")),
std::make_pair(ICON_PF_F3, FSUI_VSTR("Launch Options")),
std::make_pair(ICON_PF_F4, FSUI_VSTR("Cover Downloader")),
std::make_pair(ICON_PF_F5, FSUI_VSTR("Refresh List")),
std::make_pair(ICON_PF_ENTER, FSUI_VSTR("Start Game")),
std::make_pair(ICON_PF_ESC, FSUI_VSTR("Back")),
});
+1 -1
View File
@@ -428,7 +428,7 @@ __ri void ImGuiManager::DrawPerformanceOverlay(float& position_y, float scale, f
const CPUInfo& info = GetCPUInfo();
const bool has_small = info.num_small_cores > 0;
const bool has_smt = info.num_threads != info.num_big_cores + info.num_small_cores;
s_hardware_info_cpu_line.format("CPU: {}", info.name);
s_hardware_info_cpu_line.format("CPU: {}", !info.name.empty() ? info.name : "Unknown");
if (has_smt && has_small)
s_hardware_info_cpu_line.append_format(" ({}P/{}E/{}T)", info.num_big_cores, info.num_small_cores, info.num_threads);
else if (has_small)