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_ */