3dphotoshoot
annotate src/shader.h @ 20:c14613d27a3a
writing a C++ shader class for this
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 11 Jun 2015 02:53:43 +0300 |
parents | |
children | 4ca4e3c5a754 |
rev | line source |
---|---|
nuclear@20 | 1 #ifndef SHADER_H_ |
nuclear@20 | 2 #define SHADER_H_ |
nuclear@20 | 3 |
nuclear@20 | 4 #include <vector> |
nuclear@20 | 5 |
nuclear@20 | 6 class SdrProg { |
nuclear@20 | 7 private: |
nuclear@20 | 8 std::vector<unsigned int> priv_sdr; |
nuclear@20 | 9 unsigned int prog; |
nuclear@20 | 10 mutable bool valid; |
nuclear@20 | 11 |
nuclear@20 | 12 public: |
nuclear@20 | 13 SdrProg(); |
nuclear@20 | 14 ~SdrProg(); |
nuclear@20 | 15 |
nuclear@20 | 16 void create(); |
nuclear@20 | 17 void destroy(); |
nuclear@20 | 18 |
nuclear@20 | 19 bool attach_shader(unsigned int sdr); |
nuclear@20 | 20 |
nuclear@20 | 21 bool create(unsigned int vsdr, unsigned int psdr); |
nuclear@20 | 22 bool create(const char *vsrc, const char *psrc); |
nuclear@20 | 23 bool load(const char *vfname, const char *pfname); |
nuclear@20 | 24 |
nuclear@20 | 25 bool link() const; |
nuclear@20 | 26 |
nuclear@20 | 27 int get_uniform(const char *name) const; |
nuclear@20 | 28 int get_attrib(const char *name) const; |
nuclear@20 | 29 bool bind_attrib(const char *name, int loc) const; |
nuclear@20 | 30 |
nuclear@20 | 31 bool bind() const; |
nuclear@20 | 32 }; |
nuclear@20 | 33 |
nuclear@20 | 34 unsigned int get_shader(const char *name, unsigned int type); |
nuclear@20 | 35 |
nuclear@20 | 36 #endif /* SHADER_H_ */ |