]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/programdata.h
Use a generation number to track if ProgramData has changed
[libs/gl.git] / source / render / programdata.h
index f600f02585c3d13fcd5cdd57ba0004da30c2e04b..aeffae45700726f9bc5bd9c7fbc350477486eb90 100644 (file)
@@ -152,6 +152,7 @@ private:
        // XXX All these mutables are a bit silly, but I'm out of better ideas
        const Program *tied_program;
        std::vector<TaggedUniform> uniforms;
+       unsigned generation;
        mutable std::vector<SharedBlock> blocks;
        mutable std::vector<ProgramBlock> programs;
        mutable BufferBackedUniformBlock *last_buffer_block;
@@ -173,6 +174,7 @@ private:
        void uniform_array(Tag, unsigned, V);
        bool validate_tag(Tag) const;
        void add_uniform(Tag, Uniform *);
+       void mark_dirty(Mask);
 public:
        void uniform(Tag, const Uniform &);
        void uniform(Tag, int);
@@ -234,6 +236,8 @@ public:
 
        void remove_uniform(Tag);
 
+       unsigned get_generation() const { return generation; }
+
        std::vector<Tag> get_uniform_tags() const;
        const Uniform &get_uniform(Tag) const;
        const Uniform *find_uniform(Tag) const;