mirror of
https://github.com/RetroDECK/Duckstation.git
synced 2024-11-23 14:25:37 +00:00
PostProcessing: Use ints-for-bools CPU-side as well
This commit is contained in:
parent
3bd9f85af8
commit
3096f0953f
|
@ -27,14 +27,14 @@ void PostProcessingShaderConfigWidget::createUi()
|
||||||
if (option.type == PostProcessingShader::Option::Type::Bool)
|
if (option.type == PostProcessingShader::Option::Type::Bool)
|
||||||
{
|
{
|
||||||
QCheckBox* checkbox = new QCheckBox(QString::fromStdString(option.ui_name), this);
|
QCheckBox* checkbox = new QCheckBox(QString::fromStdString(option.ui_name), this);
|
||||||
checkbox->setChecked(option.value[0].bool_value);
|
checkbox->setChecked(option.value[0].int_value != 0);
|
||||||
connect(checkbox, &QCheckBox::stateChanged, [this, &option](int state) {
|
connect(checkbox, &QCheckBox::stateChanged, [this, &option](int state) {
|
||||||
option.value[0].bool_value = (state == Qt::Checked);
|
option.value[0].int_value = (state == Qt::Checked) ? 1 : 0;
|
||||||
configChanged();
|
configChanged();
|
||||||
});
|
});
|
||||||
connect(this, &PostProcessingShaderConfigWidget::resettingtoDefaults, [&option, checkbox]() {
|
connect(this, &PostProcessingShaderConfigWidget::resettingtoDefaults, [&option, checkbox]() {
|
||||||
QSignalBlocker sb(checkbox);
|
QSignalBlocker sb(checkbox);
|
||||||
checkbox->setChecked(option.default_value[0].bool_value);
|
checkbox->setChecked(option.default_value[0].int_value != 0);
|
||||||
option.value = option.default_value;
|
option.value = option.default_value;
|
||||||
});
|
});
|
||||||
m_layout->addWidget(checkbox, row, 0, 1, 3, Qt::AlignLeft);
|
m_layout->addWidget(checkbox, row, 0, 1, 3, Qt::AlignLeft);
|
||||||
|
|
|
@ -166,7 +166,7 @@ std::string PostProcessingShader::GetConfigString() const
|
||||||
switch (option.type)
|
switch (option.type)
|
||||||
{
|
{
|
||||||
case Option::Type::Bool:
|
case Option::Type::Bool:
|
||||||
ss << option.value[i].bool_value ? "true" : "false";
|
ss << (option.value[i].int_value != 0) ? "true" : "false";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Option::Type::Int:
|
case Option::Type::Int:
|
||||||
|
@ -209,7 +209,7 @@ void PostProcessingShader::SetConfigString(const std::string_view& str)
|
||||||
switch (option->type)
|
switch (option->type)
|
||||||
{
|
{
|
||||||
case Option::Type::Bool:
|
case Option::Type::Bool:
|
||||||
option->value[0].bool_value = StringUtil::FromChars<bool>(value).value_or(false);
|
option->value[0].int_value = StringUtil::FromChars<bool>(value).value_or(false) ? 1 : 0;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case Option::Type::Int:
|
case Option::Type::Int:
|
||||||
|
@ -389,7 +389,7 @@ void PostProcessingShader::LoadOptions()
|
||||||
|
|
||||||
u32 size = 0;
|
u32 size = 0;
|
||||||
if (current_option.type == Option::Type::Bool)
|
if (current_option.type == Option::Type::Bool)
|
||||||
(*dst_array)[size++].bool_value = StringUtil::FromChars<bool>(value).value_or(false);
|
(*dst_array)[size++].int_value = StringUtil::FromChars<bool>(value).value_or(false) ? 1 : 0;
|
||||||
else if (current_option.type == Option::Type::Float)
|
else if (current_option.type == Option::Type::Float)
|
||||||
size = ParseVector<float>(value, dst_array);
|
size = ParseVector<float>(value, dst_array);
|
||||||
else if (current_option.type == Option::Type::Int)
|
else if (current_option.type == Option::Type::Int)
|
||||||
|
|
|
@ -33,7 +33,6 @@ public:
|
||||||
|
|
||||||
union Value
|
union Value
|
||||||
{
|
{
|
||||||
bool bool_value;
|
|
||||||
s32 int_value;
|
s32 int_value;
|
||||||
float float_value;
|
float float_value;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue