X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Frender%2Fprogramdata.cpp;h=272489bb585f0d9536dd94653b0b8fb039b42fea;hp=8adde8a26f5b71705ea92929d0fc19cee5403907;hb=3f5e469de3454aee1d1923045fc713329a32cc18;hpb=3a6eb030fb4eca4c2a317f270704fddf31613130 diff --git a/source/render/programdata.cpp b/source/render/programdata.cpp index 8adde8a2..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); }