mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-09-05 09:33:48 -04:00
Refactor GraphicsTuner, no longer tanks performance when open (#2365)
* Sort includes, move logic into ConfigVars, add reusable helpers * Refactor GraphicsTuner, only refresh labels when actually needed
This commit is contained in:
+28
-5
@@ -1,8 +1,12 @@
|
||||
#include "dusk/settings.h"
|
||||
#include <aurora/aurora.h>
|
||||
|
||||
#include "dusk/config.hpp"
|
||||
#include "dusk/ui/ui.hpp"
|
||||
#include "dusk/game_mode.hpp"
|
||||
#include "dusk/texture_replacements.hpp"
|
||||
#include "dusk/ui/ui.hpp"
|
||||
|
||||
#include <aurora/aurora.h>
|
||||
#include <dolphin/vi.h>
|
||||
|
||||
namespace dusk {
|
||||
|
||||
@@ -221,6 +225,22 @@ UserSettings& getSettings() {
|
||||
return g_userSettings;
|
||||
}
|
||||
|
||||
void applyInternalResolutionScale(int scale) {
|
||||
VISetFrameBufferScale(static_cast<float>(scale));
|
||||
}
|
||||
|
||||
void applyResampler(Resampler resampler) {
|
||||
switch (resampler) {
|
||||
case Resampler::Area:
|
||||
aurora_set_resampler(SAMPLER_AREA);
|
||||
break;
|
||||
case Resampler::Bilinear:
|
||||
default:
|
||||
aurora_set_resampler(SAMPLER_BILINEAR);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void registerSettings() {
|
||||
// Video
|
||||
Register(g_userSettings.video.enableFullscreen);
|
||||
@@ -286,9 +306,12 @@ void registerSettings() {
|
||||
Register(g_userSettings.game.bloomMultiplier);
|
||||
Register(g_userSettings.game.depthOfFieldMode);
|
||||
Register(g_userSettings.game.disableWaterRefraction);
|
||||
Register(g_userSettings.game.enableTextureReplacements);
|
||||
Register(g_userSettings.game.internalResolutionScale);
|
||||
Register(g_userSettings.game.resampler);
|
||||
Register(g_userSettings.game.enableTextureReplacements,
|
||||
[](const bool&, const bool&) { texture_replacements::reload(); });
|
||||
Register(g_userSettings.game.internalResolutionScale,
|
||||
[](const int& value, const int&) { applyInternalResolutionScale(value); });
|
||||
Register(g_userSettings.game.resampler,
|
||||
[](const Resampler& value, const Resampler&) { applyResampler(value); });
|
||||
Register(g_userSettings.game.shadowResolutionMultiplier);
|
||||
Register(g_userSettings.game.enableMapBackground);
|
||||
Register(g_userSettings.game.disableCutscenePillarboxing);
|
||||
|
||||
Reference in New Issue
Block a user