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/GPU_OpenGL.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/GPU_OpenGL.h')
-rw-r--r-- | src/GPU_OpenGL.h | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/GPU_OpenGL.h b/src/GPU_OpenGL.h index 3841df1..3763b6b 100644 --- a/src/GPU_OpenGL.h +++ b/src/GPU_OpenGL.h @@ -23,29 +23,29 @@ #include <array> #include <memory> -namespace GPU +namespace Melon { - +class GPU; struct RenderSettings; class GLCompositor { public: - static std::unique_ptr<GLCompositor> New() noexcept; + static std::unique_ptr<GLCompositor> New(Melon::GPU& gpu) noexcept; GLCompositor(const GLCompositor&) = delete; GLCompositor& operator=(const GLCompositor&) = delete; ~GLCompositor(); void Reset(); - void SetRenderSettings(RenderSettings& settings); + void SetRenderSettings(const RenderSettings& settings) noexcept; void Stop(); void RenderFrame(); void BindOutputTexture(int buf); private: - GLCompositor(std::array<GLuint, 3> CompShader) noexcept; - + GLCompositor(std::array<GLuint, 3> CompShader, Melon::GPU& gpu) noexcept; + Melon::GPU& GPU; int Scale; int ScreenH, ScreenW; |