diff options
author | Jesse Talavera-Greenberg <jesse@jesse.tg> | 2023-11-09 15:54:51 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-09 21:54:51 +0100 |
commit | 4558be0d8eb79d276c89392b9410e6edb649db95 (patch) | |
tree | 3e2b37e31b38337adec64c5391e57ddf45af5d23 /src/GPU2D.h | |
parent | 88072a02c523e26390af6bd726608b3e567f996f (diff) |
Refactor the GPU to be object-oriented (#1873)
* Refactor GPU3D to be an object
- Who has two thumbs and is the sworn enemy of global state? This guy!
* Refactor GPU itself to be an object
- Wow, it's used in a lot of places
- Also introduce a new `Melon` namespace for a few classes
- I expect other classes will be moved into `Melon` over time
* Change signature of Renderer3D::SetRenderSettings
- Make it noexcept, and its argument const
* Remove some stray whitespace
Diffstat (limited to 'src/GPU2D.h')
-rw-r--r-- | src/GPU2D.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/GPU2D.h b/src/GPU2D.h index ffef57d..ad052bf 100644 --- a/src/GPU2D.h +++ b/src/GPU2D.h @@ -22,13 +22,20 @@ #include "types.h" #include "Savestate.h" +namespace Melon +{ +class GPU; +} + namespace GPU2D { class Unit { public: - Unit(u32 num); + // take a reference to the GPU so we can access its state + // and ensure that it's not null + Unit(u32 num, Melon::GPU& gpu); Unit(const Unit&) = delete; Unit& operator=(const Unit&) = delete; @@ -116,6 +123,8 @@ public: u32 CaptureCnt; u16 MasterBrightness; +private: + Melon::GPU& GPU; }; class Renderer2D |