From 0bf4ad9e4a9e1c97e92aa23a365405dfef89bd7c Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 17 Jan 2021 19:36:30 +0000 Subject: Big reshuffle Fixes code quality warnings now picked up. --- gfx/gl/shader.h | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 gfx/gl/shader.h (limited to 'gfx/gl/shader.h') diff --git a/gfx/gl/shader.h b/gfx/gl/shader.h new file mode 100644 index 0000000..2072199 --- /dev/null +++ b/gfx/gl/shader.h @@ -0,0 +1,35 @@ +#ifndef SHADER_INCLUDED_H +#define SHADER_INCLUDED_H + +#include +#include +#include +#include + +class Camera; +class Transform; + +class Shader { +public: + explicit Shader(const std::string & fileName); + virtual ~Shader(); + + NO_COPY(Shader); + NO_MOVE(Shader); + + void Bind() const; + void Update(const Transform & transform, const Camera & camera) const; + +private: + static constexpr unsigned int NUM_SHADERS = 2; + static constexpr unsigned int NUM_UNIFORMS = 3; + + static void CheckShaderError(GLuint shader, GLuint flag, bool isProgram, const std::string & errorMessage); + static GLuint CreateShader(const GLchar * text, GLint len, unsigned int type); + + GLuint m_program; + std::array m_shaders; + std::array m_uniforms; +}; + +#endif -- cgit v1.2.3