X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fprogramdata.cpp;h=401ed18949af2ff09ec7b826b5c36627854e4201;hb=f2e54dc47d0ddba2b1ca582e8c8feb64ccfcb270;hp=b63ad60e3e5138e908ac9781d129ce27f016c144;hpb=498d96d4da75d7b3f34587c25a8b35cc80978d43;p=libs%2Fgl.git diff --git a/source/render/programdata.cpp b/source/render/programdata.cpp index b63ad60e..401ed189 100644 --- a/source/render/programdata.cpp +++ b/source/render/programdata.cpp @@ -79,7 +79,7 @@ ProgramData::~ProgramData() for(BlockMap::iterator i=blocks.begin(); i!=blocks.end(); ++i) { if(i->second.indices.type_flag==0xFE) - delete i->second.indices.dynamic.values; + delete[] i->second.indices.dynamic.values; delete i->second.block; } delete buffer; @@ -611,7 +611,7 @@ void ProgramData::apply() const dirty = 0; } - const Program::UniformBlockMap &prog_blocks = prog->get_uniform_blocks(); + const vector &prog_blocks = prog->get_uniform_blocks(); UniformBlock *old_last_block = last_block; if(pu.dirty==ALL_ONES) @@ -622,29 +622,29 @@ void ProgramData::apply() const pu.blocks.reserve(prog_blocks.size()); pu.used = 0; - for(Program::UniformBlockMap::const_iterator i=prog_blocks.begin(); i!=prog_blocks.end(); ++i) + for(vector::const_iterator i=prog_blocks.begin(); i!=prog_blocks.end(); ++i) { - SharedBlock *shared = get_shared_block(i->second); + SharedBlock *shared = get_shared_block(*i); if(shared) { if(shared->dirty==ALL_ONES) - update_block_uniform_indices(*shared, i->second); + update_block_uniform_indices(*shared, *i); pu.used |= shared->used; } - pu.blocks.push_back(ProgramBlock(i->second.bind_point, shared)); + pu.blocks.push_back(ProgramBlock(i->bind_point, shared)); } } // Update the contents of all dirty blocks. bool buffered_blocks_updated = false; std::vector::iterator j = pu.blocks.begin(); - for(Program::UniformBlockMap::const_iterator i=prog_blocks.begin(); i!=prog_blocks.end(); ++i, ++j) + for(vector::const_iterator i=prog_blocks.begin(); i!=prog_blocks.end(); ++i, ++j) { if(!j->shared || !j->shared->dirty) continue; - update_block(*j->shared, i->second); + update_block(*j->shared, *i); j->shared->dirty = 0; buffered_blocks_updated |= (j->bind_point>=0); }