diff --git a/frontend/menu/rgui.c b/frontend/menu/rgui.c index d16cbe309a..2f08ee1143 100644 --- a/frontend/menu/rgui.c +++ b/frontend/menu/rgui.c @@ -994,7 +994,8 @@ static int rgui_settings_toggle_setting(rgui_handle_t *rgui, unsigned setting, r if (action == RGUI_ACTION_OK) { // Render a clean frame to avoid taking screnshot of RGUI. - if (g_settings.video.gpu_screenshot || g_extern.frame_cache.data == RETRO_HW_FRAME_BUFFER_VALID) + if (g_settings.video.gpu_screenshot || + g_extern.system.hw_render_callback.context_type != RETRO_HW_CONTEXT_NONE) { if (driver.video_poke && driver.video_poke->set_texture_enable) driver.video_poke->set_texture_enable(driver.video_data, false, false); diff --git a/retroarch.c b/retroarch.c index 9b51570073..1c874c8baf 100644 --- a/retroarch.c +++ b/retroarch.c @@ -126,18 +126,15 @@ void rarch_take_screenshot(void) bool ret = false; - if (g_extern.frame_cache.data) - { - if ((g_settings.video.gpu_screenshot || - (g_extern.frame_cache.data == RETRO_HW_FRAME_BUFFER_VALID)) && - driver.video->read_viewport && - driver.video->viewport_info) - ret = take_screenshot_viewport(); - else if (g_extern.frame_cache.data && (g_extern.frame_cache.data != RETRO_HW_FRAME_BUFFER_VALID)) - ret = take_screenshot_raw(); - else - RARCH_ERR("Cannot take screenshot. GPU rendering is used and read_viewport is not supported.\n"); - } + if ((g_settings.video.gpu_screenshot || + g_extern.system.hw_render_callback.context_type != RETRO_HW_CONTEXT_NONE) && + driver.video->read_viewport && + driver.video->viewport_info) + ret = take_screenshot_viewport(); + else if (g_extern.frame_cache.data && (g_extern.frame_cache.data != RETRO_HW_FRAME_BUFFER_VALID)) + ret = take_screenshot_raw(); + else + RARCH_ERR("Cannot take screenshot. GPU rendering is used and read_viewport is not supported.\n"); const char *msg = NULL; if (ret)