mirror of
https://github.com/N64Recomp/N64ModernRuntime.git
synced 2026-05-11 03:12:15 +00:00
trigger_config_action
This commit is contained in:
parent
a3ac354eea
commit
68defcaf58
3 changed files with 7 additions and 1 deletions
|
|
@ -128,6 +128,7 @@ uint32_t get_target_framerate(uint32_t original);
|
||||||
uint32_t get_display_refresh_rate();
|
uint32_t get_display_refresh_rate();
|
||||||
float get_resolution_scale();
|
float get_resolution_scale();
|
||||||
void load_shader_cache(std::span<const char> cache_data);
|
void load_shader_cache(std::span<const char> cache_data);
|
||||||
|
void trigger_config_action();
|
||||||
|
|
||||||
// Audio
|
// Audio
|
||||||
void init_audio();
|
void init_audio();
|
||||||
|
|
|
||||||
|
|
@ -247,6 +247,10 @@ void ultramodern::load_shader_cache(std::span<const char> cache_data) {
|
||||||
events_context.action_queue.enqueue(LoadShaderCacheAction{cache_data});
|
events_context.action_queue.enqueue(LoadShaderCacheAction{cache_data});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ultramodern::trigger_config_action() {
|
||||||
|
events_context.action_queue.enqueue(UpdateConfigAction{});
|
||||||
|
}
|
||||||
|
|
||||||
std::atomic<ultramodern::renderer::SetupResult> renderer_setup_result = ultramodern::renderer::SetupResult::Success;
|
std::atomic<ultramodern::renderer::SetupResult> renderer_setup_result = ultramodern::renderer::SetupResult::Success;
|
||||||
|
|
||||||
void gfx_thread_func(uint8_t* rdram, moodycamel::LightweightSemaphore* thread_ready, ultramodern::WindowHandle window_handle) {
|
void gfx_thread_func(uint8_t* rdram, moodycamel::LightweightSemaphore* thread_ready, ultramodern::WindowHandle window_handle) {
|
||||||
|
|
@ -308,7 +312,7 @@ void gfx_thread_func(uint8_t* rdram, moodycamel::LightweightSemaphore* thread_re
|
||||||
}
|
}
|
||||||
else if (const auto* config_action = std::get_if<UpdateConfigAction>(&action)) {
|
else if (const auto* config_action = std::get_if<UpdateConfigAction>(&action)) {
|
||||||
auto new_config = ultramodern::renderer::get_graphics_config();
|
auto new_config = ultramodern::renderer::get_graphics_config();
|
||||||
if (!old_config->is_equal(*new_config)) {
|
if (!new_config->is_equal(*old_config)) {
|
||||||
renderer_context->update_config(old_config, new_config);
|
renderer_context->update_config(old_config, new_config);
|
||||||
old_config = new_config;
|
old_config = new_config;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ static std::mutex graphic_config_mutex;
|
||||||
void ultramodern::renderer::set_graphics_config(std::unique_ptr<const GraphicsConfig>&& config) {
|
void ultramodern::renderer::set_graphics_config(std::unique_ptr<const GraphicsConfig>&& config) {
|
||||||
std::lock_guard<std::mutex> lock(graphic_config_mutex);
|
std::lock_guard<std::mutex> lock(graphic_config_mutex);
|
||||||
graphic_config.swap(config);
|
graphic_config.swap(config);
|
||||||
|
ultramodern::trigger_config_action();
|
||||||
}
|
}
|
||||||
|
|
||||||
const ultramodern::renderer::GraphicsConfig* ultramodern::renderer::get_graphics_config() {
|
const ultramodern::renderer::GraphicsConfig* ultramodern::renderer::get_graphics_config() {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue