#define MSP_GL_PROGRAMDATA_H_
#include <map>
+#include <msp/datafile/objectloader.h>
namespace Msp {
namespace GL {
class Program;
class Uniform;
+/**
+Stores uniform variables for a shader program.
+*/
class ProgramData
{
+public:
+ class Loader: public DataFile::ObjectLoader<ProgramData>
+ {
+ private:
+ 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;
- ProgramData(const ProgramData &);
ProgramData &operator=(const ProgramData &);
public:
ProgramData();
+ ProgramData(const ProgramData &);
~ProgramData();
void uniform(int, Uniform *);