]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/programdata.h
Use emplace_back when a new object is being constructed
[libs/gl.git] / source / render / programdata.h
index 9b8a25cb15be498a916bf0ffcf28c868ea56bb02..f1c5996eb910e3e51368571472e94e6902d12bec 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_GL_PROGRAMDATA_H_
 
 #include <stdexcept>
+#include <msp/core/noncopyable.h>
 #include <msp/datafile/objectloader.h>
 #include "datatype.h"
 #include "matrix.h"
@@ -35,7 +36,7 @@ programs have the same layout, the same block is used for them.
 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>
@@ -162,9 +163,7 @@ private:
 
 public:
        ProgramData(const Program * = 0);
-       ProgramData(const ProgramData &);
-       ProgramData(const ProgramData &, const Program *);
-       ProgramData &operator=(const ProgramData &);
+       ProgramData(ProgramData &&);
        ~ProgramData();
 
 private:
@@ -247,6 +246,7 @@ public:
 
        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;