Skip to content

Commit 815d5e1

Browse files
libretroadminLibretroAdmin
authored andcommitted
settings: migrate the aspect ratio group to a single-source def file
The aspect index, the custom aspect value and the array-target position rows in one table, closing the mixed-kind case for the array-target grammar. Performed by tools/settings_migrate_group.py with the standard battery.
1 parent 057ac76 commit 815d5e1

8 files changed

Lines changed: 526 additions & 84 deletions

File tree

configuration.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1934,6 +1934,7 @@ static struct config_bool_setting *populate_settings_bool(
19341934
#include "settings/settings_def_video_fullscreen.h"
19351935
#define SETTINGS_DEF_CONFIG_PASS
19361936
#include "settings/settings_def_video_sync.h"
1937+
#include "settings/settings_def_aspect_ratio.h"
19371938
#include "settings/settings_def_viewport_size.h"
19381939
#include "settings/settings_def_quit_visibility.h"
19391940
#include "settings/settings_def_widget_scale_fullscreen.h"
@@ -2634,6 +2635,7 @@ static struct config_float_setting *populate_settings_float(
26342635
#include "settings/settings_def_video_fullscreen.h"
26352636
#define SETTINGS_DEF_CONFIG_PASS
26362637
#include "settings/settings_def_video_sync.h"
2638+
#include "settings/settings_def_aspect_ratio.h"
26372639
#include "settings/settings_def_viewport_size.h"
26382640
#include "settings/settings_def_quit_visibility.h"
26392641
#include "settings/settings_def_widget_scale_fullscreen.h"
@@ -3177,7 +3179,6 @@ static struct config_float_setting *populate_settings_float(
31773179

31783180
SETTING_FLOAT("audio_rate_control_delta", &settings->floats.audio_rate_control_delta, true, DEFAULT_RATE_CONTROL_DELTA, false);
31793181

3180-
SETTING_FLOAT("video_aspect_ratio", &settings->floats.video_aspect_ratio, true, DEFAULT_ASPECT_RATIO, false);
31813182
SETTING_FLOAT("crt_video_refresh_rate", &settings->floats.crt_video_refresh_rate, true, DEFAULT_CRT_REFRESH_RATE, false);
31823183

31833184
#ifdef HAVE_OVERLAY
@@ -3228,7 +3229,6 @@ static struct config_uint_setting *populate_settings_uint(
32283229
SETTING_UINT("custom_viewport_height", &settings->video_vp_custom.height, false, 0 /* TODO */, false);
32293230
SETTING_UINT("custom_viewport_x", (unsigned*)&settings->video_vp_custom.x, false, 0 /* TODO */, false);
32303231
SETTING_UINT("custom_viewport_y", (unsigned*)&settings->video_vp_custom.y, false, 0 /* TODO */, false);
3231-
SETTING_UINT("aspect_ratio_index", &settings->uints.video_aspect_ratio_idx, true, DEFAULT_ASPECT_RATIO_IDX, false);
32323232
SETTING_UINT("video_windowed_position_x", &settings->uints.window_position_x, true, 0, false);
32333233
SETTING_UINT("video_windowed_position_y", &settings->uints.window_position_y, true, 0, false);
32343234
SETTING_UINT("video_windowed_position_width", &settings->uints.window_position_width, true, DEFAULT_WINDOW_WIDTH, false);
@@ -3291,6 +3291,7 @@ static struct config_uint_setting *populate_settings_uint(
32913291
#include "settings/settings_def_video_fullscreen.h"
32923292
#define SETTINGS_DEF_CONFIG_PASS
32933293
#include "settings/settings_def_video_sync.h"
3294+
#include "settings/settings_def_aspect_ratio.h"
32943295
#include "settings/settings_def_viewport_size.h"
32953296
#include "settings/settings_def_quit_visibility.h"
32963297
#include "settings/settings_def_widget_scale_fullscreen.h"
@@ -3982,6 +3983,7 @@ static struct config_int_setting *populate_settings_int(
39823983
#include "settings/settings_def_video_fullscreen.h"
39833984
#define SETTINGS_DEF_CONFIG_PASS
39843985
#include "settings/settings_def_video_sync.h"
3986+
#include "settings/settings_def_aspect_ratio.h"
39853987
#include "settings/settings_def_viewport_size.h"
39863988
#include "settings/settings_def_quit_visibility.h"
39873989
#include "settings/settings_def_widget_scale_fullscreen.h"
@@ -4561,6 +4563,7 @@ static struct config_int_setting *populate_settings_int(
45614563
#include "settings/settings_def_video_fullscreen.h"
45624564
#define SETTINGS_DEF_CONFIG_PASS
45634565
#include "settings/settings_def_video_sync.h"
4566+
#include "settings/settings_def_aspect_ratio.h"
45644567
#include "settings/settings_def_viewport_size.h"
45654568
#include "settings/settings_def_quit_visibility.h"
45664569
#include "settings/settings_def_widget_scale_fullscreen.h"

intl/msg_hash_lbl.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2563,14 +2563,6 @@ MSG_HASH(
25632563
MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE,
25642564
MENU_ENUM_LABEL_VIDEO_ALLOW_ROTATE_STR
25652565
)
2566-
MSG_HASH(
2567-
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO,
2568-
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_STR
2569-
)
2570-
MSG_HASH(
2571-
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX,
2572-
MENU_ENUM_LABEL_VIDEO_ASPECT_RATIO_INDEX_STR
2573-
)
25742566
MSG_HASH(
25752567
MENU_ENUM_LABEL_VIDEO_DRIVER,
25762568
MENU_ENUM_LABEL_VIDEO_DRIVER_STR
@@ -2851,14 +2843,6 @@ MSG_HASH(
28512843
MENU_ENUM_LABEL_VIDEO_THREADED,
28522844
MENU_ENUM_LABEL_VIDEO_THREADED_STR
28532845
)
2854-
MSG_HASH(
2855-
MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_X,
2856-
MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_X_STR
2857-
)
2858-
MSG_HASH(
2859-
MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_Y,
2860-
MENU_ENUM_LABEL_VIDEO_VIEWPORT_CUSTOM_Y_STR
2861-
)
28622846
MSG_HASH(
28632847
MENU_ENUM_LABEL_VIDEO_FORCE_RESOLUTION,
28642848
MENU_ENUM_LABEL_VIDEO_FORCE_RESOLUTION_STR

intl/msg_hash_us.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -571,6 +571,7 @@ static const char *const msg_hash_us_lbl_strs[] = {
571571
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) n,
572572
#include "../settings/settings_def_video_fullscreen.h"
573573
#include "../settings/settings_def_video_sync.h"
574+
#include "../settings/settings_def_aspect_ratio.h"
574575
#include "../settings/settings_def_viewport_size.h"
575576
#include "../settings/settings_def_quit_visibility.h"
576577
#include "../settings/settings_def_widget_scale_fullscreen.h"
@@ -937,6 +938,7 @@ static const uint32_t msg_hash_us_lbl_ids[] = {
937938
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) (uint32_t)MENU_ENUM_LABEL_##T,
938939
#include "../settings/settings_def_video_fullscreen.h"
939940
#include "../settings/settings_def_video_sync.h"
941+
#include "../settings/settings_def_aspect_ratio.h"
940942
#include "../settings/settings_def_viewport_size.h"
941943
#include "../settings/settings_def_quit_visibility.h"
942944
#include "../settings/settings_def_widget_scale_fullscreen.h"

intl/msg_hash_us.h

Lines changed: 185 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -6313,22 +6313,191 @@ MSG_HASH(
63136313
MENU_ENUM_LABEL_VALUE_VIDEO_SCALE_INTEGER_SCALING_SMART,
63146314
"Smart"
63156315
)
6316-
MSG_HASH(
6317-
MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_INDEX,
6318-
"Aspect Ratio"
6319-
)
6320-
MSG_HASH(
6321-
MENU_ENUM_SUBLABEL_VIDEO_ASPECT_RATIO_INDEX,
6322-
"Set display aspect ratio."
6323-
)
6324-
MSG_HASH(
6325-
MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO,
6326-
"Config Aspect Ratio"
6327-
)
6328-
MSG_HASH(
6329-
MENU_ENUM_SUBLABEL_VIDEO_ASPECT_RATIO,
6330-
"Floating point value for video aspect ratio (width / height)."
6331-
)
6316+
/* GENERATED REGION: aspect ratio group (see settings_def_aspect_ratio.h). */
6317+
#define SETTINGS_DEF_STRINGS_PASS
6318+
#define S_BOOL(f, T, n, d, sd, df, c, us, sub) \
6319+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6320+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6321+
#define S_BOOL_NS(f, T, n, d, sd, df, c, us) \
6322+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6323+
#define S_UINT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
6324+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6325+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6326+
#define S_UINT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
6327+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6328+
#define S_INT(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
6329+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6330+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6331+
#define S_INT_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
6332+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6333+
#define S_FLOAT(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us, sub) \
6334+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6335+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6336+
#define S_FLOAT_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, us) \
6337+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6338+
#define S_STRING(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6339+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6340+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6341+
#define S_STRING_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
6342+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6343+
#define S_DIR(f, T, n, d, el, sd, c, sta, us, sub) \
6344+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6345+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6346+
#define S_DIR_NS(f, T, n, d, el, sd, c, sta, us) \
6347+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6348+
#define S_STRING_P(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6349+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6350+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6351+
#define S_STRING_P_NS(f, T, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us) \
6352+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6353+
#define S_PATH(f, T, n, d, sd, c, vals, rp, ui, us, sub) \
6354+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6355+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6356+
#define S_PATH_NS(f, T, n, d, sd, c, vals, rp, ui, us) \
6357+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6358+
#define S_PATH_DS(f, T, n, df2, sd, c, vals, rp, ui, us, sub) \
6359+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6360+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6361+
#define S_PATH_DS_NS(f, T, n, df2, sd, c, vals, rp, ui, us) \
6362+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6363+
#define S_ACTION(T, n, us, sub) \
6364+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6365+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6366+
#define S_ACTION_NS(T, n, us) \
6367+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6368+
#define S_BOOL_EX(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6369+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6370+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6371+
#define S_BOOL_EX_NS(f, T, n, d, sd, df, c, ok, rp, sta, sel, lf, rt, ui, us) \
6372+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6373+
#define S_UINT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6374+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6375+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6376+
#define S_UINT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
6377+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6378+
#define S_INT_EX(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6379+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6380+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6381+
#define S_INT_EX_NS(f, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
6382+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6383+
#define S_FLOAT_EX(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6384+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6385+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6386+
#define S_FLOAT_EX_NS(f, T, n, d, rnd, sd, df, c, mn, mx, st, ok, rp, sta, sel, lf, rt, ui, us) \
6387+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6388+
#define S_ACTION_EX(T, n, sd, ok, rp, c, us, sub) \
6389+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6390+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6391+
#define S_ACTION_EX_NS(T, n, sd, ok, rp, c, us) \
6392+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6393+
#define S_BOOL_LV(f, T, TV, n, d, sd, df, c, us, sub) \
6394+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6395+
#define S_BOOL_LV_NS(f, T, TV, n, d, sd, df, c, us)
6396+
#define S_FLOAT_LV(f, T, TV, n, d, rnd, sd, df, c, us, sub) \
6397+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6398+
#define S_FLOAT_LV_NS(f, T, TV, n, d, rnd, sd, df, c, us)
6399+
#define S_STRING_LV(f, T, TV, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6400+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6401+
#define S_STRING_LV_NS(f, T, TV, n, d, sd, c, ok, rp, sta, sel, lf, rt, ui, us)
6402+
#define S_ACTION_LV(T, TV, n, sd, ok, rp, c, us, sub) \
6403+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6404+
#define S_ACTION_LV_NS(T, TV, n, sd, ok, rp, c, us)
6405+
#define S_INT_AT(offs, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us, sub) \
6406+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6407+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6408+
#define S_INT_AT_NS(offs, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, us) \
6409+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6410+
#define S_UINT_AT_EX(offs, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us, sub) \
6411+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us) \
6412+
MSG_HASH(MENU_ENUM_SUBLABEL_##T, sub)
6413+
#define S_UINT_AT_EX_NS(offs, T, n, d, sd, df, c, mn, mx, st, ob, ok, rp, sta, sel, lf, rt, ui, us) \
6414+
MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
6415+
#include "../settings/settings_def_aspect_ratio.h"
6416+
#undef S_BOOL
6417+
#undef S_BOOL_NS
6418+
#undef S_BOOL_H
6419+
#undef S_BOOL_NS_H
6420+
#undef S_UINT
6421+
#undef S_UINT_NS
6422+
#undef S_UINT_H
6423+
#undef S_UINT_NS_H
6424+
#undef S_INT
6425+
#undef S_INT_NS
6426+
#undef S_INT_H
6427+
#undef S_INT_NS_H
6428+
#undef S_FLOAT
6429+
#undef S_FLOAT_NS
6430+
#undef S_FLOAT_H
6431+
#undef S_FLOAT_NS_H
6432+
#undef S_STRING
6433+
#undef S_STRING_NS
6434+
#undef S_STRING_H
6435+
#undef S_STRING_NS_H
6436+
#undef S_DIR
6437+
#undef S_DIR_NS
6438+
#undef S_DIR_H
6439+
#undef S_DIR_NS_H
6440+
#undef S_STRING_P
6441+
#undef S_STRING_P_NS
6442+
#undef S_STRING_P_H
6443+
#undef S_STRING_P_NS_H
6444+
#undef S_PATH
6445+
#undef S_PATH_NS
6446+
#undef S_PATH_H
6447+
#undef S_PATH_NS_H
6448+
#undef S_PATH_DS
6449+
#undef S_PATH_DS_NS
6450+
#undef S_PATH_DS_H
6451+
#undef S_PATH_DS_NS_H
6452+
#undef S_ACTION
6453+
#undef S_ACTION_NS
6454+
#undef S_ACTION_H
6455+
#undef S_ACTION_NS_H
6456+
#undef S_BOOL_EX
6457+
#undef S_BOOL_EX_NS
6458+
#undef S_BOOL_EX_H
6459+
#undef S_BOOL_EX_NS_H
6460+
#undef S_UINT_EX
6461+
#undef S_UINT_EX_NS
6462+
#undef S_UINT_EX_H
6463+
#undef S_UINT_EX_NS_H
6464+
#undef S_INT_EX
6465+
#undef S_INT_EX_NS
6466+
#undef S_INT_EX_H
6467+
#undef S_INT_EX_NS_H
6468+
#undef S_FLOAT_EX
6469+
#undef S_FLOAT_EX_NS
6470+
#undef S_FLOAT_EX_H
6471+
#undef S_FLOAT_EX_NS_H
6472+
#undef S_ACTION_EX
6473+
#undef S_ACTION_EX_NS
6474+
#undef S_ACTION_EX_H
6475+
#undef S_ACTION_EX_NS_H
6476+
#undef S_BOOL_LV
6477+
#undef S_BOOL_LV_NS
6478+
#undef S_BOOL_LV_H
6479+
#undef S_BOOL_LV_NS_H
6480+
#undef S_FLOAT_LV
6481+
#undef S_FLOAT_LV_NS
6482+
#undef S_FLOAT_LV_H
6483+
#undef S_FLOAT_LV_NS_H
6484+
#undef S_STRING_LV
6485+
#undef S_STRING_LV_NS
6486+
#undef S_STRING_LV_H
6487+
#undef S_STRING_LV_NS_H
6488+
#undef S_ACTION_LV
6489+
#undef S_ACTION_LV_NS
6490+
#undef S_ACTION_LV_H
6491+
#undef S_ACTION_LV_NS_H
6492+
#undef S_INT_AT
6493+
#undef S_INT_AT_NS
6494+
#undef S_INT_AT_H
6495+
#undef S_INT_AT_NS_H
6496+
#undef S_UINT_AT_EX
6497+
#undef S_UINT_AT_EX_NS
6498+
#undef S_UINT_AT_EX_H
6499+
#undef S_UINT_AT_EX_NS_H
6500+
#undef SETTINGS_DEF_STRINGS_PASS
63326501
MSG_HASH(
63336502
MENU_ENUM_LABEL_VALUE_VIDEO_ASPECT_RATIO_CONFIG,
63346503
"Config"
@@ -6383,22 +6552,6 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_##T, us)
63836552
#undef S_FLOAT_NS
63846553
#undef SETTINGS_DEF_STRINGS_PASS
63856554
#endif
6386-
MSG_HASH(
6387-
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_X,
6388-
"Custom Aspect Ratio (X Position)"
6389-
)
6390-
MSG_HASH(
6391-
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_X,
6392-
"Custom viewport offset used for defining the X-axis position of the viewport."
6393-
)
6394-
MSG_HASH(
6395-
MENU_ENUM_LABEL_VALUE_VIDEO_VIEWPORT_CUSTOM_Y,
6396-
"Custom Aspect Ratio (Y Position)"
6397-
)
6398-
MSG_HASH(
6399-
MENU_ENUM_SUBLABEL_VIDEO_VIEWPORT_CUSTOM_Y,
6400-
"Custom viewport offset used for defining the Y-axis position of the viewport."
6401-
)
64026555
MSG_HASH(
64036556
MENU_ENUM_LABEL_VIDEO_VIEWPORT_BIAS_X,
64046557
"Viewport Anchor Bias X"

0 commit comments

Comments
 (0)