diff --git a/ultramodern/include/ultramodern/renderer_wrapper.hpp b/ultramodern/include/ultramodern/renderer_wrapper.hpp index bbbf55d..b7cf957 100644 --- a/ultramodern/include/ultramodern/renderer_wrapper.hpp +++ b/ultramodern/include/ultramodern/renderer_wrapper.hpp @@ -23,7 +23,7 @@ namespace ultramodern { virtual std::string get_graphics_api_name() const = 0; virtual std::optional get_target_framerate() const = 0; - auto operator<=>(const GraphicsConfig& rhs) const = default; + virtual bool is_equal(const GraphicsConfig& rhs) const = 0; }; enum class SetupResult { diff --git a/ultramodern/src/events.cpp b/ultramodern/src/events.cpp index a4a13cd..953652e 100644 --- a/ultramodern/src/events.cpp +++ b/ultramodern/src/events.cpp @@ -308,7 +308,7 @@ void gfx_thread_func(uint8_t* rdram, moodycamel::LightweightSemaphore* thread_re } else if (const auto* config_action = std::get_if(&action)) { auto new_config = ultramodern::renderer::get_graphics_config(); - if (*old_config != *new_config) { + if (!old_config->is_equal(*new_config)) { renderer_context->update_config(old_config, new_config); old_config = new_config; }