diff --git a/es-app/src/views/GamelistView.cpp b/es-app/src/views/GamelistView.cpp index bcec46a0d..a886db174 100644 --- a/es-app/src/views/GamelistView.cpp +++ b/es-app/src/views/GamelistView.cpp @@ -104,6 +104,9 @@ void GamelistView::onThemeChanged(const std::shared_ptr& theme) return; } + const bool isStartupSystem {Settings::getInstance()->getString("StartupSystem") == + mRoot->getSystem()->getName()}; + using namespace ThemeFlags; if (mTheme->hasView("gamelist")) { @@ -169,7 +172,11 @@ void GamelistView::onThemeChanged(const std::shared_ptr& theme) addChild(mPrimary); } if (element.second.type == "image") { - mImageComponents.push_back(std::make_unique()); + // If this is the startup system, then forceload the images to avoid texture pop-in. + if (isStartupSystem) + mImageComponents.push_back(std::make_unique(true)); + else + mImageComponents.push_back(std::make_unique()); mImageComponents.back()->setDefaultZIndex(30.0f); mImageComponents.back()->applyTheme(theme, "gamelist", element.first, ALL); if (mImageComponents.back()->getThemeImageTypes().size() != 0) diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 46f46d311..b86e7bb1f 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -472,7 +472,15 @@ void SystemView::populate() } } else if (element.second.type == "image") { - elements.imageComponents.emplace_back(std::make_unique()); + // If this is the first system, then forceload the images to avoid texture + // pop-in. + if (it == SystemData::sSystemVector.front()) + elements.imageComponents.emplace_back( + std::make_unique(true)); + else + elements.imageComponents.emplace_back( + std::make_unique()); + elements.imageComponents.back()->setDefaultZIndex(30.0f); elements.imageComponents.back()->applyTheme(theme, "system", element.first, ThemeFlags::ALL);