From 4bab3bffc057b9ce5861ded37a5999c7eca3d3b9 Mon Sep 17 00:00:00 2001
From: Connor McLaughlin <mclaughc@outlook.com>
Date: Thu, 14 Nov 2019 01:22:35 +1000
Subject: [PATCH] Frontend: Fix display linear filtering setting not applying

---
 src/duckstation/sdl_host_interface.cpp | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/duckstation/sdl_host_interface.cpp b/src/duckstation/sdl_host_interface.cpp
index ee2b57401..b734a18a9 100644
--- a/src/duckstation/sdl_host_interface.cpp
+++ b/src/duckstation/sdl_host_interface.cpp
@@ -77,6 +77,8 @@ bool SDLHostInterface::CreateDisplay()
   if (!m_display)
     return false;
 
+  m_display->SetDisplayLinearFiltering(m_settings.display_linear_filtering);
+
   m_app_icon_texture =
     m_display->CreateTexture(APP_ICON_WIDTH, APP_ICON_HEIGHT, APP_ICON_DATA, APP_ICON_WIDTH * sizeof(u32));
   if (!m_app_icon_texture)
@@ -757,7 +759,11 @@ void SDLHostInterface::DrawQuickSettingsMenu()
   }
 
   gpu_settings_changed |= ImGui::MenuItem("True (24-Bit) Color", nullptr, &m_settings.gpu_true_color);
-  settings_changed |= ImGui::MenuItem("Display Linear Filtering", nullptr, &m_settings.display_linear_filtering);
+  if (ImGui::MenuItem("Display Linear Filtering", nullptr, &m_settings.display_linear_filtering))
+  {
+    m_display->SetDisplayLinearFiltering(m_settings.display_linear_filtering);
+    settings_changed = true;
+  }
 
   if (settings_changed || gpu_settings_changed)
     SaveSettings();
@@ -973,8 +979,15 @@ void SDLHostInterface::DrawSettingsWindow()
       {
         ImGui::Checkbox("Fullscreen", &m_settings.display_fullscreen);
         if (ImGui::Checkbox("VSync", &m_settings.gpu_vsync))
+        {
           UpdateAudioVisualSync();
-        ImGui::Checkbox("Linear Filtering", &m_settings.display_linear_filtering);
+          settings_changed = true;
+        }
+        if (ImGui::Checkbox("Linear Filtering", &m_settings.display_linear_filtering))
+        {
+          m_display->SetDisplayLinearFiltering(m_settings.display_linear_filtering);
+          settings_changed = true;
+        }
       }
 
       ImGui::NewLine();