Hide 'Take Screenshot' for video drivers that don't support
taking screenshots yet
This commit is contained in:
parent
8094e02823
commit
a0b2d97ca3
|
@ -1215,8 +1215,17 @@ static void ctr_set_osd_msg(void *data,
|
||||||
font_driver_render_msg(video_info, font, msg, params);
|
font_driver_render_msg(video_info, font, msg, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t ctr_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t ctr_poke_interface = {
|
static const video_poke_interface_t ctr_poke_interface = {
|
||||||
NULL, /* get_flags */
|
ctr_get_flags,
|
||||||
ctr_load_texture,
|
ctr_load_texture,
|
||||||
ctr_unload_texture,
|
ctr_unload_texture,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -2045,6 +2045,7 @@ static uint32_t d3d9_get_flags(void *data)
|
||||||
|
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -629,8 +629,15 @@ static void gdi_unload_texture(void *data, uintptr_t handle)
|
||||||
free(texture);
|
free(texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t gdi_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t gdi_poke_interface = {
|
static const video_poke_interface_t gdi_poke_interface = {
|
||||||
NULL, /* get_flags */
|
gdi_get_flags,
|
||||||
gdi_load_texture,
|
gdi_load_texture,
|
||||||
gdi_unload_texture,
|
gdi_unload_texture,
|
||||||
gdi_set_video_mode,
|
gdi_set_video_mode,
|
||||||
|
|
|
@ -4161,6 +4161,7 @@ static uint32_t gl2_get_flags(void *data)
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_HARD_SYNC);
|
BIT32_SET(flags, GFX_CTX_FLAGS_HARD_SYNC);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1730,6 +1730,7 @@ static uint32_t gl_core_get_flags(void *data)
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1714,6 +1714,7 @@ static uint32_t wiiu_gfx_get_flags(void *data)
|
||||||
uint32_t flags = 0;
|
uint32_t flags = 0;
|
||||||
|
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1263,8 +1263,17 @@ static void gx_get_video_output_next(void *data)
|
||||||
global->console.screen.resolutions.current.id++;
|
global->console.screen.resolutions.current.id++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t gx_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t gx_poke_interface = {
|
static const video_poke_interface_t gx_poke_interface = {
|
||||||
NULL, /* get_flags */
|
gx_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
gx_set_video_mode,
|
gx_set_video_mode,
|
||||||
|
|
|
@ -322,6 +322,7 @@ static uint32_t metal_get_flags(void *data)
|
||||||
#if defined(HAVE_SLANG) && defined(HAVE_SPIRV_CROSS)
|
#if defined(HAVE_SLANG) && defined(HAVE_SPIRV_CROSS)
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||||
#endif
|
#endif
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -830,8 +830,17 @@ static void psp_viewport_info(void *data, struct video_viewport *vp)
|
||||||
*vp = psp->vp;
|
*vp = psp->vp;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t psp_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t psp_poke_interface = {
|
static const video_poke_interface_t psp_poke_interface = {
|
||||||
NULL, /* get_flags */
|
psp_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -724,8 +724,15 @@ static void sdl2_grab_mouse_toggle(void *data)
|
||||||
SDL_SetWindowGrab(vid->window, SDL_GetWindowGrab(vid->window));
|
SDL_SetWindowGrab(vid->window, SDL_GetWindowGrab(vid->window));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t sdl2_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static video_poke_interface_t sdl2_video_poke_interface = {
|
static video_poke_interface_t sdl2_video_poke_interface = {
|
||||||
NULL, /* get_flags */
|
sdl2_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -516,8 +516,17 @@ static void sdl_grab_mouse_toggle(void *data)
|
||||||
SDL_WM_GrabInput(mode == SDL_GRAB_ON ? SDL_GRAB_OFF : SDL_GRAB_ON);
|
SDL_WM_GrabInput(mode == SDL_GRAB_ON ? SDL_GRAB_OFF : SDL_GRAB_ON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t sdl_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t sdl_poke_interface = {
|
static const video_poke_interface_t sdl_poke_interface = {
|
||||||
NULL, /* get_flags */
|
sdl_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -389,8 +389,15 @@ static void vga_set_osd_msg(void *data,
|
||||||
font_driver_render_msg(video_info, font, msg, params);
|
font_driver_render_msg(video_info, font, msg, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t vga_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t vga_poke_interface = {
|
static const video_poke_interface_t vga_poke_interface = {
|
||||||
NULL, /* get_flags */
|
vga_gfx_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -788,8 +788,17 @@ static bool vita_get_current_sw_framebuffer(void *data,
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t vita_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static const video_poke_interface_t vita_poke_interface = {
|
static const video_poke_interface_t vita_poke_interface = {
|
||||||
NULL, /* get_flags */
|
vita_get_flags,
|
||||||
vita_load_texture,
|
vita_load_texture,
|
||||||
vita_unload_texture,
|
vita_unload_texture,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -2401,6 +2401,7 @@ static uint32_t vulkan_get_flags(void *data)
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
BIT32_SET(flags, GFX_CTX_FLAGS_BLACK_FRAME_INSERTION);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
BIT32_SET(flags, GFX_CTX_FLAGS_MENU_FRAME_FILTERING);
|
||||||
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
BIT32_SET(flags, GFX_CTX_FLAGS_SHADERS_SLANG);
|
||||||
|
BIT32_SET(flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED);
|
||||||
|
|
||||||
return flags;
|
return flags;
|
||||||
}
|
}
|
||||||
|
|
|
@ -934,8 +934,15 @@ static bool xv_read_viewport(void *data, uint8_t *buffer, bool is_idle)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static uint32_t xv_get_flags(void *data)
|
||||||
|
{
|
||||||
|
uint32_t flags = 0;
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
static video_poke_interface_t xv_video_poke_interface = {
|
static video_poke_interface_t xv_video_poke_interface = {
|
||||||
NULL, /* get_flags */
|
xv_get_flags,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
|
@ -125,7 +125,8 @@ enum display_flags
|
||||||
GFX_CTX_FLAGS_SHADERS_GLSL,
|
GFX_CTX_FLAGS_SHADERS_GLSL,
|
||||||
GFX_CTX_FLAGS_SHADERS_CG,
|
GFX_CTX_FLAGS_SHADERS_CG,
|
||||||
GFX_CTX_FLAGS_SHADERS_HLSL,
|
GFX_CTX_FLAGS_SHADERS_HLSL,
|
||||||
GFX_CTX_FLAGS_SHADERS_SLANG
|
GFX_CTX_FLAGS_SHADERS_SLANG,
|
||||||
|
GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED
|
||||||
};
|
};
|
||||||
|
|
||||||
enum shader_uniform_type
|
enum shader_uniform_type
|
||||||
|
|
|
@ -1801,6 +1801,9 @@ static int menu_displaylist_parse_load_content_settings(
|
||||||
|
|
||||||
if (settings->bools.quick_menu_show_take_screenshot)
|
if (settings->bools.quick_menu_show_take_screenshot)
|
||||||
{
|
{
|
||||||
|
gfx_ctx_flags_t flags;
|
||||||
|
|
||||||
|
if (video_driver_get_all_flags(&flags, GFX_CTX_FLAGS_SCREENSHOTS_SUPPORTED))
|
||||||
menu_entries_append_enum(info->list,
|
menu_entries_append_enum(info->list,
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT),
|
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_TAKE_SCREENSHOT),
|
||||||
msg_hash_to_str(MENU_ENUM_LABEL_TAKE_SCREENSHOT),
|
msg_hash_to_str(MENU_ENUM_LABEL_TAKE_SCREENSHOT),
|
||||||
|
|
Loading…
Reference in New Issue