Various fixes

This commit is contained in:
Angie 2024-06-03 20:45:34 -04:00 committed by angie
parent 4c19ff443d
commit f0774b295f
2 changed files with 6 additions and 5 deletions

View file

@ -18,11 +18,13 @@ namespace ultramodern {
public:
bool developer_mode;
virtual ~GraphicsConfig() = 0;
virtual ~GraphicsConfig() = default;
virtual std::string get_graphics_api_name() const = 0;
virtual std::optional<uint32_t> get_target_framerate() const = 0;
auto operator<=>(const GraphicsConfig& rhs) const = default;
virtual bool is_equal(const GraphicsConfig& rhs) const = 0;
};
@ -66,7 +68,7 @@ namespace ultramodern {
std::unique_ptr<RendererContext> create_render_context(uint8_t* rdram, WindowHandle window_handle, bool developer_mode);
void set_graphics_config(const GraphicsConfig* config);
void set_graphics_config(std::unique_ptr<const GraphicsConfig>&& config);
const GraphicsConfig* get_graphics_config();
}
}

View file

@ -24,10 +24,9 @@ std::unique_ptr<ultramodern::renderer::RendererContext> ultramodern::renderer::c
static std::unique_ptr<const ultramodern::renderer::GraphicsConfig> graphic_config{};
static std::mutex graphic_config_mutex;
void ultramodern::renderer::set_graphics_config(const GraphicsConfig* config) {
void ultramodern::renderer::set_graphics_config(std::unique_ptr<const GraphicsConfig>&& config) {
std::lock_guard<std::mutex> lock(graphic_config_mutex);
assert(config != nullptr);
graphic_config.reset(config);
graphic_config.swap(config);
}
const ultramodern::renderer::GraphicsConfig* ultramodern::renderer::get_graphics_config() {