mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-22 02:32:36 +01:00
input: enable squircle settings in keyboard pad handler
Clamp squircled values to radius 1. Also set kb and evdev default to 8000 as the others
This commit is contained in:
parent
8131f40269
commit
e5a526e4d6
@ -172,24 +172,28 @@ u16 PadHandlerBase::ConvertAxis(f32 value)
|
|||||||
// using a simple scale/sensitivity increase would *work* although it eats a chunk of our usable range in exchange
|
// using a simple scale/sensitivity increase would *work* although it eats a chunk of our usable range in exchange
|
||||||
// this might be the best for now, in practice it seems to push the corners to max of 20x20, with a squircle_factor of 8000
|
// this might be the best for now, in practice it seems to push the corners to max of 20x20, with a squircle_factor of 8000
|
||||||
// This function assumes inX and inY is already in 0-255
|
// This function assumes inX and inY is already in 0-255
|
||||||
std::tuple<u16, u16> PadHandlerBase::ConvertToSquirclePoint(u16 inX, u16 inY, u32 squircle_factor)
|
void PadHandlerBase::ConvertToSquirclePoint(u16& inX, u16& inY, u32 squircle_factor)
|
||||||
{
|
{
|
||||||
// convert inX and Y to a (-1, 1) vector;
|
if (!squircle_factor)
|
||||||
const f32 x = (inX - 127.5f) / 127.5f;
|
return;
|
||||||
const f32 y = (inY - 127.5f) / 127.5f;
|
|
||||||
|
|
||||||
// compute angle and len of given point to be used for squircle radius
|
constexpr f32 radius = 127.5f;
|
||||||
|
|
||||||
|
// convert inX and Y to a (-1, 1) vector;
|
||||||
|
const f32 x = (inX - radius) / radius;
|
||||||
|
const f32 y = (inY - radius) / radius;
|
||||||
|
|
||||||
|
// compute angle and len of given point to be used for squircle radius. Clamp to circle, we don't want to exceed the squircle.
|
||||||
const f32 angle = std::atan2(y, x);
|
const f32 angle = std::atan2(y, x);
|
||||||
const f32 r = std::sqrt(std::pow(x, 2.f) + std::pow(y, 2.f));
|
const f32 distance_to_center = std::min(1.0f, std::sqrt(std::pow(x, 2.f) + std::pow(y, 2.f)));
|
||||||
|
|
||||||
// now find len/point on the given squircle from our current angle and radius in polar coords
|
// now find len/point on the given squircle from our current angle and radius in polar coords
|
||||||
// https://thatsmaths.com/2016/07/14/squircles/
|
// https://thatsmaths.com/2016/07/14/squircles/
|
||||||
const f32 newLen = (1 + std::pow(std::sin(2 * angle), 2.f) / (squircle_factor / 1000.f)) * r;
|
const f32 new_len = (1 + std::pow(std::sin(2 * angle), 2.f) / (squircle_factor / 1000.f)) * distance_to_center;
|
||||||
|
|
||||||
// we now have len and angle, convert to cartesian
|
// we now have len and angle, convert to cartesian
|
||||||
const int newX = Clamp0To255(std::round(((newLen * std::cos(angle)) + 1) * 127.5f));
|
inX = Clamp0To255(std::round(((new_len * std::cos(angle)) + 1) * radius));
|
||||||
const int newY = Clamp0To255(std::round(((newLen * std::sin(angle)) + 1) * 127.5f));
|
inY = Clamp0To255(std::round(((new_len * std::sin(angle)) + 1) * radius));
|
||||||
return std::tuple<u16, u16>(newX, newY);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void PadHandlerBase::init_configs()
|
void PadHandlerBase::init_configs()
|
||||||
@ -366,7 +370,7 @@ void PadHandlerBase::convert_stick_values(u16& x_out, u16& y_out, s32 x_in, s32
|
|||||||
// Apply pad squircling if necessary
|
// Apply pad squircling if necessary
|
||||||
if (padsquircling != 0)
|
if (padsquircling != 0)
|
||||||
{
|
{
|
||||||
std::tie(x_out, y_out) = ConvertToSquirclePoint(x_out, y_out, padsquircling);
|
ConvertToSquirclePoint(x_out, y_out, padsquircling);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -245,6 +245,7 @@ protected:
|
|||||||
|
|
||||||
// get clamped value between 0 and 255
|
// get clamped value between 0 and 255
|
||||||
static u16 Clamp0To255(f32 input);
|
static u16 Clamp0To255(f32 input);
|
||||||
|
|
||||||
// get clamped value between 0 and 1023
|
// get clamped value between 0 and 1023
|
||||||
static u16 Clamp0To1023(f32 input);
|
static u16 Clamp0To1023(f32 input);
|
||||||
|
|
||||||
@ -255,7 +256,7 @@ protected:
|
|||||||
// using a simple scale/sensitivity increase would *work* although it eats a chunk of our usable range in exchange
|
// using a simple scale/sensitivity increase would *work* although it eats a chunk of our usable range in exchange
|
||||||
// this might be the best for now, in practice it seems to push the corners to max of 20x20, with a squircle_factor of 8000
|
// this might be the best for now, in practice it seems to push the corners to max of 20x20, with a squircle_factor of 8000
|
||||||
// This function assumes inX and inY is already in 0-255
|
// This function assumes inX and inY is already in 0-255
|
||||||
static std::tuple<u16, u16> ConvertToSquirclePoint(u16 inX, u16 inY, u32 squircle_factor);
|
static void ConvertToSquirclePoint(u16& inX, u16& inY, u32 squircle_factor);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// u32 thumb_min = 0; // Unused. Make sure all handlers report 0+ values for sticks in get_button_values.
|
// u32 thumb_min = 0; // Unused. Make sure all handlers report 0+ values for sticks in get_button_values.
|
||||||
|
@ -81,8 +81,8 @@ struct cfg_pad final : cfg::node
|
|||||||
cfg::uint<0, 1000000> rstick_anti_deadzone{ this, "Right Stick Anti-Deadzone", 0 };
|
cfg::uint<0, 1000000> rstick_anti_deadzone{ this, "Right Stick Anti-Deadzone", 0 };
|
||||||
cfg::uint<0, 1000000> ltriggerthreshold{ this, "Left Trigger Threshold", 0 };
|
cfg::uint<0, 1000000> ltriggerthreshold{ this, "Left Trigger Threshold", 0 };
|
||||||
cfg::uint<0, 1000000> rtriggerthreshold{ this, "Right Trigger Threshold", 0 };
|
cfg::uint<0, 1000000> rtriggerthreshold{ this, "Right Trigger Threshold", 0 };
|
||||||
cfg::uint<0, 1000000> lpadsquircling{ this, "Left Pad Squircling Factor", 0 };
|
cfg::uint<0, 1000000> lpadsquircling{ this, "Left Pad Squircling Factor", 8000 };
|
||||||
cfg::uint<0, 1000000> rpadsquircling{ this, "Right Pad Squircling Factor", 0 };
|
cfg::uint<0, 1000000> rpadsquircling{ this, "Right Pad Squircling Factor", 8000 };
|
||||||
|
|
||||||
cfg::uint<0, 255> colorR{ this, "Color Value R", 0 };
|
cfg::uint<0, 255> colorR{ this, "Color Value R", 0 };
|
||||||
cfg::uint<0, 255> colorG{ this, "Color Value G", 0 };
|
cfg::uint<0, 255> colorG{ this, "Color Value G", 0 };
|
||||||
|
@ -92,8 +92,8 @@ void evdev_joystick_handler::init_config(cfg_pad* cfg)
|
|||||||
cfg->rstickdeadzone.def = 30; // between 0 and 255
|
cfg->rstickdeadzone.def = 30; // between 0 and 255
|
||||||
cfg->ltriggerthreshold.def = 0; // between 0 and 255
|
cfg->ltriggerthreshold.def = 0; // between 0 and 255
|
||||||
cfg->rtriggerthreshold.def = 0; // between 0 and 255
|
cfg->rtriggerthreshold.def = 0; // between 0 and 255
|
||||||
cfg->lpadsquircling.def = 5000;
|
cfg->lpadsquircling.def = 8000;
|
||||||
cfg->rpadsquircling.def = 5000;
|
cfg->rpadsquircling.def = 8000;
|
||||||
|
|
||||||
// apply defaults
|
// apply defaults
|
||||||
cfg->from_default();
|
cfg->from_default();
|
||||||
|
@ -68,8 +68,8 @@ void keyboard_pad_handler::init_config(cfg_pad* cfg)
|
|||||||
cfg->rstickdeadzone.def = 0;
|
cfg->rstickdeadzone.def = 0;
|
||||||
cfg->ltriggerthreshold.def = 0;
|
cfg->ltriggerthreshold.def = 0;
|
||||||
cfg->rtriggerthreshold.def = 0;
|
cfg->rtriggerthreshold.def = 0;
|
||||||
cfg->lpadsquircling.def = 0;
|
cfg->lpadsquircling.def = 8000;
|
||||||
cfg->rpadsquircling.def = 0;
|
cfg->rpadsquircling.def = 8000;
|
||||||
|
|
||||||
// apply defaults
|
// apply defaults
|
||||||
cfg->from_default();
|
cfg->from_default();
|
||||||
@ -1277,7 +1277,34 @@ void keyboard_pad_handler::process()
|
|||||||
{
|
{
|
||||||
auto& pad = m_bindings[i].pad;
|
auto& pad = m_bindings[i].pad;
|
||||||
ensure(pad);
|
ensure(pad);
|
||||||
pad->m_buttons = m_pads_internal[i].m_buttons;
|
|
||||||
pad->m_sticks = m_pads_internal[i].m_sticks;
|
const cfg_pad* cfg = &m_pad_configs[pad->m_player_id];
|
||||||
|
ensure(cfg);
|
||||||
|
|
||||||
|
const Pad& pad_internal = m_pads_internal[i];
|
||||||
|
|
||||||
|
// Normalize and apply pad squircling
|
||||||
|
// Copy sticks first. We don't want to modify the raw internal values
|
||||||
|
std::vector<AnalogStick> squircled_sticks = pad_internal.m_sticks;
|
||||||
|
|
||||||
|
// Apply squircling
|
||||||
|
if (cfg->lpadsquircling != 0)
|
||||||
|
{
|
||||||
|
u16& lx = squircled_sticks[0].m_value;
|
||||||
|
u16& ly = squircled_sticks[1].m_value;
|
||||||
|
|
||||||
|
ConvertToSquirclePoint(lx, ly, cfg->lpadsquircling);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cfg->rpadsquircling != 0)
|
||||||
|
{
|
||||||
|
u16& rx = squircled_sticks[2].m_value;
|
||||||
|
u16& ry = squircled_sticks[3].m_value;
|
||||||
|
|
||||||
|
ConvertToSquirclePoint(rx, ry, cfg->rpadsquircling);
|
||||||
|
}
|
||||||
|
|
||||||
|
pad->m_buttons = pad_internal.m_buttons;
|
||||||
|
pad->m_sticks = std::move(squircled_sticks);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1177,14 +1177,10 @@ void pad_settings_dialog::UpdateLabels(bool is_reset)
|
|||||||
range = cfg.lstickmultiplier.to_list();
|
range = cfg.lstickmultiplier.to_list();
|
||||||
ui->stick_multi_left->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
ui->stick_multi_left->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
||||||
ui->stick_multi_left->setValue(cfg.lstickmultiplier / 100.0);
|
ui->stick_multi_left->setValue(cfg.lstickmultiplier / 100.0);
|
||||||
ui->kb_stick_multi_left->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
|
||||||
ui->kb_stick_multi_left->setValue(cfg.lstickmultiplier / 100.0);
|
|
||||||
|
|
||||||
range = cfg.rstickmultiplier.to_list();
|
range = cfg.rstickmultiplier.to_list();
|
||||||
ui->stick_multi_right->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
ui->stick_multi_right->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
||||||
ui->stick_multi_right->setValue(cfg.rstickmultiplier / 100.0);
|
ui->stick_multi_right->setValue(cfg.rstickmultiplier / 100.0);
|
||||||
ui->kb_stick_multi_right->setRange(std::stod(range.front()) / 100.0, std::stod(range.back()) / 100.0);
|
|
||||||
ui->kb_stick_multi_right->setValue(cfg.rstickmultiplier / 100.0);
|
|
||||||
|
|
||||||
// Update Squircle Factors
|
// Update Squircle Factors
|
||||||
range = cfg.lpadsquircling.to_list();
|
range = cfg.lpadsquircling.to_list();
|
||||||
@ -1247,8 +1243,6 @@ void pad_settings_dialog::SwitchButtons(bool is_enabled)
|
|||||||
ui->chb_show_emulated_values->setEnabled(is_enabled);
|
ui->chb_show_emulated_values->setEnabled(is_enabled);
|
||||||
ui->stick_multi_left->setEnabled(is_enabled);
|
ui->stick_multi_left->setEnabled(is_enabled);
|
||||||
ui->stick_multi_right->setEnabled(is_enabled);
|
ui->stick_multi_right->setEnabled(is_enabled);
|
||||||
ui->kb_stick_multi_left->setEnabled(is_enabled);
|
|
||||||
ui->kb_stick_multi_right->setEnabled(is_enabled);
|
|
||||||
ui->squircle_left->setEnabled(is_enabled);
|
ui->squircle_left->setEnabled(is_enabled);
|
||||||
ui->squircle_right->setEnabled(is_enabled);
|
ui->squircle_right->setEnabled(is_enabled);
|
||||||
ui->gb_pressure_intensity_deadzone->setEnabled(is_enabled);
|
ui->gb_pressure_intensity_deadzone->setEnabled(is_enabled);
|
||||||
@ -1855,16 +1849,8 @@ void pad_settings_dialog::ApplyCurrentPlayerConfig(int new_player_id)
|
|||||||
// Apply rest of config
|
// Apply rest of config
|
||||||
auto& cfg = player->config;
|
auto& cfg = player->config;
|
||||||
|
|
||||||
if (m_handler->m_type == pad_handler::keyboard)
|
cfg.lstickmultiplier.set(ui->stick_multi_left->value() * 100);
|
||||||
{
|
cfg.rstickmultiplier.set(ui->stick_multi_right->value() * 100);
|
||||||
cfg.lstickmultiplier.set(ui->kb_stick_multi_left->value() * 100);
|
|
||||||
cfg.rstickmultiplier.set(ui->kb_stick_multi_right->value() * 100);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
cfg.lstickmultiplier.set(ui->stick_multi_left->value() * 100);
|
|
||||||
cfg.rstickmultiplier.set(ui->stick_multi_right->value() * 100);
|
|
||||||
}
|
|
||||||
|
|
||||||
cfg.lpadsquircling.set(ui->squircle_left->value());
|
cfg.lpadsquircling.set(ui->squircle_left->value());
|
||||||
cfg.rpadsquircling.set(ui->squircle_right->value());
|
cfg.rpadsquircling.set(ui->squircle_right->value());
|
||||||
@ -2091,7 +2077,6 @@ void pad_settings_dialog::SubscribeTooltips()
|
|||||||
SubscribeTooltip(ui->gb_pressure_intensity_deadzone, tooltips.gamepad_settings.pressure_deadzone);
|
SubscribeTooltip(ui->gb_pressure_intensity_deadzone, tooltips.gamepad_settings.pressure_deadzone);
|
||||||
SubscribeTooltip(ui->gb_squircle, tooltips.gamepad_settings.squircle_factor);
|
SubscribeTooltip(ui->gb_squircle, tooltips.gamepad_settings.squircle_factor);
|
||||||
SubscribeTooltip(ui->gb_stick_multi, tooltips.gamepad_settings.stick_multiplier);
|
SubscribeTooltip(ui->gb_stick_multi, tooltips.gamepad_settings.stick_multiplier);
|
||||||
SubscribeTooltip(ui->gb_kb_stick_multi, tooltips.gamepad_settings.stick_multiplier);
|
|
||||||
SubscribeTooltip(ui->gb_vibration, tooltips.gamepad_settings.vibration);
|
SubscribeTooltip(ui->gb_vibration, tooltips.gamepad_settings.vibration);
|
||||||
SubscribeTooltip(ui->gb_motion_controls, tooltips.gamepad_settings.motion_controls);
|
SubscribeTooltip(ui->gb_motion_controls, tooltips.gamepad_settings.motion_controls);
|
||||||
SubscribeTooltip(ui->gb_stick_deadzones, tooltips.gamepad_settings.stick_deadzones);
|
SubscribeTooltip(ui->gb_stick_deadzones, tooltips.gamepad_settings.stick_deadzones);
|
||||||
|
@ -2248,10 +2248,166 @@
|
|||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="gb_squircle">
|
||||||
|
<property name="title">
|
||||||
|
<string>Squircle Values</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="layout_squircle">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_squircle_left">
|
||||||
|
<property name="text">
|
||||||
|
<string>Left</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="squircle_left">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>1000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_squircle_left">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_squircle_right">
|
||||||
|
<property name="text">
|
||||||
|
<string>Right</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSpinBox" name="squircle_right">
|
||||||
|
<property name="maximum">
|
||||||
|
<number>1000000</number>
|
||||||
|
</property>
|
||||||
|
<property name="singleStep">
|
||||||
|
<number>1000</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_squircle_right">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QGroupBox" name="gb_stick_multi">
|
||||||
|
<property name="title">
|
||||||
|
<string>Stick Multipliers</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QHBoxLayout" name="gb_stick_multi_layout">
|
||||||
|
<property name="leftMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="topMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="rightMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<property name="bottomMargin">
|
||||||
|
<number>5</number>
|
||||||
|
</property>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_stick_multi_left">
|
||||||
|
<property name="text">
|
||||||
|
<string>Left</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="stick_multi_left">
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_stick_multi_left">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="label_stick_multi_right">
|
||||||
|
<property name="text">
|
||||||
|
<string>Right</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QDoubleSpinBox" name="stick_multi_right">
|
||||||
|
<property name="singleStep">
|
||||||
|
<double>0.100000000000000</double>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="spacer_stick_multi_right">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QStackedWidget" name="right_stack">
|
<widget class="QStackedWidget" name="right_stack">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>0</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="stick_page">
|
<widget class="QWidget" name="stick_page">
|
||||||
<layout class="QVBoxLayout" name="stick_page_layout">
|
<layout class="QVBoxLayout" name="stick_page_layout">
|
||||||
@ -2267,159 +2423,6 @@
|
|||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_stick_multi">
|
|
||||||
<property name="title">
|
|
||||||
<string>Stick Multipliers</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="gb_stick_multi_layout">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_stick_multi_left">
|
|
||||||
<property name="text">
|
|
||||||
<string>Left</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDoubleSpinBox" name="stick_multi_left">
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_stick_multi_left">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_stick_multi_right">
|
|
||||||
<property name="text">
|
|
||||||
<string>Right</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDoubleSpinBox" name="stick_multi_right">
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_stick_multi_right">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_squircle">
|
|
||||||
<property name="title">
|
|
||||||
<string>Squircle Values</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="layout_squircle">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_squircle_left">
|
|
||||||
<property name="text">
|
|
||||||
<string>Left</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="squircle_left">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000000</number>
|
|
||||||
</property>
|
|
||||||
<property name="singleStep">
|
|
||||||
<number>1000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_squircle_left">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_squircle_right">
|
|
||||||
<property name="text">
|
|
||||||
<string>Right</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QSpinBox" name="squircle_right">
|
|
||||||
<property name="maximum">
|
|
||||||
<number>1000000</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_squircle_right">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="gb_stick_deadzones">
|
<widget class="QGroupBox" name="gb_stick_deadzones">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
@ -2570,81 +2573,6 @@
|
|||||||
<property name="bottomMargin">
|
<property name="bottomMargin">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_kb_stick_multi">
|
|
||||||
<property name="title">
|
|
||||||
<string>Stick Multipliers</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QHBoxLayout" name="gb_kb_stick_multi_layout">
|
|
||||||
<property name="leftMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="topMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="rightMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<property name="bottomMargin">
|
|
||||||
<number>5</number>
|
|
||||||
</property>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_kb_stick_multi_left">
|
|
||||||
<property name="text">
|
|
||||||
<string>Left</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDoubleSpinBox" name="kb_stick_multi_left">
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_kb_stick_multi_left">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QLabel" name="label_kb_stick_multi_right">
|
|
||||||
<property name="text">
|
|
||||||
<string>Right</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QDoubleSpinBox" name="kb_stick_multi_right">
|
|
||||||
<property name="singleStep">
|
|
||||||
<double>0.100000000000000</double>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<spacer name="spacer_kb_stick_multi_right">
|
|
||||||
<property name="orientation">
|
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
|
||||||
</property>
|
|
||||||
<property name="sizeHint" stdset="0">
|
|
||||||
<size>
|
|
||||||
<width>0</width>
|
|
||||||
<height>0</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
</spacer>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="gb_stick_lerp">
|
<widget class="QGroupBox" name="gb_stick_lerp">
|
||||||
<property name="title">
|
<property name="title">
|
||||||
|
Loading…
Reference in New Issue
Block a user