From 0c0f5b7ccc1dcc2b223063ea75286203edb0eab0 Mon Sep 17 00:00:00 2001
From: lat9nq <22451773+lat9nq@users.noreply.github.com>
Date: Tue, 2 May 2023 16:54:19 -0400
Subject: [PATCH] bootmanager: Clean up includes [IWYU]

bootmanager: Remove system-specific headers

IWYU can be too complete I suppose.
---
 src/yuzu/bootmanager.cpp | 40 +++++++++++++++++++++++++++++-----------
 src/yuzu/bootmanager.h   | 25 +++++++++++++++++++++----
 2 files changed, 50 insertions(+), 15 deletions(-)

diff --git a/src/yuzu/bootmanager.cpp b/src/yuzu/bootmanager.cpp
index b064c9c644..d0c72b8207 100644
--- a/src/yuzu/bootmanager.cpp
+++ b/src/yuzu/bootmanager.cpp
@@ -1,36 +1,48 @@
 // SPDX-FileCopyrightText: 2014 Citra Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
+#include <algorithm>
+#include <array>
+#include <cmath>
+#include <cstring>
+#include <string>
+#include <tuple>
+#include <type_traits>
 #include <glad/glad.h>
 
-#include <QApplication>
+#include <QtCore/qglobal.h>
 #if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) && YUZU_USE_QT_MULTIMEDIA
+#include <QCamera>
 #include <QCameraImageCapture>
 #include <QCameraInfo>
 #endif
+#include <QCursor>
+#include <QEvent>
+#include <QGuiApplication>
 #include <QHBoxLayout>
+#include <QKeyEvent>
+#include <QLayout>
+#include <QList>
 #include <QMessageBox>
-#include <QPainter>
 #include <QScreen>
-#include <QString>
-#include <QStringList>
+#include <QSize>
+#include <QStringLiteral>
+#include <QSurfaceFormat>
+#include <QTimer>
 #include <QWindow>
+#include <QtCore/qobjectdefs.h>
 
 #ifdef HAS_OPENGL
 #include <QOffscreenSurface>
 #include <QOpenGLContext>
 #endif
 
-#if !defined(WIN32)
-#include <qpa/qplatformnativeinterface.h>
-#endif
-
-#include <fmt/format.h>
-
-#include "common/assert.h"
 #include "common/microprofile.h"
+#include "common/polyfill_thread.h"
 #include "common/scm_rev.h"
 #include "common/settings.h"
+#include "common/settings_input.h"
+#include "common/thread.h"
 #include "core/core.h"
 #include "core/cpu_manager.h"
 #include "core/frontend/framebuffer_layout.h"
@@ -40,11 +52,17 @@
 #include "input_common/drivers/tas_input.h"
 #include "input_common/drivers/touch_screen.h"
 #include "input_common/main.h"
+#include "video_core/gpu.h"
+#include "video_core/rasterizer_interface.h"
 #include "video_core/renderer_base.h"
 #include "yuzu/bootmanager.h"
 #include "yuzu/main.h"
 #include "yuzu/qt_common.h"
 
+class QObject;
+class QPaintEngine;
+class QSurface;
+
 EmuThread::EmuThread(Core::System& system) : m_system{system} {}
 
 EmuThread::~EmuThread() = default;
diff --git a/src/yuzu/bootmanager.h b/src/yuzu/bootmanager.h
index 8a69cf9731..4276be82b5 100644
--- a/src/yuzu/bootmanager.h
+++ b/src/yuzu/bootmanager.h
@@ -5,28 +5,46 @@
 
 #include <atomic>
 #include <condition_variable>
+#include <cstddef>
 #include <memory>
 #include <mutex>
+#include <stop_token>
+#include <utility>
+#include <vector>
 
+#include <QByteArray>
 #include <QImage>
+#include <QObject>
+#include <QPoint>
+#include <QString>
 #include <QStringList>
 #include <QThread>
-#include <QTouchEvent>
 #include <QWidget>
+#include <qglobal.h>
+#include <qnamespace.h>
+#include <qobjectdefs.h>
 
+#include "common/common_types.h"
 #include "common/logging/log.h"
 #include "common/polyfill_thread.h"
 #include "common/thread.h"
 #include "core/frontend/emu_window.h"
 
-class GRenderWindow;
 class GMainWindow;
 class QCamera;
 class QCameraImageCapture;
+class QCloseEvent;
+class QFocusEvent;
 class QKeyEvent;
+class QMouseEvent;
+class QObject;
+class QResizeEvent;
+class QShowEvent;
+class QTimer;
+class QTouchEvent;
+class QWheelEvent;
 
 namespace Core {
-enum class SystemResultStatus : u32;
 class System;
 } // namespace Core
 
@@ -41,7 +59,6 @@ enum class TasState;
 
 namespace VideoCore {
 enum class LoadCallbackStage;
-class RendererBase;
 } // namespace VideoCore
 
 class EmuThread final : public QThread {