summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorConnor McLaughlin <stenzek@gmail.com>2019-07-18 22:17:13 +1000
committerGitHub <noreply@github.com>2019-07-18 22:17:13 +1000
commita77b571da7a31fe30f35605a90d040325cb1e595 (patch)
treefb84b694c9028d47b15d36ff315ab6f518d02072 /Source/Core
parent9dd8f82e78648a34bf3246dea6758215b7224aff (diff)
parent199c565bf5fec9ba0f239a4ec8585914c3df4b9d (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.cpp2
-rw-r--r--Source/Core/DolphinQt/CMakeLists.txt2
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.cpp30
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/AdvancedWidget.h8
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp39
-rw-r--r--Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h24
-rw-r--r--Source/Core/DolphinQt/DolphinQt.vcxproj5
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) -&gt; $(BinaryOutputDir)" Importance="High" />
<Copy SourceFiles="@(BinaryFiles)" DestinationFolder="$(BinaryOutputDir)" />
</Target>
-</Project>
+</Project> \ No newline at end of file