From 4e1e30a5e5edfe36410e3da095ad98e181a29ce9 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 12 Dec 2021 16:00:54 +0000 Subject: Split 3D specifics of programs out of a base class --- gfx/gl/shader.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'gfx/gl/shader.h') diff --git a/gfx/gl/shader.h b/gfx/gl/shader.h index 3ee9449..5b3aab8 100644 --- a/gfx/gl/shader.h +++ b/gfx/gl/shader.h @@ -9,6 +9,15 @@ class Location; +class ProgramHandleBase { +public: + ProgramHandleBase(GLuint, GLuint); + using ProgramRef = glRef; + + ProgramRef m_program; + GLint viewProjection_uniform, model_uniform; +}; + class Shader { public: enum class Program { Basic = 0, Water = 1, LandMass = 2, StaticPos = 3 }; @@ -20,13 +29,9 @@ public: void setUniform(const GLchar *, glm::vec3 dir) const; private: - class ProgramHandle { + class ProgramHandle : public ProgramHandleBase { public: ProgramHandle(GLuint, GLuint); - using ProgramRef = glRef; - - ProgramRef m_program; - GLint viewProjection_uniform, model_uniform; }; std::array programs; -- cgit v1.2.3