mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-03-12 06:39:14 +01:00
Merge pull request #8250 from JosJuice/bitrate-setting
Add dumping bitrate setting to GUI and increase default value
This commit is contained in:
commit
a77b571da7
@ -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_CODEC{{System::GFX, "Settings", "DumpCodec"}, ""};
|
||||||
const ConfigInfo<std::string> GFX_DUMP_ENCODER{{System::GFX, "Settings", "DumpEncoder"}, ""};
|
const ConfigInfo<std::string> GFX_DUMP_ENCODER{{System::GFX, "Settings", "DumpEncoder"}, ""};
|
||||||
const ConfigInfo<std::string> GFX_DUMP_PATH{{System::GFX, "Settings", "DumpPath"}, ""};
|
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{
|
const ConfigInfo<bool> GFX_INTERNAL_RESOLUTION_FRAME_DUMPS{
|
||||||
{System::GFX, "Settings", "InternalResolutionFrameDumps"}, false};
|
{System::GFX, "Settings", "InternalResolutionFrameDumps"}, false};
|
||||||
const ConfigInfo<bool> GFX_ENABLE_GPU_TEXTURE_DECODING{
|
const ConfigInfo<bool> GFX_ENABLE_GPU_TEXTURE_DECODING{
|
||||||
|
@ -73,6 +73,8 @@ add_executable(dolphin-emu
|
|||||||
Config/Graphics/GraphicsBool.h
|
Config/Graphics/GraphicsBool.h
|
||||||
Config/Graphics/GraphicsChoice.cpp
|
Config/Graphics/GraphicsChoice.cpp
|
||||||
Config/Graphics/GraphicsChoice.h
|
Config/Graphics/GraphicsChoice.h
|
||||||
|
Config/Graphics/GraphicsInteger.cpp
|
||||||
|
Config/Graphics/GraphicsInteger.h
|
||||||
Config/Graphics/GraphicsRadio.cpp
|
Config/Graphics/GraphicsRadio.cpp
|
||||||
Config/Graphics/GraphicsRadio.h
|
Config/Graphics/GraphicsRadio.h
|
||||||
Config/Graphics/GraphicsSlider.cpp
|
Config/Graphics/GraphicsSlider.cpp
|
||||||
|
@ -7,6 +7,8 @@
|
|||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
#include <QGridLayout>
|
#include <QGridLayout>
|
||||||
#include <QGroupBox>
|
#include <QGroupBox>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QSpinBox>
|
||||||
#include <QVBoxLayout>
|
#include <QVBoxLayout>
|
||||||
|
|
||||||
#include "Core/Config/GraphicsSettings.h"
|
#include "Core/Config/GraphicsSettings.h"
|
||||||
@ -16,6 +18,7 @@
|
|||||||
|
|
||||||
#include "DolphinQt/Config/Graphics/GraphicsBool.h"
|
#include "DolphinQt/Config/Graphics/GraphicsBool.h"
|
||||||
#include "DolphinQt/Config/Graphics/GraphicsChoice.h"
|
#include "DolphinQt/Config/Graphics/GraphicsChoice.h"
|
||||||
|
#include "DolphinQt/Config/Graphics/GraphicsInteger.h"
|
||||||
#include "DolphinQt/Config/Graphics/GraphicsWindow.h"
|
#include "DolphinQt/Config/Graphics/GraphicsWindow.h"
|
||||||
#include "DolphinQt/Settings.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_load_custom_textures = new GraphicsBool(tr("Load Custom Textures"), Config::GFX_HIRES_TEXTURES);
|
||||||
m_prefetch_custom_textures =
|
m_prefetch_custom_textures =
|
||||||
new GraphicsBool(tr("Prefetch Custom Textures"), Config::GFX_CACHE_HIRES_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_dump_efb_target = new GraphicsBool(tr("Dump EFB Target"), Config::GFX_DUMP_EFB_TARGET);
|
||||||
m_disable_vram_copies =
|
m_disable_vram_copies =
|
||||||
new GraphicsBool(tr("Disable EFB VRAM Copies"), Config::GFX_HACK_DISABLE_COPY_TO_VRAM);
|
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_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_load_custom_textures, 0, 0);
|
||||||
utility_layout->addWidget(m_prefetch_custom_textures, 0, 1);
|
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_textures, 2, 0);
|
||||||
utility_layout->addWidget(m_dump_efb_target, 2, 1);
|
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)
|
#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
|
#endif
|
||||||
|
|
||||||
// Misc.
|
// Misc.
|
||||||
@ -120,6 +132,7 @@ void AdvancedWidget::CreateWidgets()
|
|||||||
|
|
||||||
main_layout->addWidget(debugging_box);
|
main_layout->addWidget(debugging_box);
|
||||||
main_layout->addWidget(utility_box);
|
main_layout->addWidget(utility_box);
|
||||||
|
main_layout->addWidget(dump_box);
|
||||||
main_layout->addWidget(misc_box);
|
main_layout->addWidget(misc_box);
|
||||||
main_layout->addWidget(experimental_box);
|
main_layout->addWidget(experimental_box);
|
||||||
main_layout->addStretch();
|
main_layout->addStretch();
|
||||||
@ -130,19 +143,22 @@ void AdvancedWidget::CreateWidgets()
|
|||||||
void AdvancedWidget::ConnectWidgets()
|
void AdvancedWidget::ConnectWidgets()
|
||||||
{
|
{
|
||||||
connect(m_load_custom_textures, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings);
|
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);
|
connect(m_enable_prog_scan, &QCheckBox::toggled, this, &AdvancedWidget::SaveSettings);
|
||||||
}
|
}
|
||||||
|
|
||||||
void AdvancedWidget::LoadSettings()
|
void AdvancedWidget::LoadSettings()
|
||||||
{
|
{
|
||||||
m_prefetch_custom_textures->setEnabled(Config::Get(Config::GFX_HIRES_TEXTURES));
|
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));
|
m_enable_prog_scan->setChecked(Config::Get(Config::SYSCONF_PROGRESSIVE_SCAN));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AdvancedWidget::SaveSettings()
|
void AdvancedWidget::SaveSettings()
|
||||||
{
|
{
|
||||||
const auto hires_enabled = Config::Get(Config::GFX_HIRES_TEXTURES);
|
m_prefetch_custom_textures->setEnabled(Config::Get(Config::GFX_HIRES_TEXTURES));
|
||||||
m_prefetch_custom_textures->setEnabled(hires_enabled);
|
m_dump_bitrate->setEnabled(!Config::Get(Config::GFX_USE_FFV1));
|
||||||
|
|
||||||
Config::SetBase(Config::SYSCONF_PROGRESSIVE_SCAN, m_enable_prog_scan->isChecked());
|
Config::SetBase(Config::SYSCONF_PROGRESSIVE_SCAN, m_enable_prog_scan->isChecked());
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
class GraphicsWindow;
|
class GraphicsWindow;
|
||||||
class QCheckBox;
|
class QCheckBox;
|
||||||
|
class QSpinBox;
|
||||||
|
|
||||||
class AdvancedWidget final : public GraphicsWidget
|
class AdvancedWidget final : public GraphicsWidget
|
||||||
{
|
{
|
||||||
@ -36,11 +37,14 @@ private:
|
|||||||
QCheckBox* m_prefetch_custom_textures;
|
QCheckBox* m_prefetch_custom_textures;
|
||||||
QCheckBox* m_dump_efb_target;
|
QCheckBox* m_dump_efb_target;
|
||||||
QCheckBox* m_disable_vram_copies;
|
QCheckBox* m_disable_vram_copies;
|
||||||
QCheckBox* m_dump_use_ffv1;
|
|
||||||
QCheckBox* m_load_custom_textures;
|
QCheckBox* m_load_custom_textures;
|
||||||
QCheckBox* m_use_fullres_framedumps;
|
|
||||||
QCheckBox* m_enable_freelook;
|
QCheckBox* m_enable_freelook;
|
||||||
|
|
||||||
|
// Frame dumping
|
||||||
|
QCheckBox* m_dump_use_ffv1;
|
||||||
|
QCheckBox* m_use_fullres_framedumps;
|
||||||
|
QSpinBox* m_dump_bitrate;
|
||||||
|
|
||||||
// Misc
|
// Misc
|
||||||
QCheckBox* m_enable_cropping;
|
QCheckBox* m_enable_cropping;
|
||||||
QCheckBox* m_enable_prog_scan;
|
QCheckBox* m_enable_prog_scan;
|
||||||
|
39
Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp
Normal file
39
Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.cpp
Normal file
@ -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);
|
||||||
|
}
|
24
Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h
Normal file
24
Source/Core/DolphinQt/Config/Graphics/GraphicsInteger.h
Normal file
@ -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;
|
||||||
|
};
|
@ -97,6 +97,7 @@
|
|||||||
<QtMoc Include="Config\Graphics\GeneralWidget.h" />
|
<QtMoc Include="Config\Graphics\GeneralWidget.h" />
|
||||||
<QtMoc Include="Config\Graphics\GraphicsBool.h" />
|
<QtMoc Include="Config\Graphics\GraphicsBool.h" />
|
||||||
<QtMoc Include="Config\Graphics\GraphicsChoice.h" />
|
<QtMoc Include="Config\Graphics\GraphicsChoice.h" />
|
||||||
|
<QtMoc Include="Config\Graphics\GraphicsInteger.h" />
|
||||||
<QtMoc Include="Config\Graphics\GraphicsRadio.h" />
|
<QtMoc Include="Config\Graphics\GraphicsRadio.h" />
|
||||||
<QtMoc Include="Config\Graphics\GraphicsSlider.h" />
|
<QtMoc Include="Config\Graphics\GraphicsSlider.h" />
|
||||||
<QtMoc Include="Config\Graphics\GraphicsWidget.h" />
|
<QtMoc Include="Config\Graphics\GraphicsWidget.h" />
|
||||||
@ -215,6 +216,7 @@
|
|||||||
<ClCompile Include="$(QtMocOutPrefix)GeneralWidget.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GeneralWidget.cpp" />
|
||||||
<ClCompile Include="$(QtMocOutPrefix)GraphicsBool.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsBool.cpp" />
|
||||||
<ClCompile Include="$(QtMocOutPrefix)GraphicsChoice.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsChoice.cpp" />
|
||||||
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsInteger.cpp" />
|
||||||
<ClCompile Include="$(QtMocOutPrefix)GraphicsRadio.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsRadio.cpp" />
|
||||||
<ClCompile Include="$(QtMocOutPrefix)GraphicsSlider.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsSlider.cpp" />
|
||||||
<ClCompile Include="$(QtMocOutPrefix)GraphicsWidget.cpp" />
|
<ClCompile Include="$(QtMocOutPrefix)GraphicsWidget.cpp" />
|
||||||
@ -299,6 +301,7 @@
|
|||||||
<ClCompile Include="Config\Graphics\GeneralWidget.cpp" />
|
<ClCompile Include="Config\Graphics\GeneralWidget.cpp" />
|
||||||
<ClCompile Include="Config\Graphics\GraphicsBool.cpp" />
|
<ClCompile Include="Config\Graphics\GraphicsBool.cpp" />
|
||||||
<ClCompile Include="Config\Graphics\GraphicsChoice.cpp" />
|
<ClCompile Include="Config\Graphics\GraphicsChoice.cpp" />
|
||||||
|
<ClCompile Include="Config\Graphics\GraphicsInteger.cpp" />
|
||||||
<ClCompile Include="Config\Graphics\GraphicsRadio.cpp" />
|
<ClCompile Include="Config\Graphics\GraphicsRadio.cpp" />
|
||||||
<ClCompile Include="Config\Graphics\GraphicsSlider.cpp" />
|
<ClCompile Include="Config\Graphics\GraphicsSlider.cpp" />
|
||||||
<ClCompile Include="Config\Graphics\GraphicsWidget.cpp" />
|
<ClCompile Include="Config\Graphics\GraphicsWidget.cpp" />
|
||||||
@ -507,4 +510,4 @@
|
|||||||
<Message Text="Copy: @(BinaryFiles) -> $(BinaryOutputDir)" Importance="High" />
|
<Message Text="Copy: @(BinaryFiles) -> $(BinaryOutputDir)" Importance="High" />
|
||||||
<Copy SourceFiles="@(BinaryFiles)" DestinationFolder="$(BinaryOutputDir)" />
|
<Copy SourceFiles="@(BinaryFiles)" DestinationFolder="$(BinaryOutputDir)" />
|
||||||
</Target>
|
</Target>
|
||||||
</Project>
|
</Project>
|
Loading…
x
Reference in New Issue
Block a user