X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fprogramdata.cpp;fp=source%2Fprogramdata.cpp;h=3561719725501a4ca7663ad4ae6c3e825e6bd10b;hp=e279635f876116d1e40fce3064423e05c1e597c3;hb=ed7ca8892daceebb963950945fed5e75bd96a8a1;hpb=41368577ab4c4091e19d4e9cbbf8fbf2cfbdddca diff --git a/source/programdata.cpp b/source/programdata.cpp index e279635f..35617197 100644 --- a/source/programdata.cpp +++ b/source/programdata.cpp @@ -34,6 +34,23 @@ ProgramData::ProgramData(const ProgramData &other): i->value = i->value->clone(); } +ProgramData::ProgramData(const ProgramData &other, const Program *p): + tied_program(p), + last_block(0), + buffer(0), + dirty(0) +{ + if(tied_program) + { + for(vector::const_iterator i=other.uniforms.begin(); i!=other.uniforms.end(); ++i) + tied_program->get_uniform_info(i->name); + } + + uniforms = other.uniforms; + for(vector::iterator i=uniforms.begin(); i!=uniforms.end(); ++i) + i->value = i->value->clone(); +} + ProgramData &ProgramData::operator=(const ProgramData &other) { tied_program = other.tied_program;