nuclear@20: #ifndef SHADER_H_ nuclear@20: #define SHADER_H_ nuclear@20: nuclear@20: #include nuclear@20: nuclear@20: class SdrProg { nuclear@20: private: nuclear@20: std::vector priv_sdr; nuclear@20: unsigned int prog; nuclear@20: mutable bool valid; nuclear@20: nuclear@20: public: nuclear@20: SdrProg(); nuclear@20: ~SdrProg(); nuclear@20: nuclear@20: void create(); nuclear@20: void destroy(); nuclear@20: nuclear@20: bool attach_shader(unsigned int sdr); nuclear@20: nuclear@20: bool create(unsigned int vsdr, unsigned int psdr); nuclear@20: bool create(const char *vsrc, const char *psrc); nuclear@20: bool load(const char *vfname, const char *pfname); nuclear@20: nuclear@20: bool link() const; nuclear@20: nuclear@20: int get_uniform(const char *name) const; nuclear@20: int get_attrib(const char *name) const; nuclear@20: bool bind_attrib(const char *name, int loc) const; nuclear@20: nuclear@20: bool bind() const; nuclear@20: }; nuclear@20: nuclear@20: unsigned int get_shader(const char *name, unsigned int type); nuclear@20: nuclear@20: #endif /* SHADER_H_ */