diff options
| -rw-r--r-- | gfx/gl/instanceVertices.h | 10 | ||||
| -rw-r--r-- | test/test-instancing.cpp | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/gfx/gl/instanceVertices.h b/gfx/gl/instanceVertices.h index 28e11ee..629c664 100644 --- a/gfx/gl/instanceVertices.h +++ b/gfx/gl/instanceVertices.h @@ -127,16 +127,22 @@ public: } template<typename Pred> - glContainer<T>::iterator + base::size_type partition(Pred pred) { - return partition(base::begin(), base::end(), pred); + return indexOf(partition(base::begin(), base::end(), pred)); } protected: static constexpr auto npos = static_cast<size_t>(-1); friend InstanceProxy; + base::size_type + indexOf(base::iterator iter) + { + return static_cast<base::size_type>(iter - base::begin()); + } + void release(const size_t pidx) { diff --git a/test/test-instancing.cpp b/test/test-instancing.cpp index 21d78e1..f303a15 100644 --- a/test/test-instancing.cpp +++ b/test/test-instancing.cpp @@ -250,8 +250,8 @@ BOOST_AUTO_TEST_CASE(PartitionBy, *boost::unit_test::timeout(1)) // The external view of the data is unchanged... BOOST_CHECK_EQUAL_COLLECTIONS(values.cbegin(), values.cend(), instances.cbegin(), instances.cend()); // The partition point is right... - BOOST_CHECK(!pred(*matchedEnd)); - BOOST_CHECK(pred(*--matchedEnd)); + BOOST_CHECK(!pred(at(matchedEnd))); + BOOST_CHECK(pred(at(matchedEnd - 1))); checkReverseIndex(); } |
