#define MSP_GL_PROGRAMDATA_H_
#include <stdexcept>
+#include <msp/core/noncopyable.h>
#include <msp/datafile/objectloader.h>
#include "datatype.h"
#include "matrix.h"
The class is optimized for an access pattern where the set of uniforms and
programs stays constants, with only the values changing.
*/
-class ProgramData
+class ProgramData: public NonCopyable
{
public:
class Loader: public DataFile::ObjectLoader<ProgramData>
public:
ProgramData(const Program * = 0);
- ProgramData(const ProgramData &);
- ProgramData(const ProgramData &, const Program *);
- ProgramData &operator=(const ProgramData &);
+ ProgramData(ProgramData &&);
~ProgramData();
private:
std::vector<Tag> get_uniform_tags() const;
void copy_uniform(const ProgramData &, Tag);
+ void copy_uniforms(const ProgramData &);
private:
int find_uniform_index(Tag) const;