]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/programdata.h
Store simpler states by value in PipelineState
[libs/gl.git] / source / render / programdata.h
index f1c5996eb910e3e51368571472e94e6902d12bec..dbbf5f488d6173e2b9436df925d81bdce2db8f16 100644 (file)
@@ -158,6 +158,7 @@ private:
        mutable std::vector<ProgramBlock> programs;
        mutable UniformBlock *last_buffer_block = 0;
        mutable Buffer *buffer = 0;
+       bool streaming = false;
        mutable Mask dirty = 0;
        std::string debug_name;
 
@@ -251,6 +252,7 @@ public:
 private:
        int find_uniform_index(Tag) const;
        std::vector<ProgramBlock>::iterator get_program(const Program &) const;
+       void recreate_buffer() const;
        void update_block_uniform_indices(SharedBlock &, const ReflectData::UniformBlockInfo &) const;
        void update_block(SharedBlock &, const ReflectData::UniformBlockInfo &) const;
 
@@ -258,7 +260,7 @@ private:
 public:
        /** Creates or updates UniformBlocks for a specific program if necessary,
        then sets them to the PipelineState. */
-       void apply(const Program &, PipelineState &) const;
+       void apply(const Program &, PipelineState &, unsigned) const;
 
        void set_debug_name(const std::string &);
 };