mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-26 04:32:35 +01:00
Qt: add high resolution settings to gui tab
This commit is contained in:
parent
fc0f98b5db
commit
20ad9a13b8
@ -66,10 +66,15 @@
|
||||
"gpu": {
|
||||
"comboboxes": {
|
||||
"renderBox": "Vulkan is the fastest renderer. OpenGL is the most accurate renderer.\nIf unsure, use Vulkan. Should you have any compatibility issues, fall back to OpenGL.\nDirectX 12 is deprecated and should never be used.",
|
||||
"resBox": "Leave this on 1280x720; every PS3 game is compatible with this resolution.\nSet it to 1920x1080 only if supported by the game. Lower resolutions may work but are not practical.\nHowever, due to emulation bugs, some games will only render at low resolutions like 480p.",
|
||||
"resBox": "This setting will be ignored if the Resolution Scale is set to anything other than 100%!\nLeave this on 1280x720, every PS3 game is compatible with this resolution.\nSet it to 1920x1080 only if supported by the game. Lower resolutions may work but are not practical.\nHowever rarely due to emulation bugs some games will only render at low resolutions like 480p.",
|
||||
"graphicsAdapterBox": "On multi GPU systems select which GPU to use in RPCS3 when using Vulkan or DirectX 12.\nThis is not needed when using OpenGL.",
|
||||
"aspectBox": "Leave this on 16:9 unless you have a 4:3 monitor.\nAuto also works well, especially if you use a resolution that is not 720p.",
|
||||
"frameLimitBox": "Off is the best option as it performs faster.\nUsing the frame limiter will add extra overhead and slow down the game.\nHowever, some games will crash if the framerate is too high.\nIf that happens, set value to anything other than Off."
|
||||
"aspectBox": "Leave this on 16:9 unless you have a 4:3 monitor.\nAuto also works well especially if you use a resolution that is not 720p.",
|
||||
"frameLimitBox": "Off is the best option as it performs faster.\nUsing the frame limiter will add extra overhead and slow down the game.\nHowever, some games will crash if the framerate is too high.\nIf that happens, set value to anything other than Off.",
|
||||
"anisotropicFilterOverride": "Higher values increase sharpness of textures on sloped surfaces at the cost of GPU resources.\nModern GPUs can handle this setting just fine even at 16x.\nKeep this on Automatic if you want to use the original setting used by a real PS3."
|
||||
},
|
||||
"sliders": {
|
||||
"resolutionScale": "Scales the game's resolution by the given percentage.\nThe base resolution is always 1280x720.\nSet this value to 100% if you want to use the normal Resolution options.",
|
||||
"minimumScalableDimension": "Only framebuffers greater than this size will be upscaled.\nIncreasing this value might fix problems with missing graphics when upscaling, especially when Write Color Buffers is enabled.\nDo not touch this setting if you are unsure."
|
||||
},
|
||||
"main": {
|
||||
"dumpColor": "Enable this option if you get missing graphics or broken lighting ingame.\nMight degrade performance and introduce stuttering in some cases.\nRequired for Demon's Souls.",
|
||||
|
@ -191,6 +191,7 @@ void emu_settings::LoadSettings(const std::string& path)
|
||||
fs::create_path(fs::get_config_dir() + path);
|
||||
|
||||
// Load default config
|
||||
m_defaultSettings = YAML::Load(g_cfg_defaults);
|
||||
m_currentSettings = YAML::Load(g_cfg_defaults);
|
||||
|
||||
// Add global config
|
||||
@ -259,9 +260,6 @@ void emu_settings::EnhanceComboBox(QComboBox* combobox, SettingsType type, bool
|
||||
|
||||
void emu_settings::EnhanceCheckBox(QCheckBox* checkbox, SettingsType type)
|
||||
{
|
||||
cfg_location loc = SettingsLoc[type];
|
||||
std::string name = loc[loc.size() - 1];
|
||||
|
||||
std::string currSet = GetSetting(type);
|
||||
if (currSet == "true")
|
||||
{
|
||||
@ -279,6 +277,39 @@ void emu_settings::EnhanceCheckBox(QCheckBox* checkbox, SettingsType type)
|
||||
});
|
||||
}
|
||||
|
||||
void emu_settings::EnhanceSlider(QSlider* slider, SettingsType type, bool is_ranged)
|
||||
{
|
||||
QString selected = qstr(GetSetting(type));
|
||||
|
||||
if (is_ranged)
|
||||
{
|
||||
QStringList range = GetSettingOptions(type);
|
||||
int min = range.first().toInt();
|
||||
int max = range.last().toInt();
|
||||
int val = selected.toInt();
|
||||
|
||||
if (val < min || val > max)
|
||||
{
|
||||
LOG_ERROR(GENERAL, "Passed in an invalid setting for creating enhanced slider");
|
||||
val = min;
|
||||
}
|
||||
|
||||
slider->setMinimum(min);
|
||||
slider->setMaximum(max);
|
||||
slider->setValue(val);
|
||||
}
|
||||
else
|
||||
{
|
||||
//TODO ?
|
||||
LOG_ERROR(GENERAL, "TODO: implement unranged enhanced slider");
|
||||
}
|
||||
|
||||
connect(slider, &QSlider::valueChanged, [=](int value)
|
||||
{
|
||||
SetSetting(type, sstr(slider->value()));
|
||||
});
|
||||
}
|
||||
|
||||
std::vector<std::string> emu_settings::GetLoadedLibraries()
|
||||
{
|
||||
return m_currentSettings["Core"]["Load libraries"].as<std::vector<std::string>, std::initializer_list<std::string>>({});
|
||||
@ -294,6 +325,17 @@ QStringList emu_settings::GetSettingOptions(SettingsType type) const
|
||||
return getOptions(const_cast<cfg_location&&>(SettingsLoc[type]));
|
||||
}
|
||||
|
||||
std::string emu_settings::GetSettingName(SettingsType type) const
|
||||
{
|
||||
cfg_location loc = SettingsLoc[type];
|
||||
return loc[loc.size() - 1];
|
||||
}
|
||||
|
||||
std::string emu_settings::GetSettingDefault(SettingsType type) const
|
||||
{
|
||||
return cfg_adapter::get_node(m_defaultSettings, SettingsLoc[type]).Scalar();
|
||||
}
|
||||
|
||||
std::string emu_settings::GetSetting(SettingsType type) const
|
||||
{
|
||||
return cfg_adapter::get_node(m_currentSettings, SettingsLoc[type]).Scalar();
|
||||
|
@ -60,6 +60,9 @@ public:
|
||||
StrictRenderingMode,
|
||||
DisableVertexCache,
|
||||
DisableOcclusionQueries,
|
||||
AnisotropicFilterOverride,
|
||||
ResolutionScale,
|
||||
MinimumScalableDimension,
|
||||
|
||||
// Audio
|
||||
AudioRenderer,
|
||||
@ -142,12 +145,21 @@ public:
|
||||
/** Connects a check box with the target settings type*/
|
||||
void EnhanceCheckBox(QCheckBox* checkbox, SettingsType type);
|
||||
|
||||
/** Connects a slider with the target settings type*/
|
||||
void EnhanceSlider(QSlider* slider, SettingsType type, bool is_ranged = false);
|
||||
|
||||
std::vector<std::string> GetLoadedLibraries();
|
||||
void SaveSelectedLibraries(const std::vector<std::string>& libs);
|
||||
|
||||
/** Returns the valid options for a given setting.*/
|
||||
QStringList GetSettingOptions(SettingsType type) const;
|
||||
|
||||
/** Returns the string for a given setting.*/
|
||||
std::string GetSettingName(SettingsType type) const;
|
||||
|
||||
/** Returns the default value of the setting type.*/
|
||||
std::string GetSettingDefault(SettingsType type) const;
|
||||
|
||||
/** Returns the value of the setting type.*/
|
||||
std::string GetSetting(SettingsType type) const;
|
||||
|
||||
@ -168,76 +180,80 @@ private:
|
||||
const QMap<SettingsType, cfg_location> SettingsLoc =
|
||||
{
|
||||
// Core Tab
|
||||
{ PPUDecoder, { "Core", "PPU Decoder"}},
|
||||
{ SPUDecoder, { "Core", "SPU Decoder"}},
|
||||
{ LibLoadOptions, { "Core", "Lib Loader"}},
|
||||
{ HookStaticFuncs, { "Core", "Hook static functions"}},
|
||||
{ BindSPUThreads, { "Core", "Bind SPU threads to secondary cores"}},
|
||||
{ LowerSPUThreadPrio, { "Core", "Lower SPU thread priority"}},
|
||||
{ SPULoopDetection, { "Core", "SPU loop detection"}},
|
||||
{ PPUDecoder, { "Core", "PPU Decoder"}},
|
||||
{ SPUDecoder, { "Core", "SPU Decoder"}},
|
||||
{ LibLoadOptions, { "Core", "Lib Loader"}},
|
||||
{ HookStaticFuncs, { "Core", "Hook static functions"}},
|
||||
{ BindSPUThreads, { "Core", "Bind SPU threads to secondary cores"}},
|
||||
{ LowerSPUThreadPrio, { "Core", "Lower SPU thread priority"}},
|
||||
{ SPULoopDetection, { "Core", "SPU loop detection"}},
|
||||
{ PreferredSPUThreads, { "Core", "Preferred SPU Threads"}},
|
||||
{ PPUDebug, { "Core", "PPU Debug"}},
|
||||
{ SPUDebug, { "Core", "SPU Debug"}},
|
||||
|
||||
// Graphics Tab
|
||||
{ Renderer, { "Video", "Renderer"}},
|
||||
{ Resolution, { "Video", "Resolution"}},
|
||||
{ AspectRatio, { "Video", "Aspect ratio"}},
|
||||
{ FrameLimit, { "Video", "Frame limit"}},
|
||||
{ LogShaderPrograms,{ "Video", "Log shader programs"}},
|
||||
{ WriteDepthBuffer, { "Video", "Write Depth Buffer"}},
|
||||
{ WriteColorBuffers,{ "Video", "Write Color Buffers"}},
|
||||
{ ReadColorBuffers, { "Video", "Read Color Buffers"}},
|
||||
{ ReadDepthBuffer, { "Video", "Read Depth Buffer"}},
|
||||
{ VSync, { "Video", "VSync"}},
|
||||
{ DebugOutput, { "Video", "Debug output"}},
|
||||
{ DebugOverlay, { "Video", "Debug overlay"}},
|
||||
{ LegacyBuffers, { "Video", "Use Legacy OpenGL Buffers"}},
|
||||
{ GPUTextureScaling,{ "Video", "Use GPU texture scaling"}},
|
||||
{ StretchToDisplayArea, { "Video", "Stretch To Display Area"}},
|
||||
{ ForceHighpZ, { "Video", "Force High Precision Z buffer"}},
|
||||
{ AutoInvalidateCache, { "Video", "Invalidate Cache Every Frame"}},
|
||||
{ StrictRenderingMode, { "Video", "Strict Rendering Mode"}},
|
||||
{ DisableVertexCache, { "Video", "Disable Vertex Cache"}},
|
||||
{ DisableOcclusionQueries,{ "Video", "Disable ZCull Occlusion Queries" }},
|
||||
{ D3D12Adapter, { "Video", "D3D12", "Adapter"}},
|
||||
{ VulkanAdapter, { "Video", "Vulkan", "Adapter"}},
|
||||
{ Renderer, { "Video", "Renderer"}},
|
||||
{ Resolution, { "Video", "Resolution"}},
|
||||
{ AspectRatio, { "Video", "Aspect ratio"}},
|
||||
{ FrameLimit, { "Video", "Frame limit"}},
|
||||
{ LogShaderPrograms, { "Video", "Log shader programs"}},
|
||||
{ WriteDepthBuffer, { "Video", "Write Depth Buffer"}},
|
||||
{ WriteColorBuffers, { "Video", "Write Color Buffers"}},
|
||||
{ ReadColorBuffers, { "Video", "Read Color Buffers"}},
|
||||
{ ReadDepthBuffer, { "Video", "Read Depth Buffer"}},
|
||||
{ VSync, { "Video", "VSync"}},
|
||||
{ DebugOutput, { "Video", "Debug output"}},
|
||||
{ DebugOverlay, { "Video", "Debug overlay"}},
|
||||
{ LegacyBuffers, { "Video", "Use Legacy OpenGL Buffers"}},
|
||||
{ GPUTextureScaling, { "Video", "Use GPU texture scaling"}},
|
||||
{ StretchToDisplayArea, { "Video", "Stretch To Display Area"}},
|
||||
{ ForceHighpZ, { "Video", "Force High Precision Z buffer"}},
|
||||
{ AutoInvalidateCache, { "Video", "Invalidate Cache Every Frame"}},
|
||||
{ StrictRenderingMode, { "Video", "Strict Rendering Mode"}},
|
||||
{ DisableVertexCache, { "Video", "Disable Vertex Cache"}},
|
||||
{ DisableOcclusionQueries, { "Video", "Disable ZCull Occlusion Queries" }},
|
||||
{ AnisotropicFilterOverride,{ "Video", "Anisotropic Filter Override" }},
|
||||
{ ResolutionScale, { "Video", "Resolution Scale" }},
|
||||
{ MinimumScalableDimension, { "Video", "Minimum Scalable Dimension" }},
|
||||
{ D3D12Adapter, { "Video", "D3D12", "Adapter"}},
|
||||
{ VulkanAdapter, { "Video", "Vulkan", "Adapter"}},
|
||||
|
||||
// Audio
|
||||
{ AudioRenderer, { "Audio", "Renderer"}},
|
||||
{ DumpToFile, { "Audio", "Dump to file"}},
|
||||
{ ConvertTo16Bit, { "Audio", "Convert to 16 bit"}},
|
||||
{ DownmixStereo, { "Audio", "Downmix to Stereo"}},
|
||||
{ AudioRenderer, { "Audio", "Renderer"}},
|
||||
{ DumpToFile, { "Audio", "Dump to file"}},
|
||||
{ ConvertTo16Bit, { "Audio", "Convert to 16 bit"}},
|
||||
{ DownmixStereo, { "Audio", "Downmix to Stereo"}},
|
||||
|
||||
// Input / Output
|
||||
{ PadHandler, { "Input/Output", "Pad"}},
|
||||
{ KeyboardHandler, { "Input/Output", "Keyboard"}},
|
||||
{ MouseHandler, { "Input/Output", "Mouse"}},
|
||||
{ Camera, { "Input/Output", "Camera"}},
|
||||
{ CameraType, { "Input/Output", "Camera type"}},
|
||||
{ PadHandler, { "Input/Output", "Pad"}},
|
||||
{ KeyboardHandler, { "Input/Output", "Keyboard"}},
|
||||
{ MouseHandler, { "Input/Output", "Mouse"}},
|
||||
{ Camera, { "Input/Output", "Camera"}},
|
||||
{ CameraType, { "Input/Output", "Camera type"}},
|
||||
|
||||
// Misc
|
||||
{ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }},
|
||||
{StartOnBoot, { "Miscellaneous", "Automatically start games after boot" }},
|
||||
{ExitRPCS3OnFinish, { "Miscellaneous", "Exit RPCS3 when process finishes" }},
|
||||
{StartOnBoot, { "Miscellaneous", "Automatically start games after boot" }},
|
||||
{StartGameFullscreen, { "Miscellaneous", "Start games in fullscreen mode"}},
|
||||
{ShowFPSInTitle, { "Miscellaneous", "Show FPS counter in window title"}},
|
||||
{ShowWelcomeScreen, { "Miscellaneous", "Show Welcome Screen"}},
|
||||
{ShowFPSInTitle, { "Miscellaneous", "Show FPS counter in window title"}},
|
||||
{ShowWelcomeScreen, { "Miscellaneous", "Show Welcome Screen"}},
|
||||
|
||||
// Networking
|
||||
{ConnectionStatus, { "Net", "Connection status"}},
|
||||
{ConnectionStatus, { "Net", "Connection status"}},
|
||||
|
||||
// System
|
||||
{Language, { "System", "Language"}},
|
||||
{EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
||||
{Language, { "System", "Language"}},
|
||||
{EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
||||
|
||||
// Virtual File System
|
||||
{ emulatorLocation, { "VFS", "$(EmulatorDir)"}},
|
||||
{ dev_hdd0Location, { "VFS", "/dev_hdd0/" }},
|
||||
{ dev_hdd1Location, { "VFS", "/dev_hdd1/" }},
|
||||
{ dev_flashLocation, { "VFS", "/dev_flash/"}},
|
||||
{ emulatorLocation, { "VFS", "$(EmulatorDir)"}},
|
||||
{ dev_hdd0Location, { "VFS", "/dev_hdd0/" }},
|
||||
{ dev_hdd1Location, { "VFS", "/dev_hdd1/" }},
|
||||
{ dev_flashLocation, { "VFS", "/dev_flash/"}},
|
||||
{ dev_usb000Location, { "VFS", "/dev_usb000/"}},
|
||||
};
|
||||
|
||||
YAML::Node m_defaultSettings; // The default settings as a YAML node.
|
||||
YAML::Node m_currentSettings; // The current settings as a YAML node.
|
||||
fs::file m_config; //! File to read/write the config settings.
|
||||
std::string m_path;
|
||||
|
@ -57,6 +57,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
|
||||
QJsonObject json_gpu_cbo = json_gpu.value("comboboxes").toObject();
|
||||
QJsonObject json_gpu_main = json_gpu.value("main").toObject();
|
||||
QJsonObject json_gpu_deb = json_gpu.value("debug").toObject();
|
||||
QJsonObject json_gpu_slid = json_gpu.value("sliders").toObject();
|
||||
|
||||
QJsonObject json_audio = json_obj.value("audio").toObject();
|
||||
QJsonObject json_input = json_obj.value("input").toObject();
|
||||
@ -365,6 +366,7 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
|
||||
|
||||
xemu_settings->EnhanceComboBox(ui->resBox, emu_settings::Resolution);
|
||||
ui->resBox->setToolTip(json_gpu_cbo["resBox"].toString());
|
||||
ui->resBox->setItemText(ui->resBox->findData("1280x720"), "1280x720 (Recommended)");
|
||||
|
||||
xemu_settings->EnhanceComboBox(ui->aspectBox, emu_settings::AspectRatio);
|
||||
ui->aspectBox->setToolTip(json_gpu_cbo["aspectBox"].toString());
|
||||
@ -372,6 +374,31 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
|
||||
xemu_settings->EnhanceComboBox(ui->frameLimitBox, emu_settings::FrameLimit);
|
||||
ui->frameLimitBox->setToolTip(json_gpu_cbo["frameLimitBox"].toString());
|
||||
|
||||
xemu_settings->EnhanceComboBox(ui->anisotropicFilterOverride, emu_settings::AnisotropicFilterOverride, true);
|
||||
ui->anisotropicFilterOverride->setToolTip(json_gpu_cbo["anisotropicFilterOverride"].toString());
|
||||
// only allow values 0,2,4,8,16
|
||||
for (int i = ui->anisotropicFilterOverride->count() - 1; i >= 0; i--)
|
||||
{
|
||||
switch (int val = ui->anisotropicFilterOverride->itemData(i).toInt())
|
||||
{
|
||||
case 0:
|
||||
ui->anisotropicFilterOverride->setItemText(i, tr("Automatic"));
|
||||
break;
|
||||
case 1:
|
||||
ui->anisotropicFilterOverride->setItemText(i, tr("Disabled"));
|
||||
break;
|
||||
case 2:
|
||||
case 4:
|
||||
case 8:
|
||||
case 16:
|
||||
ui->anisotropicFilterOverride->setItemText(i, tr("%1x").arg(val));
|
||||
break;
|
||||
default:
|
||||
ui->anisotropicFilterOverride->removeItem(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Checkboxes: main options
|
||||
xemu_settings->EnhanceCheckBox(ui->dumpColor, emu_settings::WriteColorBuffers);
|
||||
ui->dumpColor->setToolTip(json_gpu_main["dumpColor"].toString());
|
||||
@ -391,6 +418,60 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> guiSettings, std:
|
||||
xemu_settings->EnhanceCheckBox(ui->scrictModeRendering, emu_settings::StrictRenderingMode);
|
||||
ui->scrictModeRendering->setToolTip(json_gpu_main["scrictModeRendering"].toString());
|
||||
|
||||
// Sliders
|
||||
static const auto& minmaxLabelWidth = [](const QString& sizer)
|
||||
{
|
||||
return QLabel(sizer).sizeHint().width();
|
||||
};
|
||||
|
||||
xemu_settings->EnhanceSlider(ui->resolutionScale, emu_settings::ResolutionScale, true);
|
||||
ui->gb_resolutionScale->setToolTip(json_gpu_slid["resolutionScale"].toString());
|
||||
// rename label texts to fit current state of Resolution Scale
|
||||
int resolutionScaleDef = stoi(xemu_settings->GetSettingDefault(emu_settings::ResolutionScale));
|
||||
auto ScaledResolution = [resolutionScaleDef](int percentage)
|
||||
{
|
||||
if (percentage == resolutionScaleDef) return QString("100% (Automatic)");
|
||||
return QString("%1% (%2x%3)").arg(percentage).arg(1280 * percentage / 100).arg(720 * percentage / 100);
|
||||
};
|
||||
ui->resolutionScale->setPageStep(50);
|
||||
ui->resolutionScaleMin->setText(QString::number(ui->resolutionScale->minimum()));
|
||||
ui->resolutionScaleMin->setFixedWidth(minmaxLabelWidth("00"));
|
||||
ui->resolutionScaleMax->setText(QString::number(ui->resolutionScale->maximum()));
|
||||
ui->resolutionScaleMax->setFixedWidth(minmaxLabelWidth("0000"));
|
||||
ui->resolutionScaleVal->setText(ScaledResolution(ui->resolutionScale->value()));
|
||||
connect(ui->resolutionScale, &QSlider::valueChanged, [=](int value)
|
||||
{
|
||||
ui->resolutionScaleVal->setText(ScaledResolution(value));
|
||||
});
|
||||
connect(ui->resolutionScaleReset, &QAbstractButton::clicked, [=]()
|
||||
{
|
||||
ui->resolutionScale->setValue(resolutionScaleDef);
|
||||
});
|
||||
|
||||
xemu_settings->EnhanceSlider(ui->minimumScalableDimension, emu_settings::MinimumScalableDimension, true);
|
||||
ui->gb_minimumScalableDimension->setToolTip(json_gpu_slid["minimumScalableDimension"].toString());
|
||||
// rename label texts to fit current state of Minimum Scalable Dimension
|
||||
int minimumScalableDimensionDef = stoi(xemu_settings->GetSettingDefault(emu_settings::MinimumScalableDimension));
|
||||
auto MinScalableDimension = [minimumScalableDimensionDef](int dim)
|
||||
{
|
||||
if (dim == minimumScalableDimensionDef) return QString("%1x%1 (Default)").arg(dim);
|
||||
return QString("%1x%1").arg(dim);
|
||||
};
|
||||
ui->minimumScalableDimension->setPageStep(64);
|
||||
ui->minimumScalableDimensionMin->setText(QString::number(ui->minimumScalableDimension->minimum()));
|
||||
ui->minimumScalableDimensionMin->setFixedWidth(minmaxLabelWidth("00"));
|
||||
ui->minimumScalableDimensionMax->setText(QString::number(ui->minimumScalableDimension->maximum()));
|
||||
ui->minimumScalableDimensionMax->setFixedWidth(minmaxLabelWidth("0000"));
|
||||
ui->minimumScalableDimensionVal->setText(MinScalableDimension(ui->minimumScalableDimension->value()));
|
||||
connect(ui->minimumScalableDimension, &QSlider::valueChanged, [=](int value)
|
||||
{
|
||||
ui->minimumScalableDimensionVal->setText(MinScalableDimension(value));
|
||||
});
|
||||
connect(ui->minimumScalableDimensionReset, &QAbstractButton::clicked, [=]()
|
||||
{
|
||||
ui->minimumScalableDimension->setValue(minimumScalableDimensionDef);
|
||||
});
|
||||
|
||||
// Remove renderers from the renderer Combobox if not supported
|
||||
for (const auto& renderer : render_creator.renderers)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>7</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="coreTab">
|
||||
<attribute name="title">
|
||||
@ -340,7 +340,7 @@
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4" stretch="1,1">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_26">
|
||||
<property name="title">
|
||||
@ -354,58 +354,7 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_29">
|
||||
<property name="title">
|
||||
<string>Resolution</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_22">
|
||||
<item>
|
||||
<widget class="QComboBox" name="resBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_42">
|
||||
<property name="title">
|
||||
<string>Graphics Device</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_18">
|
||||
<item>
|
||||
<widget class="QComboBox" name="graphicsAdapterBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_43">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Enhancements</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_3">
|
||||
<property name="text">
|
||||
<string>Advanced Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3" stretch="1,1">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_44">
|
||||
<property name="title">
|
||||
@ -432,23 +381,122 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6" stretch="1,1">
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true"/>
|
||||
<widget class="QGroupBox" name="groupBox_42">
|
||||
<property name="title">
|
||||
<string>Graphics Device</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_18">
|
||||
<item>
|
||||
<widget class="QComboBox" name="graphicsAdapterBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_22" stretch="1,1">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_anisotropicFilter">
|
||||
<property name="title">
|
||||
<string>Anisotropic Filter</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_54">
|
||||
<item>
|
||||
<widget class="QComboBox" name="anisotropicFilterOverride"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_antiAliasing">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Anti-Aliasing</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_56">
|
||||
<item>
|
||||
<widget class="QComboBox" name="antiAliasing"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item alignment="Qt::AlignTop">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_43">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Enhancements</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_21">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButton_3">
|
||||
<property name="text">
|
||||
<string>Advanced Settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_29">
|
||||
<property name="title">
|
||||
<string>Resolution</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_22">
|
||||
<item>
|
||||
<widget class="QComboBox" name="resBox"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7" stretch="1,1">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_46">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Additional Settings</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
|
||||
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_16">
|
||||
<item alignment="Qt::AlignTop">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="dumpColor">
|
||||
<property name="text">
|
||||
<string>Write Color Buffers</string>
|
||||
@ -494,7 +542,150 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_8" native="true"/>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_59">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_resolutionScale">
|
||||
<property name="title">
|
||||
<string>Resolution Scale</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_29">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_25" stretch="1,0">
|
||||
<item>
|
||||
<widget class="QLabel" name="resolutionScaleVal">
|
||||
<property name="text">
|
||||
<string>0</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="resolutionScaleReset">
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QWidget" name="widget_9" native="true">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_23" stretch="0,1,0">
|
||||
<property name="spacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="resolutionScaleMin">
|
||||
<property name="text">
|
||||
<string>50</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSlider" name="resolutionScale">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="resolutionScaleMax">
|
||||
<property name="text">
|
||||
<string>800</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_minimumScalableDimension">
|
||||
<property name="title">
|
||||
<string>Resolution Scale Threshold</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_57">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_26" stretch="1,0">
|
||||
<item>
|
||||
<widget class="QLabel" name="minimumScalableDimensionVal">
|
||||
<property name="text">
|
||||
<string>1x1</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="minimumScalableDimensionReset">
|
||||
<property name="text">
|
||||
<string>Reset</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_24" stretch="0,1,0">
|
||||
<property name="spacing">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="minimumScalableDimensionMin">
|
||||
<property name="text">
|
||||
<string>1</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSlider" name="minimumScalableDimension">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="minimumScalableDimensionMax">
|
||||
<property name="text">
|
||||
<string>1024</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
|
Loading…
Reference in New Issue
Block a user