diff --git a/gfx/video_driver.c b/gfx/video_driver.c index 22e16e66d3..9f9f72ba78 100644 --- a/gfx/video_driver.c +++ b/gfx/video_driver.c @@ -3028,7 +3028,7 @@ static const gfx_ctx_driver_t *video_context_driver_init( ctx->bind_hw_render(ctx_data, video_info.shared_context && hw_render_ctx); - video_context_driver_set_data(ctx_data); + video_context_data = ctx_data; return ctx; } @@ -3334,13 +3334,35 @@ bool video_context_driver_show_mouse(bool *bool_data) return true; } -void video_context_driver_set_data(void *data) +static bool video_context_driver_get_flags(gfx_ctx_flags_t *flags) { - video_context_data = data; + if (!current_video_context.get_flags) + return false; + + if (deferred_video_context_driver_set_flags) + { + flags->flags = deferred_flag_data.flags; + deferred_video_context_driver_set_flags = false; + return true; + } + + flags->flags = current_video_context.get_flags(video_context_data); + return true; +} + +static bool video_driver_get_flags(gfx_ctx_flags_t *flags) +{ + if (!video_driver_poke || !video_driver_poke->get_flags) + return false; + flags->flags = video_driver_poke->get_flags(video_driver_data); + return true; } bool video_driver_get_all_flags(gfx_ctx_flags_t *flags, enum display_flags flag) { + if (!flags) + return false; + if (video_driver_get_flags(flags)) if (BIT32_GET(flags->flags, flag)) return true; @@ -3354,29 +3376,7 @@ bool video_driver_get_all_flags(gfx_ctx_flags_t *flags, enum display_flags flag) return false; } -bool video_driver_get_flags(gfx_ctx_flags_t *flags) -{ - if (!flags || !video_driver_poke || !video_driver_poke->get_flags) - return false; - flags->flags = video_driver_poke->get_flags(video_driver_data); - return true; -} -bool video_context_driver_get_flags(gfx_ctx_flags_t *flags) -{ - if (!flags || !current_video_context.get_flags) - return false; - - if (deferred_video_context_driver_set_flags) - { - flags->flags = deferred_flag_data.flags; - deferred_video_context_driver_set_flags = false; - return true; - } - - flags->flags = current_video_context.get_flags(video_context_data); - return true; -} bool video_context_driver_set_flags(gfx_ctx_flags_t *flags) { diff --git a/gfx/video_driver.h b/gfx/video_driver.h index c83d15fbc4..85573d230e 100644 --- a/gfx/video_driver.h +++ b/gfx/video_driver.h @@ -1185,12 +1185,6 @@ bool video_context_driver_get_context_data(void *data); bool video_context_driver_show_mouse(bool *bool_data); -void video_context_driver_set_data(void *data); - -bool video_driver_get_flags(gfx_ctx_flags_t *flags); - -bool video_context_driver_get_flags(gfx_ctx_flags_t *flags); - bool video_context_driver_set_flags(gfx_ctx_flags_t *flags); bool video_context_driver_get_metrics(gfx_ctx_metrics_t *metrics);