Add option for change video windows offsets, from video output
This commit is contained in:
parent
2c355419bd
commit
c8a46e6e69
|
@ -280,6 +280,12 @@
|
||||||
#define DEFAULT_FULLSCREEN_Y 0
|
#define DEFAULT_FULLSCREEN_Y 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
/* Screen offsets to center content in CTRs */
|
||||||
|
#define DEFAULT_WINDOW_OFFSET_X 0
|
||||||
|
#define DEFAULT_WINDOW_OFFSET_Y 0
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Number of threads to use for video recording */
|
/* Number of threads to use for video recording */
|
||||||
#define DEFAULT_VIDEO_RECORD_THREADS 2
|
#define DEFAULT_VIDEO_RECORD_THREADS 2
|
||||||
|
|
||||||
|
|
|
@ -2327,6 +2327,10 @@ static struct config_int_setting *populate_settings_int(
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_D3D12
|
#ifdef HAVE_D3D12
|
||||||
SETTING_INT("d3d12_gpu_index", &settings->ints.d3d12_gpu_index, true, DEFAULT_D3D12_GPU_INDEX, false);
|
SETTING_INT("d3d12_gpu_index", &settings->ints.d3d12_gpu_index, true, DEFAULT_D3D12_GPU_INDEX, false);
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_WINDOW_OFFSET
|
||||||
|
SETTING_INT("video_window_offset_x", &settings->ints.video_window_offset_x, true, DEFAULT_WINDOW_OFFSET_X, false);
|
||||||
|
SETTING_INT("video_window_offset_y", &settings->ints.video_window_offset_y, true, DEFAULT_WINDOW_OFFSET_Y, false);
|
||||||
#endif
|
#endif
|
||||||
SETTING_INT("content_favorites_size", &settings->ints.content_favorites_size, true, default_content_favorites_size, false);
|
SETTING_INT("content_favorites_size", &settings->ints.content_favorites_size, true, default_content_favorites_size, false);
|
||||||
|
|
||||||
|
|
|
@ -140,6 +140,10 @@ typedef struct settings
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_D3D12
|
#ifdef HAVE_D3D12
|
||||||
int d3d12_gpu_index;
|
int d3d12_gpu_index;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_WINDOW_OFFSET
|
||||||
|
int video_window_offset_x;
|
||||||
|
int video_window_offset_y;
|
||||||
#endif
|
#endif
|
||||||
int content_favorites_size;
|
int content_favorites_size;
|
||||||
} ints;
|
} ints;
|
||||||
|
|
|
@ -3316,6 +3316,14 @@ MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX,
|
MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX,
|
||||||
"video_monitor_index"
|
"video_monitor_index"
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
"video_window_offset_x"
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
"video_window_offset_y"
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VIDEO_POST_FILTER_RECORD,
|
MENU_ENUM_LABEL_VIDEO_POST_FILTER_RECORD,
|
||||||
"video_post_filter_record"
|
"video_post_filter_record"
|
||||||
|
|
|
@ -1514,6 +1514,22 @@ MSG_HASH(
|
||||||
MENU_ENUM_SUBLABEL_VIDEO_GPU_INDEX,
|
MENU_ENUM_SUBLABEL_VIDEO_GPU_INDEX,
|
||||||
"Select which graphics card to use."
|
"Select which graphics card to use."
|
||||||
)
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
"Screen Horizontal Offset"
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
"Forces a certain offset horizontally to the video. The offset is applied globaly."
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
"Screen Vertical Offset"
|
||||||
|
)
|
||||||
|
MSG_HASH(
|
||||||
|
MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
"Forces a certain offset vertically to the video. The offset is applied globaly."
|
||||||
|
)
|
||||||
MSG_HASH(
|
MSG_HASH(
|
||||||
MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE,
|
MENU_ENUM_LABEL_VALUE_VIDEO_REFRESH_RATE,
|
||||||
"Vertical Refresh Rate"
|
"Vertical Refresh Rate"
|
||||||
|
|
|
@ -935,6 +935,11 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_overscan_correction_top, ME
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_overscan_correction_bottom, MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_overscan_correction_bottom, MENU_ENUM_SUBLABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_window_offset_x, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_X)
|
||||||
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_window_offset_y, MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_Y)
|
||||||
|
#endif
|
||||||
|
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_playlist_show_sublabels, MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_SUBLABELS)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_playlist_show_sublabels, MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_SUBLABELS)
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_playlist_show_entry_idx, MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_ENTRY_IDX)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_playlist_show_entry_idx, MENU_ENUM_SUBLABEL_PLAYLIST_SHOW_ENTRY_IDX)
|
||||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_rgui_border_filler_enable, MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_ENABLE)
|
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_menu_rgui_border_filler_enable, MENU_ENUM_SUBLABEL_MENU_RGUI_BORDER_FILLER_ENABLE)
|
||||||
|
@ -3763,6 +3768,14 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||||
case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX:
|
case MENU_ENUM_LABEL_VIDEO_MONITOR_INDEX:
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_monitor_index);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_monitor_index);
|
||||||
break;
|
break;
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
case MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_X:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_window_offset_x);
|
||||||
|
break;
|
||||||
|
case MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_Y:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_window_offset_y);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
case MENU_ENUM_LABEL_LOG_VERBOSITY:
|
case MENU_ENUM_LABEL_LOG_VERBOSITY:
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_log_verbosity);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_log_verbosity);
|
||||||
break;
|
break;
|
||||||
|
@ -4241,6 +4254,14 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||||
case MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM:
|
case MENU_ENUM_LABEL_VIDEO_OVERSCAN_CORRECTION_BOTTOM:
|
||||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_overscan_correction_bottom);
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_overscan_correction_bottom);
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
case MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_X:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_window_offset_x);
|
||||||
|
break;
|
||||||
|
case MENU_ENUM_SUBLABEL_VIDEO_WINDOW_OFFSET_Y:
|
||||||
|
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_window_offset_y);
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD:
|
case MENU_ENUM_LABEL_CHEAT_APPLY_AFTER_LOAD:
|
||||||
#ifdef HAVE_CHEATS
|
#ifdef HAVE_CHEATS
|
||||||
|
|
|
@ -7904,7 +7904,17 @@ unsigned menu_displaylist_build_list(
|
||||||
PARSE_ACTION, false) == 0)
|
PARSE_ACTION, false) == 0)
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
PARSE_ONLY_INT, false) == 0)
|
||||||
|
count++;
|
||||||
|
|
||||||
|
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
PARSE_ONLY_INT, false) == 0)
|
||||||
|
count++;
|
||||||
|
#endif
|
||||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||||
MENU_ENUM_LABEL_PAL60_ENABLE,
|
MENU_ENUM_LABEL_PAL60_ENABLE,
|
||||||
PARSE_ONLY_BOOL, false) == 0)
|
PARSE_ONLY_BOOL, false) == 0)
|
||||||
|
|
|
@ -11405,6 +11405,34 @@ static bool setting_append_list(
|
||||||
parent_group);
|
parent_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(HAVE_WINDOW_OFFSET)
|
||||||
|
CONFIG_INT(
|
||||||
|
list, list_info,
|
||||||
|
&settings->ints.video_window_offset_x,
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OFFSET_X,
|
||||||
|
DEFAULT_WINDOW_OFFSET_X,
|
||||||
|
&group_info,
|
||||||
|
&subgroup_info,
|
||||||
|
parent_group,
|
||||||
|
general_write_handler,
|
||||||
|
general_read_handler);
|
||||||
|
menu_settings_list_current_add_range(list, list_info, -24, 24, 1, true, true);
|
||||||
|
|
||||||
|
CONFIG_INT(
|
||||||
|
list, list_info,
|
||||||
|
&settings->ints.video_window_offset_y,
|
||||||
|
MENU_ENUM_LABEL_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
MENU_ENUM_LABEL_VALUE_VIDEO_WINDOW_OFFSET_Y,
|
||||||
|
DEFAULT_WINDOW_OFFSET_Y,
|
||||||
|
&group_info,
|
||||||
|
&subgroup_info,
|
||||||
|
parent_group,
|
||||||
|
general_write_handler,
|
||||||
|
general_read_handler);
|
||||||
|
menu_settings_list_current_add_range(list, list_info, -24, 24, 1, true, true);
|
||||||
|
#endif
|
||||||
|
|
||||||
CONFIG_UINT(
|
CONFIG_UINT(
|
||||||
list, list_info,
|
list, list_info,
|
||||||
&custom_vp->width,
|
&custom_vp->width,
|
||||||
|
|
|
@ -1088,6 +1088,8 @@ enum msg_hash_enums
|
||||||
MENU_LABEL(VIDEO_FULLSCREEN),
|
MENU_LABEL(VIDEO_FULLSCREEN),
|
||||||
MENU_LABEL(VIDEO_MONITOR_INDEX),
|
MENU_LABEL(VIDEO_MONITOR_INDEX),
|
||||||
MENU_LABEL(VIDEO_WINDOW_SCALE),
|
MENU_LABEL(VIDEO_WINDOW_SCALE),
|
||||||
|
MENU_LABEL(VIDEO_WINDOW_OFFSET_X),
|
||||||
|
MENU_LABEL(VIDEO_WINDOW_OFFSET_Y),
|
||||||
MENU_LABEL(VIDEO_REFRESH_RATE),
|
MENU_LABEL(VIDEO_REFRESH_RATE),
|
||||||
MENU_LABEL(VIDEO_REFRESH_RATE_AUTO),
|
MENU_LABEL(VIDEO_REFRESH_RATE_AUTO),
|
||||||
MENU_LABEL(VIDEO_REFRESH_RATE_POLLED),
|
MENU_LABEL(VIDEO_REFRESH_RATE_POLLED),
|
||||||
|
|
Loading…
Reference in New Issue