From 184ce8e9b7544ebf31c078f2f77d3aab8a069bad Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sun, 2 Aug 2020 20:27:19 +0200 Subject: [PATCH] Cleanups --- retroarch.c | 74 +++++++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 33 deletions(-) diff --git a/retroarch.c b/retroarch.c index e562450421..93a4b9648e 100644 --- a/retroarch.c +++ b/retroarch.c @@ -30883,44 +30883,51 @@ const char *video_driver_get_ident(void) bool video_context_driver_set(const gfx_ctx_driver_t *data) { - struct rarch_state *p_rarch = &rarch_st; - + struct rarch_state *p_rarch = &rarch_st; if (!data) return false; p_rarch->current_video_context = *data; return true; } +static void video_context_driver_destroy_internal( + gfx_ctx_driver_t *ctx_driver) +{ + if (!ctx_driver) + return; + + ctx_driver->init = NULL; + ctx_driver->bind_api = NULL; + ctx_driver->swap_interval = NULL; + ctx_driver->set_video_mode = NULL; + ctx_driver->get_video_size = NULL; + ctx_driver->get_video_output_size = NULL; + ctx_driver->get_video_output_prev = NULL; + ctx_driver->get_video_output_next = NULL; + ctx_driver->get_metrics = NULL; + ctx_driver->translate_aspect = NULL; + ctx_driver->update_window_title = NULL; + ctx_driver->check_window = NULL; + ctx_driver->set_resize = NULL; + ctx_driver->suppress_screensaver = NULL; + ctx_driver->swap_buffers = NULL; + ctx_driver->input_driver = NULL; + ctx_driver->get_proc_address = NULL; + ctx_driver->image_buffer_init = NULL; + ctx_driver->image_buffer_write = NULL; + ctx_driver->show_mouse = NULL; + ctx_driver->ident = NULL; + ctx_driver->get_flags = NULL; + ctx_driver->set_flags = NULL; + ctx_driver->bind_hw_render = NULL; + ctx_driver->get_context_data = NULL; + ctx_driver->make_current = NULL; +} + void video_context_driver_destroy(void) { - struct rarch_state *p_rarch = &rarch_st; - - p_rarch->current_video_context.init = NULL; - p_rarch->current_video_context.bind_api = NULL; - p_rarch->current_video_context.swap_interval = NULL; - p_rarch->current_video_context.set_video_mode = NULL; - p_rarch->current_video_context.get_video_size = NULL; - p_rarch->current_video_context.get_video_output_size = NULL; - p_rarch->current_video_context.get_video_output_prev = NULL; - p_rarch->current_video_context.get_video_output_next = NULL; - p_rarch->current_video_context.get_metrics = NULL; - p_rarch->current_video_context.translate_aspect = NULL; - p_rarch->current_video_context.update_window_title = NULL; - p_rarch->current_video_context.check_window = NULL; - p_rarch->current_video_context.set_resize = NULL; - p_rarch->current_video_context.suppress_screensaver = NULL; - p_rarch->current_video_context.swap_buffers = NULL; - p_rarch->current_video_context.input_driver = NULL; - p_rarch->current_video_context.get_proc_address = NULL; - p_rarch->current_video_context.image_buffer_init = NULL; - p_rarch->current_video_context.image_buffer_write = NULL; - p_rarch->current_video_context.show_mouse = NULL; - p_rarch->current_video_context.ident = NULL; - p_rarch->current_video_context.get_flags = NULL; - p_rarch->current_video_context.set_flags = NULL; - p_rarch->current_video_context.bind_hw_render = NULL; - p_rarch->current_video_context.get_context_data = NULL; - p_rarch->current_video_context.make_current = NULL; + struct rarch_state *p_rarch = &rarch_st; + video_context_driver_destroy_internal(&p_rarch->current_video_context); } /** @@ -33471,7 +33478,7 @@ const gfx_ctx_driver_t *video_context_driver_init_first(void *data, void video_context_driver_free(void) { struct rarch_state *p_rarch = &rarch_st; - video_context_driver_destroy(); + video_context_driver_destroy_internal(&p_rarch->current_video_context); p_rarch->video_context_data = NULL; } @@ -33521,11 +33528,12 @@ bool video_context_driver_get_refresh_rate(float *refresh_rate) bool video_context_driver_input_driver(gfx_ctx_input_t *inp) { struct rarch_state *p_rarch = &rarch_st; - settings_t *settings = p_rarch->configuration_settings; - const char *joypad_name = settings->arrays.input_joypad_driver; if (p_rarch && p_rarch->current_video_context.input_driver) { + settings_t *settings = p_rarch->configuration_settings; + const char *joypad_name = settings->arrays.input_joypad_driver; + p_rarch->current_video_context.input_driver( p_rarch->video_context_data, joypad_name, inp->input, inp->input_data);