summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/Graphics/HacksWidget.h
blob: 5569e14abfc2c1baef9a4c527c1b4ff5a59b1968 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
// Copyright 2017 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later

#pragma once

#include <QWidget>

class ConfigBool;
class ConfigSlider;
class ConfigSliderLabel;
class GraphicsPane;
class QString;

namespace Config
{
class Layer;
}  // namespace Config

class HacksWidget final : public QWidget
{
  Q_OBJECT
public:
  explicit HacksWidget(GraphicsPane* gfx_pane);

private:
  void CreateWidgets();
  void ConnectWidgets();
  void AddDescriptions();

  void UpdateGPUTextureDecodingEnabled(const QString& backend_name);
  void UpdateBoundingBoxEnabled(const QString& backend_name);
  void UpdateDeferEFBCopiesEnabled();
  void UpdateSkipPresentingDuplicateFramesEnabled();

  void OnBackendChanged(const QString& backend_name);

  // EFB
  ConfigBool* m_skip_efb_cpu;
  ConfigBool* m_ignore_format_changes;
  ConfigBool* m_store_efb_copies;
  ConfigBool* m_defer_efb_copies;

  // Texture Cache
  ConfigSliderLabel* m_accuracy_label;
  ConfigSlider* m_accuracy;
  ConfigBool* m_gpu_texture_decoding;

  // External Framebuffer
  ConfigBool* m_store_xfb_copies;
  ConfigBool* m_immediate_xfb;
  ConfigBool* m_skip_duplicate_xfbs;

  // Other
  ConfigBool* m_fast_depth_calculation;
  ConfigBool* m_disable_bounding_box;
  ConfigBool* m_vertex_rounding;
  ConfigBool* m_vi_skip;
  ConfigBool* m_save_texture_cache_state;

  Config::Layer* m_game_layer = nullptr;
};