PostProcessing: Split into internal and display chains

This commit is contained in:
Stenzek
2024-06-28 15:11:14 +10:00
parent 810ce1ce57
commit 0c3cf1f5f8
12 changed files with 615 additions and 518 deletions

View File

@ -1,26 +1,36 @@
// SPDX-FileCopyrightText: 2019-2022 Connor McLaughlin <stenzek@gmail.com>
// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <stenzek@gmail.com>
// SPDX-License-Identifier: (GPL-3.0 OR CC-BY-NC-ND-4.0)
#pragma once
#include "ui_postprocessingsettingswidget.h"
#include "ui_postprocessingchainconfigwidget.h"
#include "util/postprocessing.h"
#include <QtWidgets/QTableWidget>
#include <QtWidgets/QWidget>
class SettingsWindow;
class PostProcessingShaderConfigWidget;
class PostProcessingSettingsWidget : public QWidget
class PostProcessingSettingsWidget : public QTabWidget
{
Q_OBJECT
public:
PostProcessingSettingsWidget(SettingsWindow* dialog, QWidget* parent);
~PostProcessingSettingsWidget();
};
class PostProcessingChainConfigWidget : public QWidget
{
Q_OBJECT
friend PostProcessingShaderConfigWidget;
public:
PostProcessingSettingsWidget(SettingsWindow* dialog, QWidget* parent);
~PostProcessingSettingsWidget();
PostProcessingChainConfigWidget(SettingsWindow* dialog, QWidget* parent, const char* section);
~PostProcessingChainConfigWidget();
private Q_SLOTS:
void onAddButtonClicked();
@ -44,7 +54,9 @@ private:
SettingsWindow* m_dialog;
Ui::PostProcessingSettingsWidget m_ui;
Ui::PostProcessingChainConfigWidget m_ui;
const char* m_section;
PostProcessingShaderConfigWidget* m_shader_config = nullptr;
};
@ -54,8 +66,8 @@ class PostProcessingShaderConfigWidget : public QWidget
Q_OBJECT
public:
PostProcessingShaderConfigWidget(QWidget* parent, PostProcessingSettingsWidget* widget, u32 stage_index,
std::vector<PostProcessing::ShaderOption> options);
PostProcessingShaderConfigWidget(QWidget* parent, PostProcessingChainConfigWidget* widget, const char* section,
u32 stage_index, std::vector<PostProcessing::ShaderOption> options);
~PostProcessingShaderConfigWidget();
private Q_SLOTS:
@ -67,9 +79,10 @@ protected:
QGridLayout* m_layout;
PostProcessingSettingsWidget* m_widget;
PostProcessingChainConfigWidget* m_widget;
std::vector<QWidget*> m_widgets;
const char* m_section;
u32 m_stage_index;
std::vector<PostProcessing::ShaderOption> m_options;
};