aboutsummaryrefslogtreecommitdiff
path: root/src/GPU_OpenGL.h
diff options
context:
space:
mode:
authorJesse Talavera-Greenberg <jesse@jesse.tg>2023-11-09 15:54:51 -0500
committerGitHub <noreply@github.com>2023-11-09 21:54:51 +0100
commit4558be0d8eb79d276c89392b9410e6edb649db95 (patch)
tree3e2b37e31b38337adec64c5391e57ddf45af5d23 /src/GPU_OpenGL.h
parent88072a02c523e26390af6bd726608b3e567f996f (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.h12
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;