diff options
| author | Connor McLaughlin <stenzek@gmail.com> | 2019-07-18 22:17:13 +1000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-07-18 22:17:13 +1000 |
| commit | a77b571da7a31fe30f35605a90d040325cb1e595 (patch) | |
| tree | fb84b694c9028d47b15d36ff315ab6f518d02072 /Source/Core | |
| parent | 9dd8f82e78648a34bf3246dea6758215b7224aff (diff) | |
| parent | 199c565bf5fec9ba0f239a4ec8585914c3df4b9d (diff) | |
Merge pull request #8250 from JosJuice/bitrate-setting
Add dumping bitrate setting to GUI and increase default value
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/Config/GraphicsSettings.cpp | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp | 30 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h | 8 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp | 39 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h | 24 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/DolphinQt.vcxproj | 5 |
7 files changed, 99 insertions, 11 deletions
diff --git a/Source/Core/Core/Config/GraphicsSettings.cpp b/Source/Core/Core/Config/GraphicsSettings.cpp index 3913176f2b..30ed2d6959 100644 --- a/Source/Core/Core/Config/GraphicsSettings.cpp +++ b/Source/Core/Core/Config/GraphicsSettings.cpp @@ -50,7 +50,7 @@ const ConfigInfo<std::string> GFX_DUMP_FORMAT{{System::GFX, "Settings", "DumpFor const ConfigInfo<std::string> GFX_DUMP_CODEC{{System::GFX, "Settings", "DumpCodec"}, ""}; const ConfigInfo<std::string> GFX_DUMP_ENCODER{{System::GFX, "Settings", "DumpEncoder"}, ""}; const ConfigInfo<std::string> GFX_DUMP_PATH{{System::GFX, "Settings", "DumpPath"}, ""}; -const ConfigInfo<int> GFX_BITRATE_KBPS{{System::GFX, "Settings", "BitrateKbps"}, 2500}; +const ConfigInfo<int> GFX_BITRATE_KBPS{{System::GFX, "Settings", "BitrateKbps"}, 25000}; const ConfigInfo<bool> GFX_INTERNAL_RESOLUTION_FRAME_DUMPS{ {System::GFX, "Settings", "InternalResolutionFrameDumps"}, false}; const ConfigInfo<bool> GFX_ENABLE_GPU_TEXTURE_DECODING{ diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt index 1275e0adae..1bf9844ff6 100644 --- a/Source/Core/DolphinQt/CMakeLists.txt +++ b/Source/Core/DolphinQt/CMakeLists.txt @@ -73,6 +73,8 @@ add_executable(dolphin-emu Config/Graphics/GraphicsBool.h Config/Graphics/GraphicsChoice.cpp Config/Graphics/GraphicsChoice.h + Config/Graphics/GraphicsInteger.cpp + Config/Graphics/GraphicsInteger.h Config/Graphics/GraphicsRadio.cpp Config/Graphics/GraphicsRadio.h Config/Graphics/GraphicsSlider.cpp diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp index 86aad9fc68..f84885798f 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp @@ -7,6 +7,8 @@ #include <QCheckBox> #include <QGridLayout> #include <QGroupBox> +#include <QLabel> +#include <QSpinBox> #include <QVBoxLayout> #include "Core/Config/GraphicsSettings.h" @@ -16,6 +18,7 @@ #include "DolphinQt/Config/Graphics/GraphicsBool.h" #include "DolphinQt/Config/Graphics/GraphicsChoice.h" +#include "DolphinQt/Config/Graphics/GraphicsInteger.h" #include "DolphinQt/Config/Graphics/GraphicsWindow.h" #include "DolphinQt/Settings.h" @@ -66,13 +69,10 @@ void AdvancedWidget::CreateWidgets() m_load_custom_textures = new GraphicsBool(tr("Load Custom Textures"), Config::GFX_HIRES_TEXTURES); m_prefetch_custom_textures = new GraphicsBool(tr("Prefetch Custom Textures"), Config::GFX_CACHE_HIRES_TEXTURES); - m_use_fullres_framedumps = new GraphicsBool(tr("Internal Resolution Frame Dumps"), - Config::GFX_INTERNAL_RESOLUTION_FRAME_DUMPS); m_dump_efb_target = new GraphicsBool(tr("Dump EFB Target"), Config::GFX_DUMP_EFB_TARGET); m_disable_vram_copies = new GraphicsBool(tr("Disable EFB VRAM Copies"), Config::GFX_HACK_DISABLE_COPY_TO_VRAM); m_enable_freelook = new GraphicsBool(tr("Free Look"), Config::GFX_FREE_LOOK); - m_dump_use_ffv1 = new GraphicsBool(tr("Frame Dumps Use FFV1"), Config::GFX_USE_FFV1); utility_layout->addWidget(m_load_custom_textures, 0, 0); utility_layout->addWidget(m_prefetch_custom_textures, 0, 1); @@ -83,9 +83,21 @@ void AdvancedWidget::CreateWidgets() utility_layout->addWidget(m_dump_textures, 2, 0); utility_layout->addWidget(m_dump_efb_target, 2, 1); - utility_layout->addWidget(m_use_fullres_framedumps, 3, 0); + // Frame dumping + auto* dump_box = new QGroupBox(tr("Frame Dumping")); + auto* dump_layout = new QGridLayout(); + dump_box->setLayout(dump_layout); + + m_use_fullres_framedumps = new GraphicsBool(tr("Dump at Internal Resolution"), + Config::GFX_INTERNAL_RESOLUTION_FRAME_DUMPS); + m_dump_use_ffv1 = new GraphicsBool(tr("Use Lossless Codec (FFV1)"), Config::GFX_USE_FFV1); + m_dump_bitrate = new GraphicsInteger(0, 1000000, Config::GFX_BITRATE_KBPS, 1000); + + dump_layout->addWidget(m_use_fullres_framedumps, 0, 0); #if defined(HAVE_FFMPEG) - utility_layout->addWidget(m_dump_use_ffv1, 3, 1); + dump_layout->addWidget(m_dump_use_ffv1, 0, 1); + dump_layout->addWidget(new QLabel(tr("Bitrate (kbps):")), 1, 0); + dump_layout->addWidget(m_dump_bitrate, 1, 1); #endif // Misc. @@ -120,6 +132,7 @@ void AdvancedWidget::CreateWidgets() main_layout->addWidget(debugging_box); main_layout->addWidget(utility_box); + main_layout->addWidget(dump_box); main_layout->addWidget(misc_box); main_layout->addWidget(experimental_box); main_layout->addStretch(); @@ -130,19 +143,22 @@ void AdvancedWidget::CreateWidgets() void AdvancedWidget::ConnectWidgets() { connect(m_load_custom_textures, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); + connect(m_dump_use_ffv1, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); connect(m_enable_prog_scan, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings); } void AdvancedWidget::LoadSettings() { m_prefetch_custom_textures->setEnabled(Config::Get(Config::GFX_HIRES_TEXTURES)); + m_dump_bitrate->setEnabled(!Config::Get(Config::GFX_USE_FFV1)); + m_enable_prog_scan->setChecked(Config::Get(Config::SYSCONF_PROGRESSIVE_SCAN)); } void AdvancedWidget::SaveSettings() { - const auto hires_enabled = Config::Get(Config::GFX_HIRES_TEXTURES); - m_prefetch_custom_textures->setEnabled(hires_enabled); + m_prefetch_custom_textures->setEnabled(Config::Get(Config::GFX_HIRES_TEXTURES)); + m_dump_bitrate->setEnabled(!Config::Get(Config::GFX_USE_FFV1)); Config::SetBase(Config::SYSCONF_PROGRESSIVE_SCAN, m_enable_prog_scan->isChecked()); } diff --git a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h index acfbc78392..1c973c58ed 100644 --- a/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h +++ b/Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h @@ -8,6 +8,7 @@ class GraphicsWindow; class QCheckBox; +class QSpinBox; class AdvancedWidget final : public GraphicsWidget { @@ -36,11 +37,14 @@ private: QCheckBox* m_prefetch_custom_textures; QCheckBox* m_dump_efb_target; QCheckBox* m_disable_vram_copies; - QCheckBox* m_dump_use_ffv1; QCheckBox* m_load_custom_textures; - QCheckBox* m_use_fullres_framedumps; QCheckBox* m_enable_freelook; + // Frame dumping + QCheckBox* m_dump_use_ffv1; + QCheckBox* m_use_fullres_framedumps; + QSpinBox* m_dump_bitrate; + // Misc QCheckBox* m_enable_cropping; QCheckBox* m_enable_prog_scan; diff --git a/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp b/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp new file mode 100644 index 0000000000..cabca80d52 --- /dev/null +++ b/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp @@ -0,0 +1,39 @@ +// Copyright 2019 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#include "DolphinQt/Config/Graphics/GraphicsInteger.h" + +#include <QSignalBlocker> + +#include "Common/Config/Config.h" + +#include "DolphinQt/Settings.h" + +GraphicsInteger::GraphicsInteger(int minimum, int maximum, const Config::ConfigInfo<int>& setting, + int step) + : QSpinBox(), m_setting(setting) +{ + setMinimum(minimum); + setMaximum(maximum); + setSingleStep(step); + + setValue(Config::Get(setting)); + + connect(this, static_cast<void (GraphicsInteger::*)(int)>(&GraphicsInteger::valueChanged), this, + &GraphicsInteger::Update); + + connect(&Settings::Instance(), &Settings::ConfigChanged, [this] { + QFont bf = font(); + bf.setBold(Config::GetActiveLayerForConfig(m_setting) != Config::LayerType::Base); + setFont(bf); + + const QSignalBlocker blocker(this); + setValue(Config::Get(m_setting)); + }); +} + +void GraphicsInteger::Update(int value) +{ + Config::SetBaseOrCurrent(m_setting, value); +} diff --git a/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h b/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h new file mode 100644 index 0000000000..84de36d406 --- /dev/null +++ b/Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h @@ -0,0 +1,24 @@ +// Copyright 2019 Dolphin Emulator Project +// Licensed under GPLv2+ +// Refer to the license.txt file included. + +#pragma once + +#include <QSpinBox> + +namespace Config +{ +template <typename T> +struct ConfigInfo; +} + +class GraphicsInteger : public QSpinBox +{ + Q_OBJECT +public: + GraphicsInteger(int minimum, int maximum, const Config::ConfigInfo<int>& setting, int step = 1); + void Update(int value); + +private: + const Config::ConfigInfo<int>& m_setting; +}; diff --git a/Source/Core/DolphinQt/DolphinQt.vcxproj b/Source/Core/DolphinQt/DolphinQt.vcxproj index 151c4032c7..2deb34cffc 100644 --- a/Source/Core/DolphinQt/DolphinQt.vcxproj +++ b/Source/Core/DolphinQt/DolphinQt.vcxproj @@ -97,6 +97,7 @@ <QtMoc Include="Config\Graphics\GeneralWidget.h" /> <QtMoc Include="Config\Graphics\GraphicsBool.h" /> <QtMoc Include="Config\Graphics\GraphicsChoice.h" /> + <QtMoc Include="Config\Graphics\GraphicsInteger.h" /> <QtMoc Include="Config\Graphics\GraphicsRadio.h" /> <QtMoc Include="Config\Graphics\GraphicsSlider.h" /> <QtMoc Include="Config\Graphics\GraphicsWidget.h" /> @@ -215,6 +216,7 @@ <ClCompile Include="$(QtMocOutPrefix)GeneralWidget.cpp" /> <ClCompile Include="$(QtMocOutPrefix)GraphicsBool.cpp" /> <ClCompile Include="$(QtMocOutPrefix)GraphicsChoice.cpp" /> + <ClCompile Include="$(QtMocOutPrefix)GraphicsInteger.cpp" /> <ClCompile Include="$(QtMocOutPrefix)GraphicsRadio.cpp" /> <ClCompile Include="$(QtMocOutPrefix)GraphicsSlider.cpp" /> <ClCompile Include="$(QtMocOutPrefix)GraphicsWidget.cpp" /> @@ -299,6 +301,7 @@ <ClCompile Include="Config\Graphics\GeneralWidget.cpp" /> <ClCompile Include="Config\Graphics\GraphicsBool.cpp" /> <ClCompile Include="Config\Graphics\GraphicsChoice.cpp" /> + <ClCompile Include="Config\Graphics\GraphicsInteger.cpp" /> <ClCompile Include="Config\Graphics\GraphicsRadio.cpp" /> <ClCompile Include="Config\Graphics\GraphicsSlider.cpp" /> <ClCompile Include="Config\Graphics\GraphicsWidget.cpp" /> @@ -507,4 +510,4 @@ <Message Text="Copy: @(BinaryFiles) -> $(BinaryOutputDir)" Importance="High" /> <Copy SourceFiles="@(BinaryFiles)" DestinationFolder="$(BinaryOutputDir)" /> </Target> -</Project> +</Project>
\ No newline at end of file |
