projects
/
demo
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backup (realized that the shader files weren't added to git)
[demo]
/
src
/
shader.h
diff --git
a/src/shader.h
b/src/shader.h
index
204d053
..
1472fb3
100644
(file)
--- a/
src/shader.h
+++ b/
src/shader.h
@@
-2,32
+2,37
@@
#define SHADER_H_
enum SType {
#define SHADER_H_
enum SType {
+ SDR_UNKNOWN,
SDR_VERTEX,
SDR_FRAGMENT
};
class Shader {
SDR_VERTEX,
SDR_FRAGMENT
};
class Shader {
-private:
- SType type;
+protected:
+ virtual bool create(char *buf, unsigned int bsz, const char *fname) = 0;
public:
public:
+ SType type;
+
Shader();
Shader();
- ~Shader();
+ virtual ~Shader() = 0;
+ virtual void destroy() = 0;
virtual bool load(const char *fname, SType type);
virtual bool load(const char *fname, SType type);
+ virtual void attach(unsigned int prog) = 0; // if vulkan -> leave empty
};
class ShaderProgram {
};
class ShaderProgram {
-private:
+protected:
Shader *shaders[2];
public:
ShaderProgram();
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_
};
#endif // SHADER_H_