1 #ifndef MSP_GL_PROGRAMDATA_H_
2 #define MSP_GL_PROGRAMDATA_H_
5 #include <msp/datafile/objectloader.h>
19 Stores uniform variables for a shader program.
24 class Loader: public DataFile::ObjectLoader<ProgramData>
27 Loader(ProgramData &);
29 void uniform1i(const std::string &, int);
30 void uniform1f(const std::string &, float);
31 void uniform2f(const std::string &, float, float);
32 void uniform3f(const std::string &, float, float, float);
33 void uniform4f(const std::string &, float, float, float, float);
45 typedef std::map<std::string, Uniform *> UniformMap;
46 typedef std::map<unsigned, Block> BlockMap;
49 mutable BlockMap blocks;
50 mutable bool modified;
52 ProgramData &operator=(const ProgramData &);
55 ProgramData(const ProgramData &);
59 void uniform(const std::string &, Uniform *);
61 void uniform(const std::string &, int);
62 void uniform(const std::string &, float);
63 void uniform(const std::string &, float, float);
64 void uniform2(const std::string &, const float *);
65 void uniform(const std::string &, float, float, float);
66 void uniform(const std::string &, const Vector3 &);
67 void uniform3(const std::string &, const float *);
68 void uniform(const std::string &, float, float, float, float);
69 void uniform(const std::string &, const Vector4 &);
70 void uniform(const std::string &, const Color &);
71 void uniform4(const std::string &, const float *);
72 void uniform_matrix4(const std::string &, const float *);
73 void uniform_matrix4(const std::string &, const Matrix &);
74 void uniform1_array(const std::string &, unsigned, const float *);
75 void uniform2_array(const std::string &, unsigned, const float *);
76 void uniform3_array(const std::string &, unsigned, const float *);
77 void uniform4_array(const std::string &, unsigned, const float *);
78 void uniform_matrix4_array(const std::string &, unsigned, const float *);
80 const UniformBlock &get_block(const Program &) const;