typedef std::map<Program::LayoutHash, ProgramUniforms> ProgramMap;
// XXX All these mutables are a bit silly, but I'm out of better ideas
+ const Program *tied_program;
SlotMap uniform_slots;
std::vector<Uniform *> uniforms;
mutable BlockMap blocks;
mutable unsigned dirty;
public:
- ProgramData();
+ ProgramData(const Program * = 0);
ProgramData(const ProgramData &);
ProgramData &operator=(const ProgramData &);
~ProgramData();
private:
void uniform(const std::string &, Uniform *);
public:
+ void uniform(const std::string &, const Uniform &);
void uniform(const std::string &, int);
void uniform(const std::string &, float);
void uniform(const std::string &, int, int);
void uniform4_array(const std::string &, unsigned, const int *);
void uniform4_array(const std::string &, unsigned, const float *);
void uniform_matrix4_array(const std::string &, unsigned, const float *);
+ void remove_uniform(const std::string &);
private:
unsigned compute_slot_mask(const Program::UniformBlockInfo &) const;