#define MSP_GL_PROGRAMDATA_H_
#include <map>
+#include <msp/datafile/loader.h>
namespace Msp {
namespace GL {
class Program;
class Uniform;
+/**
+Stores uniform variables for a shader program.
+*/
class ProgramData
{
+public:
+ class Loader: public DataFile::Loader
+ {
+ private:
+ ProgramData &pdata;
+ Program &prog;
+
+ public:
+ Loader(ProgramData &, Program &);
+ private:
+ void uniform1i(const std::string &, int);
+ void uniform1f(const std::string &, float);
+ void uniform2f(const std::string &, float, float);
+ void uniform3f(const std::string &, float, float, float);
+ void uniform4f(const std::string &, float, float, float, float);
+ };
+
private:
std::map<int, Uniform *> data;