-// Blocks are intentionally left uncopied
-ProgramData::ProgramData(const ProgramData &other):
- tied_program(other.tied_program),
- uniforms(other.uniforms),
- uniform_data(other.uniform_data),
- generation(other.generation)
-{ }
-
-ProgramData::ProgramData(const ProgramData &other, const Program *p):
- tied_program(p)
-{
- if(tied_program)
- {
- for(const TaggedUniform &u: other.uniforms)
- validate_tag(u.tag);
- }
-
- uniforms = other.uniforms;
- uniform_data = other.uniform_data;
-}
-
-ProgramData &ProgramData::operator=(const ProgramData &other)
-{
- tied_program = other.tied_program;
-
- uniforms = other.uniforms;
- uniform_data = other.uniform_data;
-
- for(SharedBlock &b: blocks)
- delete b.block;
- blocks.clear();
- programs.clear();
-
- last_buffer_block = 0;
- buffer = 0;
- dirty = 0;
-
- return *this;
-}
-