#include <map>
#include <msp/datafile/objectloader.h>
#include "program.h"
+#include "vector.h"
namespace Msp {
namespace GL {
class Buffer;
-class Color;
class Matrix;
class Uniform;
class UniformBlock;
-class Vector3;
-class Vector4;
+struct Color;
/**
Stores uniform variables for shader programs. The uniforms are stored in a
};
typedef std::map<std::string, Uniform *> UniformMap;
- typedef std::map<unsigned, Block> BlockMap;
+ typedef std::map<Program::LayoutHash, Block> BlockMap;
// XXX All these mutables are a bit silly, but I'm out of better ideas
UniformMap uniforms;
mutable Buffer *buffer;
mutable Changes changes;
- ProgramData &operator=(const ProgramData &);
public:
ProgramData();
ProgramData(const ProgramData &);
+ ProgramData &operator=(const ProgramData &);
~ProgramData();
private:
void uniform4(const std::string &, const float *);
void uniform_matrix2(const std::string &, const float *);
void uniform_matrix3(const std::string &, const float *);
+ void uniform(const std::string &, const Matrix &);
void uniform_matrix4(const std::string &, const float *);
- void uniform_matrix4(const std::string &, const Matrix &);
void uniform1_array(const std::string &, unsigned, const float *);
void uniform2_array(const std::string &, unsigned, const float *);
void uniform3_array(const std::string &, unsigned, const float *);