Skip to content

Commit d40e7c7

Browse files
authored
Remove deprecated config keys
1 parent a4d1847 commit d40e7c7

1 file changed

Lines changed: 80 additions & 22 deletions

File tree

src/config.cpp

Lines changed: 80 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -954,8 +954,16 @@ struct {
954954
sk::ParameterInt* tearing_mode = nullptr;
955955
sk::ParameterInt* latency_mode = nullptr;
956956
sk::ParameterInt* render_queue = nullptr;
957-
sk::ParameterInt* buffer_count_old = nullptr;
958-
sk::ParameterInt* buffer_count = nullptr;
957+
struct {
958+
sk::ParameterInt* self = nullptr;
959+
sk::ParameterInt* old = nullptr;
960+
bool load (int& ref) {
961+
return self->load (ref) || old->load (ref);
962+
}
963+
void store (int val) {
964+
self->store (val);
965+
}
966+
} buffer_count;
959967
sk::ParameterInt* max_delta_time = nullptr;
960968
sk::ParameterBool* flip_discard = nullptr;
961969
sk::ParameterBool* flip_sequential = nullptr;
@@ -1632,6 +1640,22 @@ SK_LoadConfigEx (std::wstring name, bool create)
16321640
notify_config =
16331641
std::wstring (SK_GetInstallPath ()) + LR"(\Global\notifications.ini)";
16341642

1643+
//
1644+
// Create Parameters
1645+
//
1646+
struct param_decl_s {
1647+
sk::iParameter **parameter_ = nullptr;
1648+
std::type_index type_;
1649+
const wchar_t *description_ = nullptr;
1650+
iSK_INI *ini_ = nullptr;
1651+
const wchar_t *section_ = nullptr;
1652+
const wchar_t *key_ = nullptr;
1653+
const wchar_t *key_old_ = nullptr;
1654+
sk::iParameter **prm_old_ = nullptr;
1655+
};
1656+
1657+
std::vector <param_decl_s> legacy_params;
1658+
16351659
if (init == FALSE || dll_ini == nullptr)
16361660
{
16371661
SK_RunOnce ( dll_ini =
@@ -1701,25 +1725,21 @@ auto DeclKeybind =
17011725
(sec), (key) \
17021726
}
17031727

1728+
#define LegacyEntry(param,descrip,ini,sec,key,key_old) {\
1729+
reinterpret_cast <sk::iParameter **> (&(param.self)), \
1730+
std::type_index ( typeid ((param.self))),\
1731+
(descrip), (ini), \
1732+
(sec), (key), (key_old), \
1733+
reinterpret_cast <sk::iParameter **> (&(param.old)) \
1734+
}
1735+
17041736
#define Keybind(bind,descrip,ini,sec) { \
17051737
reinterpret_cast <sk::iParameter **> ((bind)), \
17061738
std::type_index ( typeid ((bind))), \
17071739
(descrip), (ini), \
17081740
(sec), ((bind)->short_name)\
17091741
}
17101742

1711-
//
1712-
// Create Parameters
1713-
//
1714-
struct param_decl_s {
1715-
sk::iParameter **parameter_ = nullptr;
1716-
std::type_index type_;
1717-
const wchar_t *description_ = nullptr;
1718-
iSK_INI *ini_ = nullptr;
1719-
const wchar_t *section_ = nullptr;
1720-
const wchar_t *key_ = nullptr;
1721-
};
1722-
17231743
static const std::initializer_list <param_decl_s> params_to_build
17241744
//// nb: If you want any hope of reading this table, turn line wrapping off.
17251745
//
@@ -2099,8 +2119,7 @@ auto DeclKeybind =
20992119
ConfigEntry (render.framerate.last_refresh_rate, L"Refresh rate the last time framerate limit was configured.",dll_ini, L"Render.FrameRate", L"LastRefreshRate"),
21002120
ConfigEntry (render.framerate.last_monitor_path, L"The monitor the last time framerate limit was configured.", dll_ini, L"Render.FrameRate", L"LastMonitorPath"),
21012121
ConfigEntry (render.framerate.wait_for_vblank, L"Limiter Will Wait for VBLANK", dll_ini, L"Render.FrameRate", L"WaitForVBLANK"),
2102-
ConfigEntry (render.framerate.buffer_count_old, L"Number of (Back)Buffers in the Swapchain", dll_ini, L"Render.FrameRate", L"BackBufferCount"),
2103-
ConfigEntry (render.framerate.buffer_count, L"Number of (Back)Buffers in the Swapchain", dll_ini, L"Render.FrameRate", L"BufferCount"),
2122+
LegacyEntry (render.framerate.buffer_count, L"Number of (Back)Buffers in the Swapchain", dll_ini, L"Render.FrameRate", L"BufferCount", L"BackBufferCount"),
21042123
ConfigEntry (render.framerate.present_interval, L"Presentation Interval (VSYNC)", dll_ini, L"Render.FrameRate", L"PresentationInterval"),
21052124
ConfigEntry (render.framerate.sync_interval_clamp, L"Maximum Sync Interval (Clamp VSYNC)", dll_ini, L"Render.FrameRate", L"SyncIntervalClamp"),
21062125
ConfigEntry (render.framerate.tearing_mode, L"Tearing Mode (Always On/Off or Adaptive)", dll_ini, L"Render.FrameRate", L"TearingMode"),
@@ -2413,11 +2432,20 @@ auto DeclKeybind =
24132432

24142433
for ( auto& decl : params_to_build )
24152434
{
2435+
if (decl.key_old_ != nullptr)
2436+
{
2437+
legacy_params.push_back (decl);
2438+
}
2439+
24162440
if ( decl.type_ == std::type_index ( typeid ( sk::ParameterBool* ) ) )
24172441
{
24182442
if (*decl.parameter_ == nullptr)
24192443
*decl.parameter_ =
24202444
SK_CreateINIParameter <sk::ParameterBool> (decl.description_, decl.ini_, decl.section_, decl.key_);
2445+
if ( decl.key_old_ != nullptr &&
2446+
*decl.prm_old_ == nullptr )
2447+
*decl.prm_old_ =
2448+
SK_CreateINIParameter <sk::ParameterBool> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24212449

24222450
continue;
24232451
}
@@ -2427,6 +2455,10 @@ auto DeclKeybind =
24272455
if (*decl.parameter_ == nullptr)
24282456
*decl.parameter_ =
24292457
SK_CreateINIParameter <sk::ParameterInt> (decl.description_, decl.ini_, decl.section_, decl.key_);
2458+
if ( decl.key_old_ != nullptr &&
2459+
*decl.prm_old_ == nullptr )
2460+
*decl.prm_old_ =
2461+
SK_CreateINIParameter <sk::ParameterInt> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24302462

24312463
continue;
24322464
}
@@ -2436,6 +2468,10 @@ auto DeclKeybind =
24362468
if (*decl.parameter_ == nullptr)
24372469
*decl.parameter_ =
24382470
SK_CreateINIParameter <sk::ParameterInt64> (decl.description_, decl.ini_, decl.section_, decl.key_);
2471+
if ( decl.key_old_ != nullptr &&
2472+
*decl.prm_old_ == nullptr )
2473+
*decl.prm_old_ =
2474+
SK_CreateINIParameter <sk::ParameterInt64> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24392475

24402476
continue;
24412477
}
@@ -2445,6 +2481,10 @@ auto DeclKeybind =
24452481
if (*decl.parameter_ == nullptr)
24462482
*decl.parameter_ =
24472483
SK_CreateINIParameter <sk::ParameterFloat> (decl.description_, decl.ini_, decl.section_, decl.key_);
2484+
if ( decl.key_old_ != nullptr &&
2485+
*decl.prm_old_ == nullptr )
2486+
*decl.prm_old_ =
2487+
SK_CreateINIParameter <sk::ParameterFloat> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24482488

24492489
continue;
24502490
}
@@ -2454,6 +2494,10 @@ auto DeclKeybind =
24542494
if (*decl.parameter_ == nullptr)
24552495
*decl.parameter_ =
24562496
SK_CreateINIParameter <sk::ParameterStringW> (decl.description_, decl.ini_, decl.section_, decl.key_);
2497+
if ( decl.key_old_ != nullptr &&
2498+
*decl.prm_old_ == nullptr )
2499+
*decl.prm_old_ =
2500+
SK_CreateINIParameter <sk::ParameterStringW> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24572501

24582502
continue;
24592503
}
@@ -2463,6 +2507,10 @@ auto DeclKeybind =
24632507
if (*decl.parameter_ == nullptr)
24642508
*decl.parameter_ =
24652509
SK_CreateINIParameter <sk::ParameterVec2f> (decl.description_, decl.ini_, decl.section_, decl.key_);
2510+
if ( decl.key_old_ != nullptr &&
2511+
*decl.prm_old_ == nullptr )
2512+
*decl.prm_old_ =
2513+
SK_CreateINIParameter <sk::ParameterVec2f> (decl.description_, decl.ini_, decl.section_, decl.key_old_);
24662514

24672515
continue;
24682516
}
@@ -5036,18 +5084,14 @@ auto DeclKeybind =
50365084
render.hdr.last_used_colorspace->load (config.render.hdr.last_used_colorspace);
50375085

50385086
render.framerate.wait_for_vblank->load (config.render.framerate.wait_for_vblank);
5087+
render.framerate.buffer_count.load (config.render.framerate.buffer_count);
50395088
render.framerate.prerender_limit->load (config.render.framerate.pre_render_limit);
50405089
render.framerate.present_interval->load (config.render.framerate.present_interval);
50415090
render.framerate.sync_interval_clamp->load (config.render.framerate.sync_interval_clamp);
50425091
render.framerate.tearing_mode->load (config.render.framerate.tearing_mode);
50435092
render.framerate.latency_mode->load (config.render.framerate.latency_mode);
50445093
render.framerate.render_queue->load (config.render.framerate.render_queue);
50455094

5046-
if (! render.framerate.buffer_count->load (config.render.framerate.buffer_count))
5047-
{
5048-
render.framerate.buffer_count_old->load (config.render.framerate.buffer_count);
5049-
}
5050-
50515095
if (render.framerate.refresh_rate)
50525096
{
50535097
render.framerate.refresh_rate->load (config.render.framerate.refresh_rate);
@@ -6643,6 +6687,20 @@ auto DeclKeybind =
66436687
}
66446688
}
66456689

6690+
if (! empty)
6691+
{
6692+
for (const auto& lp : legacy_params)
6693+
{
6694+
if ( lp.ini_ != nullptr &&
6695+
lp.section_ != nullptr &&
6696+
lp.key_old_ != nullptr &&
6697+
wcslen (lp.key_old_) )
6698+
{
6699+
lp.ini_->get_section (lp.section_).remove_key (lp.key_old_);
6700+
}
6701+
}
6702+
}
6703+
66466704
return (! empty);
66476705
}
66486706

@@ -7353,7 +7411,7 @@ SK_SaveConfig ( std::wstring name,
73537411
{
73547412
render.framerate.wait_for_vblank->store (config.render.framerate.wait_for_vblank);
73557413
render.framerate.prerender_limit->store (config.render.framerate.pre_render_limit);
7356-
render.framerate.buffer_count->store (config.render.framerate.buffer_count);
7414+
render.framerate.buffer_count.store (config.render.framerate.buffer_count);
73577415

73587416
scheduling.priority.raise_always->store (config.priority.raise_always);
73597417
scheduling.priority.raise_in_bg->store (config.priority.raise_bg);

0 commit comments

Comments
 (0)