From 393724abdc7400dafbf0fb61c0cac77c9e0be53c Mon Sep 17 00:00:00 2001 From: Stenzek Date: Thu, 4 Sep 2025 20:22:34 +1000 Subject: [PATCH] Qt: Save one lookup when loading covers --- src/duckstation-qt/gamelistwidget.cpp | 9 +++++---- src/duckstation-qt/gamelistwidget.h | 2 +- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/duckstation-qt/gamelistwidget.cpp b/src/duckstation-qt/gamelistwidget.cpp index aa48c8aa8..4b48220f9 100644 --- a/src/duckstation-qt/gamelistwidget.cpp +++ b/src/duckstation-qt/gamelistwidget.cpp @@ -331,7 +331,7 @@ void GameListModel::createPlaceholderImage(QImage& image, const QImage& placehol } void GameListModel::loadOrGenerateCover(QImage& image, const QImage& placeholder_image, int width, int height, - float scale, float dpr, const std::string& path, const std::string& serial, + float scale, qreal dpr, const std::string& path, const std::string& serial, const std::string& save_title, const QString& display_title) { const std::string cover_path(GameList::GetCoverImagePath(path, serial, save_title)); @@ -352,13 +352,14 @@ void GameListModel::loadOrGenerateCover(QImage& image, const QImage& placeholder void GameListModel::coverLoaded(const std::string& path, const QImage& image, float scale) { // old request before cover scale change? - if (m_cover_scale != scale || !m_cover_pixmap_cache.Lookup(path)) + QPixmap* pm; + if (m_cover_scale != scale || !(pm = m_cover_pixmap_cache.Lookup(path))) return; if (!image.isNull()) - m_cover_pixmap_cache.Insert(path, QPixmap::fromImage(image)); + *pm = QPixmap::fromImage(image); else - m_cover_pixmap_cache.Insert(path, QPixmap()); + *pm = QPixmap(); invalidateCoverForPath(path); } diff --git a/src/duckstation-qt/gamelistwidget.h b/src/duckstation-qt/gamelistwidget.h index 8603b4b0b..c30ee5d3b 100644 --- a/src/duckstation-qt/gamelistwidget.h +++ b/src/duckstation-qt/gamelistwidget.h @@ -127,7 +127,7 @@ private: void coverLoaded(const std::string& path, const QImage& image, float scale); static void loadOrGenerateCover(QImage& image, const QImage& placeholder_image, int width, int height, float scale, - float dpr, const std::string& path, const std::string& serial, + qreal dpr, const std::string& path, const std::string& serial, const std::string& save_title, const QString& display_title); static void createPlaceholderImage(QImage& image, const QImage& placeholder_image, int width, int height, float scale, const QString& title);