mirror of
https://github.com/libretro/RetroArch
synced 2025-02-15 09:40:11 +00:00
Add config values and menu items for viewport bias x/y
This commit is contained in:
parent
e7c6d1df84
commit
05faba73e3
@ -69,6 +69,14 @@
|
||||
#define DEFAULT_ASPECT_RATIO 1.3333f
|
||||
#endif
|
||||
|
||||
#define DEFAULT_VIEWPORT_BIAS_X 0.5
|
||||
#define DEFAULT_VIEWPORT_BIAS_Y 0.5
|
||||
|
||||
#if defined(RARCH_MOBILE)
|
||||
#define DEFAULT_VIEWPORT_BIAS_PORTRAIT_X 0.5
|
||||
#define DEFAULT_VIEWPORT_BIAS_PORTRAIT_Y 0.0
|
||||
#endif
|
||||
|
||||
#if defined(GEKKO)
|
||||
#define DEFAULT_MOUSE_SCALE 1
|
||||
#endif
|
||||
|
@ -2255,6 +2255,12 @@ static struct config_float_setting *populate_settings_float(
|
||||
#endif
|
||||
|
||||
SETTING_FLOAT("video_aspect_ratio", &settings->floats.video_aspect_ratio, true, DEFAULT_ASPECT_RATIO, false);
|
||||
SETTING_FLOAT("video_viewport_bias_x", &settings->floats.video_viewport_bias_x, true, DEFAULT_VIEWPORT_BIAS_X, false);
|
||||
SETTING_FLOAT("video_viewport_bias_y", &settings->floats.video_viewport_bias_y, true, DEFAULT_VIEWPORT_BIAS_Y, false);
|
||||
#if defined(RARCH_MOBILE)
|
||||
SETTING_FLOAT("video_viewport_bias_portrait_x", &settings->floats.video_viewport_bias_portrait_x, true, DEFAULT_VIEWPORT_BIAS_PORTRAIT_X, false);
|
||||
SETTING_FLOAT("video_viewport_bias_portrait_y", &settings->floats.video_viewport_bias_portrait_y, true, DEFAULT_VIEWPORT_BIAS_PORTRAIT_Y, false);
|
||||
#endif
|
||||
SETTING_FLOAT("video_refresh_rate", &settings->floats.video_refresh_rate, true, DEFAULT_REFRESH_RATE, false);
|
||||
SETTING_FLOAT("video_autoswitch_pal_threshold", &settings->floats.video_autoswitch_pal_threshold, true, DEFAULT_AUTOSWITCH_PAL_THRESHOLD, false);
|
||||
SETTING_FLOAT("crt_video_refresh_rate", &settings->floats.crt_video_refresh_rate, true, DEFAULT_CRT_REFRESH_RATE, false);
|
||||
|
@ -375,6 +375,12 @@ typedef struct settings
|
||||
{
|
||||
float placeholder;
|
||||
float video_aspect_ratio;
|
||||
float video_viewport_bias_x;
|
||||
float video_viewport_bias_y;
|
||||
#if defined(RARCH_MOBILE)
|
||||
float video_viewport_bias_portrait_x;
|
||||
float video_viewport_bias_portrait_y;
|
||||
#endif
|
||||
float video_refresh_rate;
|
||||
float video_autoswitch_pal_threshold;
|
||||
float crt_video_refresh_rate;
|
||||
|
@ -4126,6 +4126,24 @@ MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX,
|
||||
"aspect_ratio_index"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X,
|
||||
"video_viewport_bias_x"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_Y,
|
||||
"video_viewport_bias_y"
|
||||
)
|
||||
#if defined(RARCH_MOBILE)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
"video_viewport_bias_portrait_x"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
"video_viewport_bias_portrait_y"
|
||||
)
|
||||
#endif
|
||||
#if defined(DINGUX)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_DINGUX_IPU_KEEP_ASPECT,
|
||||
|
@ -2599,6 +2599,56 @@ MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y,
|
||||
"Custom viewport offset used for defining the Y-axis position of the viewport.\nThese are ignored if 'Integer Scale' is enabled."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X,
|
||||
"Viewport Anchor Bias X"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_X,
|
||||
"Viewport Anchor Bias X"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_Y,
|
||||
"Viewport Anchor Bias Y"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_Y,
|
||||
"Viewport Anchor Bias Y"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_X,
|
||||
"Custom viewport bias used to offset the viewport horizontally (if wider than content height). 0.0 means far left and 1.0 means far right."
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_Y,
|
||||
"Custom viewport bias used to offset the viewport vertically (if taller than content height). 0.0 means top and 1.0 means bottom."
|
||||
)
|
||||
#if defined(RARCH_MOBILE)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
"Viewport Anchor Bias X (Portrait Orientation)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
"Viewport Anchor Bias X (Portrait Orientation)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
"Viewport Anchor Bias Y (Portrait Orientation)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
"Viewport Anchor Bias Y (Portrait Orientation)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
"Custom viewport bias used to offset the viewport horizontally (if wider than content height). 0.0 means far left and 1.0 means far right. (Portrait Orientation)"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
"Custom viewport bias used to offset the viewport vertically (if taller than content height). 0.0 means top and 1.0 means bottom. (Portrait Orientation)"
|
||||
)
|
||||
#endif
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_WIDTH,
|
||||
"Custom Aspect Ratio (Width)"
|
||||
|
@ -1251,6 +1251,12 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_custom_height,
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_custom_width, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_WIDTH)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_custom_x, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_custom_y, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_bias_x, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_X)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_bias_y, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_Y)
|
||||
#if defined(RARCH_MOBILE)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_bias_portrait_x, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_video_viewport_bias_portrait_y, MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y)
|
||||
#endif
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_netplay_use_mitm_server, MENU_ENUM_SUBLABEL_NETPLAY_USE_MITM_SERVER)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_netplay_mitm_server, MENU_ENUM_SUBLABEL_NETPLAY_MITM_SERVER)
|
||||
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_netplay_custom_mitm_server, MENU_ENUM_SUBLABEL_NETPLAY_CUSTOM_MITM_SERVER)
|
||||
@ -2570,6 +2576,20 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
|
||||
case MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_aspect_ratio);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_viewport_bias_x);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_Y:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_viewport_bias_y);
|
||||
break;
|
||||
#if defined(RARCH_MOBILE)
|
||||
case MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_viewport_bias_portrait_x);
|
||||
break;
|
||||
case MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_viewport_bias_portrait_y);
|
||||
break;
|
||||
#endif
|
||||
case MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX:
|
||||
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_video_aspect_ratio_index);
|
||||
break;
|
||||
|
@ -9801,6 +9801,24 @@ unsigned menu_displaylist_build_list(
|
||||
MENU_ENUM_LABEL_VIDEO_SCALE_INTEGER_OVERSCALE,
|
||||
PARSE_ONLY_BOOL, false) == 0)
|
||||
count++;
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X,
|
||||
PARSE_ONLY_FLOAT, false) == 0)
|
||||
count++;
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_Y,
|
||||
PARSE_ONLY_FLOAT, false) == 0)
|
||||
count++;
|
||||
#if defined(RARCH_MOBILE)
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
PARSE_ONLY_FLOAT, false) == 0)
|
||||
count++;
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
PARSE_ONLY_FLOAT, false) == 0)
|
||||
count++;
|
||||
#endif
|
||||
if (MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(list,
|
||||
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX,
|
||||
PARSE_ONLY_UINT, false) == 0)
|
||||
|
@ -12929,6 +12929,84 @@ static bool setting_append_list(
|
||||
END_SUB_GROUP(list, list_info, parent_group);
|
||||
START_SUB_GROUP(list, list_info, "Aspect", &group_info, &subgroup_info, parent_group);
|
||||
|
||||
CONFIG_FLOAT(
|
||||
list, list_info,
|
||||
&settings->floats.video_viewport_bias_x,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_X,
|
||||
DEFAULT_VIEWPORT_BIAS_X,
|
||||
"%.2f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.05, true, true);
|
||||
(*list)[list_info->index - 1].offset_by = 0;
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
|
||||
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info,
|
||||
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
|
||||
CONFIG_FLOAT(
|
||||
list, list_info,
|
||||
&settings->floats.video_viewport_bias_y,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_Y,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_Y,
|
||||
DEFAULT_VIEWPORT_BIAS_Y,
|
||||
"%.2f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.05, true, true);
|
||||
(*list)[list_info->index - 1].offset_by = 0;
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
|
||||
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info,
|
||||
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
|
||||
#if defined(RARCH_MOBILE)
|
||||
CONFIG_FLOAT(
|
||||
list, list_info,
|
||||
&settings->floats.video_viewport_bias_portrait_x,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
DEFAULT_VIEWPORT_BIAS_PORTRAIT_X,
|
||||
"%.2f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.05, true, true);
|
||||
(*list)[list_info->index - 1].offset_by = 0;
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
|
||||
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info,
|
||||
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
|
||||
CONFIG_FLOAT(
|
||||
list, list_info,
|
||||
&settings->floats.video_viewport_bias_portrait_y,
|
||||
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
DEFAULT_VIEWPORT_BIAS_PORTRAIT_Y,
|
||||
"%.2f",
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler);
|
||||
menu_settings_list_current_add_range(list, list_info, 0.0, 1.0, 0.05, true, true);
|
||||
(*list)[list_info->index - 1].offset_by = 0;
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_ALLOW_INPUT);
|
||||
MENU_SETTINGS_LIST_CURRENT_ADD_CMD(list, list_info,
|
||||
CMD_EVENT_VIDEO_APPLY_STATE_CHANGES);
|
||||
SETTINGS_DATA_LIST_CURRENT_ADD_FLAGS(list, list_info, SD_FLAG_LAKKA_ADVANCED);
|
||||
#endif
|
||||
|
||||
CONFIG_UINT(
|
||||
list, list_info,
|
||||
&settings->uints.video_aspect_ratio_idx,
|
||||
|
@ -3385,6 +3385,12 @@ enum msg_hash_enums
|
||||
MENU_LABEL(VIDEO_OVERSCAN_CORRECTION_TOP),
|
||||
MENU_LABEL(VIDEO_OVERSCAN_CORRECTION_BOTTOM),
|
||||
MENU_LABEL(VIDEO_ASPECT_RATIO),
|
||||
MENU_LABEL(VIDEO_VIEWPORT_BIAS_X),
|
||||
MENU_LABEL(VIDEO_VIEWPORT_BIAS_Y),
|
||||
#if defined(RARCH_MOBILE)
|
||||
MENU_LABEL(VIDEO_VIEWPORT_BIAS_PORTRAIT_X),
|
||||
MENU_LABEL(VIDEO_VIEWPORT_BIAS_PORTRAIT_Y),
|
||||
#endif
|
||||
MENU_LABEL(VIDEO_FORCE_ASPECT),
|
||||
MENU_LABEL(VIDEO_ASPECT_RATIO_AUTO),
|
||||
MENU_LABEL(VIDEO_ASPECT_RATIO_INDEX),
|
||||
|
Loading…
x
Reference in New Issue
Block a user