diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c index f0252df623..b315ab6a46 100644 --- a/gfx/drivers/gl.c +++ b/gfx/drivers/gl.c @@ -4565,6 +4565,14 @@ static bool gl2_gfx_widgets_enabled(void *data) } #endif +static bool gl2_has_windowed(void *data) +{ + gl_t *gl = (gl_t*)data; + if (gl && gl->ctx_driver) + return gl->ctx_driver->has_windowed; + return false; +} + video_driver_t video_gl2 = { gl2_init, gl2_frame, @@ -4572,7 +4580,7 @@ video_driver_t video_gl2 = { gl2_alive, NULL, /* focus */ gl2_suppress_screensaver, - NULL, /* has_windowed */ + gl2_has_windowed, gl2_set_shader, diff --git a/gfx/drivers/gl1.c b/gfx/drivers/gl1.c index ec991ee22f..bcf5aaf75d 100644 --- a/gfx/drivers/gl1.c +++ b/gfx/drivers/gl1.c @@ -1538,6 +1538,14 @@ static void gl1_get_overlay_interface(void *data, #endif +static bool gl1_has_windowed(void *data) +{ + gl1_t *gl = (gl1_t*)data; + if (gl && gl->ctx_driver) + return gl->ctx_driver->has_windowed; + return false; +} + video_driver_t video_gl1 = { gl1_gfx_init, gl1_gfx_frame, @@ -1545,7 +1553,7 @@ video_driver_t video_gl1 = { gl1_gfx_alive, gl1_gfx_focus, gl1_gfx_suppress_screensaver, - NULL, /* has_windowed */ + gl1_has_windowed, gl1_gfx_set_shader, gl1_gfx_free, "gl1", diff --git a/gfx/drivers/gl_core.c b/gfx/drivers/gl_core.c index e5726995fa..50252672b4 100644 --- a/gfx/drivers/gl_core.c +++ b/gfx/drivers/gl_core.c @@ -2296,6 +2296,14 @@ static unsigned gl_core_wrap_type_to_enum(enum gfx_wrap_type type) return 0; } +static bool gl_core_has_windowed(void *data) +{ + gl_core_t *gl = (gl_core_t*)data; + if (gl && gl->ctx_driver) + return gl->ctx_driver->has_windowed; + return false; +} + video_driver_t video_gl_core = { gl_core_init, gl_core_frame, @@ -2303,7 +2311,7 @@ video_driver_t video_gl_core = { gl_core_alive, NULL, /* focus */ gl_core_suppress_screensaver, - NULL, /* has_windowed */ + gl_core_has_windowed, gl_core_set_shader, diff --git a/gfx/drivers/vg.c b/gfx/drivers/vg.c index 53be57c3f8..61d87b6c04 100644 --- a/gfx/drivers/vg.c +++ b/gfx/drivers/vg.c @@ -482,6 +482,14 @@ static bool vg_set_shader(void *data, static void vg_get_poke_interface(void *data, const video_poke_interface_t **iface) { } +static bool vg_has_windowed(void *data) +{ + vg_t *vg = (vg_t*)data; + if (vg && vg->ctx_driver) + return vg->ctx_driver->has_windowed; + return false; +} + video_driver_t video_vg = { vg_init, vg_frame, @@ -489,7 +497,7 @@ video_driver_t video_vg = { vg_alive, NULL, /* focused */ vg_suppress_screensaver, - NULL, /* has_windowed */ + vg_has_windowed, vg_set_shader, vg_free, "vg", diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c index 1a2aa7efc4..de8e7d8c2f 100644 --- a/gfx/drivers/vulkan.c +++ b/gfx/drivers/vulkan.c @@ -2945,6 +2945,14 @@ static void vulkan_get_overlay_interface(void *data, static bool vulkan_gfx_widgets_enabled(void *data) { return true; } #endif +static bool vulkan_has_windowed(void *data) +{ + vk_t *vk = (vk_t*)data; + if (vk && vk->ctx_driver) + return vk->ctx_driver->has_windowed; + return false; +} + video_driver_t video_vulkan = { vulkan_init, vulkan_frame, @@ -2952,7 +2960,7 @@ video_driver_t video_vulkan = { vulkan_alive, NULL, /* focus */ vulkan_suppress_screensaver, - NULL, /* has_windowed */ + vulkan_has_windowed, vulkan_set_shader, vulkan_free, "vulkan", diff --git a/retroarch.c b/retroarch.c index 024825804b..621d2b1fcb 100644 --- a/retroarch.c +++ b/retroarch.c @@ -33516,8 +33516,6 @@ bool video_driver_has_windowed(void) struct rarch_state *p_rarch = &rarch_st; if (p_rarch->video_driver_data && p_rarch->current_video->has_windowed) return p_rarch->current_video->has_windowed(p_rarch->video_driver_data); - else if (p_rarch->video_context_data) - return p_rarch->current_video_context.has_windowed; #endif return false; }