From 595a6f1c9efc6fd7a92a7c2da0dd7e1743a60d9a Mon Sep 17 00:00:00 2001 From: Luke Street Date: Tue, 21 Apr 2026 14:52:16 -0600 Subject: [PATCH] Enable DoF (+ setting) & fix texture cache leak --- extern/aurora | 2 +- include/dusk/settings.h | 1 + src/dusk/imgui/ImGuiMenuGame.cpp | 2 ++ src/dusk/settings.cpp | 2 ++ src/m_Do/m_Do_graphic.cpp | 3 +++ 5 files changed, 9 insertions(+), 1 deletion(-) diff --git a/extern/aurora b/extern/aurora index 5d420c9f73..ccb9dc1ad7 160000 --- a/extern/aurora +++ b/extern/aurora @@ -1 +1 @@ -Subproject commit 5d420c9f73c93ab9a5dcd052ac92d47362764e80 +Subproject commit ccb9dc1ad78f7e278af19d308a4f3e870ca04889 diff --git a/include/dusk/settings.h b/include/dusk/settings.h index 03749967c9..2cec252006 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -77,6 +77,7 @@ struct UserSettings { ConfigVar enableFrameInterpolation; ConfigVar internalResolutionScale; ConfigVar shadowResolutionMultiplier; + ConfigVar enableDepthOfField; // Audio ConfigVar noLowHpSound; diff --git a/src/dusk/imgui/ImGuiMenuGame.cpp b/src/dusk/imgui/ImGuiMenuGame.cpp index f41da74b7f..448bd531ff 100644 --- a/src/dusk/imgui/ImGuiMenuGame.cpp +++ b/src/dusk/imgui/ImGuiMenuGame.cpp @@ -165,6 +165,8 @@ namespace dusk { ImGui::Checkbox("Enable LOD Bias", &aurora::gx::enableLodBias); + config::ImGuiCheckbox("Enable Depth of Field", getSettings().game.enableDepthOfField); + ImGui::EndMenu(); } } diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index 2bcdbe2185..aacca0dbc9 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -51,6 +51,7 @@ UserSettings g_userSettings = { .enableFrameInterpolation = {"game.enableFrameInterpolation", false}, .internalResolutionScale {"game.internalResolutionScale", 0}, .shadowResolutionMultiplier {"game.shadowResolutionMultiplier", 1}, + .enableDepthOfField {"game.enableDepthOfField", true}, // Audio .noLowHpSound {"game.noLowHpSound", false}, @@ -143,6 +144,7 @@ void registerSettings() { Register(g_userSettings.game.disableWaterRefraction); Register(g_userSettings.game.internalResolutionScale); Register(g_userSettings.game.shadowResolutionMultiplier); + Register(g_userSettings.game.enableDepthOfField); Register(g_userSettings.game.enableFastIronBoots); Register(g_userSettings.game.canTransformAnywhere); Register(g_userSettings.game.freeMagicArmor); diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index d949d10ff0..4dc505ac03 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -1155,6 +1155,9 @@ static void drawDepth2(view_class* param_0, view_port_class* param_1, int param_ GXSetProjection(ortho, GX_ORTHOGRAPHIC); GXSetCurrentMtx(0); +#ifdef TARGET_PC + if (dusk::getSettings().game.enableDepthOfField) +#endif if (l_tevColor0.a > -255 && sp8 == 1) { GXBegin(GX_QUADS, GX_VTXFMT0, 4); GXPosition3s16(x_orig, y_orig_pos, -5);