--- /dev/null
+#ifndef SHADER_GL_H_
+#define SHADER_GL_H_
+
+#include "shader.h"
+
+class ShaderGL : public Shader {
+protected:
+ /* bsz for vulkan, in opengl buf is 0 terminated */
+ unsigned int sdr;
+ virtual bool create(char *buf, unsigned int bsz, const char *fname);
+
+public:
+ ShaderGL();
+ virtual ~ShaderGL();
+
+ virtual void destroy();
+ virtual void attach(unsigned int prog);
+};
+
+class ShaderProgramGL : public ShaderProgram {
+protected:
+ unsigned int prog;
+
+public:
+ ShaderProgramGL();
+ virtual ~ShaderProgramGL();
+
+ void destroy();
+ void delete_shaders();
+ virtual bool link();
+ virtual bool load(const char *vfname, const char *ffname);
+};
+
+#endif // SHADER_GL_H_
\ No newline at end of file