From 2e675d58654996f1d9eadb53ef0fc4f2b507a677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dar=C3=ADo?= Date: Mon, 29 Dec 2025 18:29:22 -0300 Subject: [PATCH] Do not discard framebuffers unless options relevant to the resolution are changed. (#31) * Do not discard framebuffers unless options relevant to the resolution are changed. * Change comment. --- src/main/rt64_render_context.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/main/rt64_render_context.cpp b/src/main/rt64_render_context.cpp index b3e13be..665a6c6 100644 --- a/src/main/rt64_render_context.cpp +++ b/src/main/rt64_render_context.cpp @@ -346,9 +346,14 @@ bool banjo::renderer::RT64Context::update_config(const ultramodern::renderer::Gr set_application_user_config(app.get(), new_config); - app->updateUserConfig(true); + // When updating the user configuration, only discard framebuffers if an option was changed that affects the resolution. + bool resolution_changed = new_config.res_option != old_config.res_option; + bool aspect_ratio_changed = new_config.ar_option != old_config.ar_option; + bool downsampling_changed = new_config.ds_option != old_config.ds_option; + bool msaa_changed = new_config.msaa_option != old_config.msaa_option; + app->updateUserConfig(resolution_changed || aspect_ratio_changed || downsampling_changed || msaa_changed); - if (new_config.msaa_option != old_config.msaa_option) { + if (msaa_changed) { app->updateMultisampling(); } return true;