backup (realized that the shader files weren't added to git)
[demo] / src / shader.h
index 204d053..1472fb3 100644 (file)
@@ -2,32 +2,37 @@
 #define SHADER_H_
 
 enum SType {
+       SDR_UNKNOWN,
        SDR_VERTEX,
        SDR_FRAGMENT
 };
 
 class Shader {
-private:
-       SType type;
+protected:
+       virtual bool create(char *buf, unsigned int bsz, const char *fname) = 0;
 
 public:
+       SType type;
+
        Shader();
-       ~Shader();
+       virtual ~Shader() = 0;
 
+       virtual void destroy() = 0;
        virtual bool load(const char *fname, SType type);
+       virtual void attach(unsigned int prog) = 0; // if vulkan -> leave empty
 };
 
 class ShaderProgram {
-private:
+protected:
        Shader *shaders[2];
 
 public:
        ShaderProgram();
-       virtual ~ShaderProgram() = 0;
+       virtual ~ShaderProgram();
 
-       void add_shader(Shader *sdr, SType type);
-       bool link();
-       void bind();
+       virtual void add_shader(Shader *sdr);
+       virtual bool link() = 0;
+       virtual bool load(const char *vfname, const char *ffname) = 0;
 };
 
 #endif // SHADER_H_