mirror of
https://github.com/libretro/RetroArch
synced 2025-02-20 06:40:18 +00:00
store buffer for window title, only update actual title when it changes
This commit is contained in:
parent
7fbd3fcfb6
commit
b44c8c9995
@ -716,8 +716,14 @@ bool x11_connect(void)
|
||||
|
||||
void x11_update_title(void *data, video_frame_info_t *video_info)
|
||||
{
|
||||
if (video_info->monitor_fps_enable)
|
||||
XStoreName(g_x11_dpy, g_x11_win, video_info->window_text);
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0] && video_info->monitor_fps_enable)
|
||||
XStoreName(g_x11_dpy, g_x11_win, title);
|
||||
}
|
||||
|
||||
bool x11_input_ctx_new(bool true_full)
|
||||
|
@ -534,7 +534,16 @@ static bool sdl2_gfx_frame(void *data, const void *frame, unsigned width,
|
||||
SDL_RenderPresent(vid->renderer);
|
||||
|
||||
if (video_info->monitor_fps_enable)
|
||||
SDL_SetWindowTitle(vid->window, video_info->window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
SDL_SetWindowTitle(vid->window, title);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -539,7 +539,16 @@ static void *xv_init(const video_info_t *video,
|
||||
video_driver_build_info(&video_info);
|
||||
|
||||
if (video_info.monitor_fps_enable)
|
||||
XStoreName(g_x11_dpy, g_x11_win, video_info.window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
XStoreName(g_x11_dpy, g_x11_win, title);
|
||||
}
|
||||
|
||||
x11_set_window_attr(g_x11_dpy, g_x11_win);
|
||||
|
||||
|
@ -425,7 +425,16 @@ static void cocoagl_gfx_ctx_update_title(void *data, video_frame_info_t *video_i
|
||||
view.data = (CocoaView*)nsview_get_ptr();
|
||||
|
||||
if (window && video_info->monitor_fps_enable)
|
||||
window->set_title(&view, video_info->window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
window->set_title(&view, title);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -102,7 +102,16 @@ static void gfx_ctx_d3d_update_title(void *data, video_frame_info_t *video_info)
|
||||
const ui_window_t *window = ui_companion_driver_get_window_ptr();
|
||||
|
||||
if (window && video_info->monitor_fps_enable)
|
||||
window->set_title(&main_window, video_info->window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
window->set_title(&main_window, title);
|
||||
}
|
||||
#endif
|
||||
|
||||
}
|
||||
|
@ -86,12 +86,21 @@ static bool gfx_ctx_gdi_set_resize(void *data,
|
||||
return false;
|
||||
}
|
||||
|
||||
static void gfx_ctx_gdi_update_title(void *data, video_frame_info_t *video_info)
|
||||
static void gfx_ctx_gdi_update_window_title(void *data, video_frame_info_t *video_info)
|
||||
{
|
||||
const ui_window_t *window = ui_companion_driver_get_window_ptr();
|
||||
|
||||
if (window && video_info->monitor_fps_enable)
|
||||
window->set_title(&main_window, video_info->window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
window->set_title(&main_window, title);
|
||||
}
|
||||
}
|
||||
|
||||
static void gfx_ctx_gdi_get_video_size(void *data,
|
||||
|
@ -268,14 +268,21 @@ static void sdl_ctx_get_video_size(void *data,
|
||||
|
||||
static void sdl_ctx_update_title(void *data, video_frame_info_t *video_info)
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (video_info->monitor_fps_enable)
|
||||
{
|
||||
#ifdef HAVE_SDL2
|
||||
gfx_ctx_sdl_data_t *sdl = (gfx_ctx_sdl_data_t*)data;
|
||||
if (sdl)
|
||||
SDL_SetWindowTitle(sdl->g_win, video_info->window_text);
|
||||
|
||||
if (sdl && title[0])
|
||||
SDL_SetWindowTitle(sdl->g_win, title);
|
||||
#else
|
||||
SDL_WM_SetCaption(video_info->window_text, NULL);
|
||||
SDL_WM_SetCaption(title, NULL);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -719,9 +719,14 @@ static bool gfx_ctx_wl_set_resize(void *data, unsigned width, unsigned height)
|
||||
static void gfx_ctx_wl_update_title(void *data, video_frame_info_t *video_info)
|
||||
{
|
||||
gfx_ctx_wayland_data_t *wl = (gfx_ctx_wayland_data_t*)data;
|
||||
char title[128];
|
||||
|
||||
if (wl && video_info->monitor_fps_enable)
|
||||
wl_shell_surface_set_title(wl->shell_surf, video_info->window_text);
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (wl && title[0] && video_info->monitor_fps_enable)
|
||||
wl_shell_surface_set_title(wl->shell_surf, title);
|
||||
}
|
||||
|
||||
|
||||
|
@ -390,7 +390,16 @@ static void gfx_ctx_wgl_update_title(void *data, video_frame_info_t *video_info)
|
||||
const ui_window_t *window = ui_companion_driver_get_window_ptr();
|
||||
|
||||
if (window && video_info->monitor_fps_enable)
|
||||
window->set_title(&main_window, video_info->window_text);
|
||||
{
|
||||
char title[128];
|
||||
|
||||
title[0] = '\0';
|
||||
|
||||
video_driver_get_window_title(title, sizeof(title));
|
||||
|
||||
if (title[0])
|
||||
window->set_title(&main_window, title);
|
||||
}
|
||||
}
|
||||
|
||||
static void gfx_ctx_wgl_get_video_size(void *data,
|
||||
|
@ -137,6 +137,8 @@ static unsigned video_driver_height = 0;
|
||||
|
||||
static enum rarch_display_type video_driver_display_type = RARCH_DISPLAY_NONE;
|
||||
static char video_driver_title_buf[64] = {0};
|
||||
static char video_driver_window_title[128] = {0};
|
||||
static bool video_driver_window_title_update = true;
|
||||
|
||||
static retro_time_t video_driver_frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
|
||||
static uint64_t video_driver_frame_time_count = 0;
|
||||
@ -2039,34 +2041,36 @@ static bool video_monitor_get_fps(video_frame_info_t *video_info)
|
||||
last_fps = TIME_TO_FPS(curr_time, new_time, FPS_UPDATE_INTERVAL);
|
||||
curr_time = new_time;
|
||||
|
||||
fill_pathname_noext(video_info->window_text,
|
||||
fill_pathname_noext(video_driver_window_title,
|
||||
video_driver_title_buf,
|
||||
" || ",
|
||||
sizeof(video_info->window_text));
|
||||
sizeof(video_driver_window_title));
|
||||
|
||||
if (video_info->fps_show)
|
||||
{
|
||||
snprintf(video_info->fps_text,
|
||||
sizeof(video_info->fps_text),
|
||||
" FPS: %6.1f || ", last_fps);
|
||||
strlcat(video_info->window_text,
|
||||
strlcat(video_driver_window_title,
|
||||
video_info->fps_text,
|
||||
sizeof(video_info->window_text));
|
||||
sizeof(video_driver_window_title));
|
||||
}
|
||||
|
||||
strlcat(video_info->window_text,
|
||||
strlcat(video_driver_window_title,
|
||||
"Frames: ",
|
||||
sizeof(video_info->window_text));
|
||||
sizeof(video_driver_window_title));
|
||||
|
||||
snprintf(frames_text,
|
||||
sizeof(frames_text),
|
||||
STRING_REP_UINT64,
|
||||
(unsigned long long)video_info->frame_count);
|
||||
|
||||
strlcat(video_info->window_text,
|
||||
strlcat(video_driver_window_title,
|
||||
frames_text,
|
||||
sizeof(video_info->window_text));
|
||||
sizeof(video_driver_window_title));
|
||||
ret = true;
|
||||
|
||||
video_driver_window_title_update = true;
|
||||
}
|
||||
|
||||
if (video_info->fps_show)
|
||||
@ -2082,14 +2086,16 @@ static bool video_monitor_get_fps(video_frame_info_t *video_info)
|
||||
}
|
||||
|
||||
curr_time = fps_time = new_time;
|
||||
strlcpy(video_info->window_text,
|
||||
strlcpy(video_driver_window_title,
|
||||
video_driver_title_buf,
|
||||
sizeof(video_info->window_text));
|
||||
sizeof(video_driver_window_title));
|
||||
|
||||
strlcpy(video_info->fps_text,
|
||||
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NOT_AVAILABLE),
|
||||
sizeof(video_info->fps_text));
|
||||
|
||||
video_driver_window_title_update = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -2264,11 +2270,11 @@ void video_driver_build_info(video_frame_info_t *video_info)
|
||||
video_info->font_enable = settings->video.font_enable;
|
||||
|
||||
video_info->frame_count = 0;
|
||||
video_info->window_text[0] = '\0';
|
||||
video_info->fps_text[0] = '\0';
|
||||
|
||||
video_info->width = video_driver_width;
|
||||
video_info->height = video_driver_height;
|
||||
|
||||
video_driver_threaded_unlock();
|
||||
}
|
||||
|
||||
@ -2325,3 +2331,12 @@ bool video_driver_translate_coord_viewport(
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void video_driver_get_window_title(char *buf, unsigned len)
|
||||
{
|
||||
if (buf && video_driver_window_title_update)
|
||||
{
|
||||
strlcpy(buf, video_driver_window_title, len);
|
||||
video_driver_window_title_update = false;
|
||||
}
|
||||
}
|
||||
|
@ -102,7 +102,6 @@ typedef struct video_frame_info
|
||||
unsigned monitor_index;
|
||||
bool font_enable;
|
||||
bool monitor_fps_enable;
|
||||
char window_text[128];
|
||||
char fps_text[128];
|
||||
uint64_t frame_count;
|
||||
|
||||
@ -531,6 +530,8 @@ void video_driver_build_info(video_frame_info_t *video_info);
|
||||
|
||||
void video_driver_reinit(void);
|
||||
|
||||
void video_driver_get_window_title(char *buf, unsigned len);
|
||||
|
||||
extern video_driver_t video_gl;
|
||||
extern video_driver_t video_vulkan;
|
||||
extern video_driver_t video_psp1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user