X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fprogramdata.cpp;h=272489bb585f0d9536dd94653b0b8fb039b42fea;hb=3f5e469de3454aee1d1923045fc713329a32cc18;hp=9c23e8a5eb26eefd2da1654975ccf5af62d1d4b2;hpb=fa2b4c8a93ebad2497cacfdeaa9a2c20be486520;p=libs%2Fgl.git diff --git a/source/render/programdata.cpp b/source/render/programdata.cpp index 9c23e8a5..272489bb 100644 --- a/source/render/programdata.cpp +++ b/source/render/programdata.cpp @@ -1,3 +1,4 @@ +#include #include #include #include @@ -173,7 +174,7 @@ void ProgramData::add_uniform(Tag tag, Uniform *uni) throw too_many_uniforms(tag.str()); } - vector::iterator j = lower_bound(uniforms.begin(), uniforms.end(), tag, uniform_tag_compare); + vector::iterator j = lower_bound_member(uniforms, tag, &TaggedUniform::tag); TaggedUniform nu; nu.tag = tag; @@ -456,7 +457,7 @@ void ProgramData::uniform_matrix4_array(Tag tag, unsigned n, const float *v) void ProgramData::remove_uniform(Tag tag) { - vector::const_iterator i = lower_bound(uniforms.begin(), uniforms.end(), tag, uniform_tag_compare); + vector::const_iterator i = lower_bound_member(uniforms, tag, &TaggedUniform::tag); if(i==uniforms.end() || i->tag!=tag) return; @@ -489,14 +490,9 @@ const Uniform *ProgramData::find_uniform(Tag tag) const return (i>=0 ? uniforms[i].value : 0); } -bool ProgramData::uniform_tag_compare(const TaggedUniform &tu, Tag tag) -{ - return tu.tag::const_iterator i = lower_bound(uniforms.begin(), uniforms.end(), tag, uniform_tag_compare); + vector::const_iterator i = lower_bound_member(uniforms, tag, &TaggedUniform::tag); return ((i!=uniforms.end() && i->tag==tag) ? i-uniforms.begin() : -1); } @@ -636,7 +632,7 @@ void ProgramData::apply() const // Update the contents of all dirty blocks. bool buffered_blocks_updated = false; - std::vector::iterator j = pu.blocks.begin(); + vector::iterator j = pu.blocks.begin(); for(vector::const_iterator i=prog_blocks.begin(); i!=prog_blocks.end(); ++i, ++j) { if(!j->shared || !j->shared->dirty)