diff --git a/ADOFAIRenderer.csproj b/ADOFAIRenderer.csproj
index 2591e4a..ba45748 100644
--- a/ADOFAIRenderer.csproj
+++ b/ADOFAIRenderer.csproj
@@ -7,6 +7,7 @@
false
true
true
+ 9
diff --git a/Core/RenderManager.cs b/Core/RenderManager.cs
index 7dacfe9..ca85512 100644
--- a/Core/RenderManager.cs
+++ b/Core/RenderManager.cs
@@ -102,7 +102,7 @@ namespace ADOFAIRenderer.Core
}
// Thread and Queue State
- internal SortedList ImageQueue = new SortedList();
+ internal SortedList ImageQueue = new();
public Thread? RenderThread;
public long passCount;
public bool endRequested;
@@ -111,7 +111,7 @@ namespace ADOFAIRenderer.Core
// Private Instance Fields
private FFmpegNativeEncoder? _activeVideoFFmpeg;
- private readonly List _allVideoFFmpegInstances = new List();
+ private readonly List _allVideoFFmpegInstances = new();
private int _originalInputOffset;
private GameObject? _debugMonitorObj;
private GameObject? _escapeHandlerObj;
diff --git a/Data/IntegerInputValidator.cs b/Data/IntegerInputValidator.cs
new file mode 100644
index 0000000..d37f62e
--- /dev/null
+++ b/Data/IntegerInputValidator.cs
@@ -0,0 +1,7 @@
+namespace ADOFAIRenderer.Data
+{
+ public class PositiveIntegerValidator
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Data/RenderConfig.cs b/Data/RenderConfig.cs
new file mode 100644
index 0000000..53e8bbc
--- /dev/null
+++ b/Data/RenderConfig.cs
@@ -0,0 +1,7 @@
+namespace ADOFAIRenderer.Configuration
+{
+ public class RenderConfig
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/Patch/Engine/RenderEnvironmentPatches.cs b/Patch/Engine/RenderEnvironmentPatches.cs
index ac691a2..23d2e72 100644
--- a/Patch/Engine/RenderEnvironmentPatches.cs
+++ b/Patch/Engine/RenderEnvironmentPatches.cs
@@ -2,7 +2,6 @@ using System.Diagnostics.CodeAnalysis;
using ADOFAIRenderer.Core;
using ADOFAIRenderer.Util;
using HarmonyLib;
-using MelonLoader;
using UnityEngine;
namespace ADOFAIRenderer.Patch.Engine
diff --git a/UI/DebugMonitorUI.cs b/UI/DebugMonitorUI.cs
index 7f8788a..b336d33 100644
--- a/UI/DebugMonitorUI.cs
+++ b/UI/DebugMonitorUI.cs
@@ -15,13 +15,13 @@ namespace ADOFAIRenderer.UI
private const float BarPosX = 0f;
private const float BarPosY = -420f; // Y position relative to screen center (Reference: 1920x1080)
private const int BarTextFontSize = 16; // 눈에 띄게 증가된 텍스트 크기
- private static readonly Color BarBackgroundColor = new Color(0.08f, 0.08f, 0.1f, 1.0f);
- private static readonly Color BarFillColor = new Color(0.0f, 0.8f, 1.0f, 1.0f); // Sleek cyan/blue
- private static readonly Color BarTextColor = new Color(1.0f, 1.0f, 1.0f, 1.0f);
+ private static readonly Color BarBackgroundColor = new(0.08f, 0.08f, 0.1f, 1.0f);
+ private static readonly Color BarFillColor = new(0.0f, 0.8f, 1.0f, 1.0f); // Sleek cyan/blue
+ private static readonly Color BarTextColor = new(1.0f, 1.0f, 1.0f, 1.0f);
// --- Progress Bar Outline Configuration Constants ---
private static readonly Color BarOutlineColor = Color.white; // 대비되는 흰색 윤곽선
- private static readonly Vector2 BarOutlineDistance = new Vector2(3.0f, -3.0f); // 3px의 굵고 직관적인 윤곽선 두께
+ private static readonly Vector2 BarOutlineDistance = new(3.0f, -3.0f); // 3px의 굵고 직관적인 윤곽선 두께
private TextMeshProUGUI _text = null!;
private GameObject _progressBarObj = null!;
diff --git a/Util/AudioSpectrumGenerator.cs b/Util/AudioSpectrumGenerator.cs
index 39ea17c..8b07750 100644
--- a/Util/AudioSpectrumGenerator.cs
+++ b/Util/AudioSpectrumGenerator.cs
@@ -13,7 +13,7 @@ namespace ADOFAIRenderer.Util
public static int TotalSamples { get; private set; }
private static long _cachedFrame = -1;
- private static readonly Dictionary CachedSpectrums = new Dictionary();
+ private static readonly Dictionary CachedSpectrums = new();
public static void Initialize(AudioClip? clip)
{
diff --git a/Util/FFmpeg/FFmpegNativeEncoder.cs b/Util/FFmpeg/FFmpegNativeEncoder.cs
index dddf7b5..9118d96 100644
--- a/Util/FFmpeg/FFmpegNativeEncoder.cs
+++ b/Util/FFmpeg/FFmpegNativeEncoder.cs
@@ -128,7 +128,7 @@ namespace ADOFAIRenderer.Util.FFmpeg
private bool _disposed;
/// 멀티스레딩 환경에서 인코더 상태 및 리소스 접근을 동기화하기 위한 락 객체.
- private readonly object _lock = new object();
+ private readonly object _lock = new();
///
/// QSV 인코더에서 hw_frames_ctx 모드(GPU 프레임 풀)가 활성화되었는지 여부.
diff --git a/Util/FrameReader.cs b/Util/FrameReader.cs
index 9b05308..3ba0dbf 100644
--- a/Util/FrameReader.cs
+++ b/Util/FrameReader.cs
@@ -15,9 +15,9 @@ namespace ADOFAIRenderer.Util
{
private const int InitialBufferSize = 16;
- private readonly Stack _statePool = new Stack();
- private readonly List _allocatedStates = new List();
- private readonly object _poolLock = new object();
+ private readonly Stack _statePool = new();
+ private readonly List _allocatedStates = new();
+ private readonly object _poolLock = new();
private bool _isInitialized;
private volatile bool _isDisposed;
diff --git a/Util/GPUUtil.cs b/Util/GPUUtil.cs
index ac3a2fe..be0752c 100644
--- a/Util/GPUUtil.cs
+++ b/Util/GPUUtil.cs
@@ -20,7 +20,7 @@ namespace ADOFAIRenderer.Util
private const string IntelPattern =
@"^Intel(?>\(R\))* (?>U*HD Graphics [0-9]+$|Arc\(TM\) [A-C][0-9]+ Graphics)";
- private static readonly Dictionary> CodecMap = new Dictionary>
+ private static readonly Dictionary> CodecMap = new()
{
[Codec.H264] = new List<(GPUVendor, string)> { (GPUVendor.NVIDIA, "h264_nvenc"), (GPUVendor.Intel, "h264_qsv"), (GPUVendor.AMD, "h264_amf"), (GPUVendor.Unknown, "libx264") },
[Codec.H265] = new List<(GPUVendor, string)> { (GPUVendor.NVIDIA, "hevc_nvenc"), (GPUVendor.Intel, "hevc_qsv"), (GPUVendor.AMD, "hevc_amf"), (GPUVendor.Unknown, "libx265") },