Browse Source

Implement GetInRange in the Rasterizer Cache

nce_cpp
FernandoS27 7 years ago
parent
commit
893e144b02
  1. 16
      src/video_core/rasterizer_cache.h

16
src/video_core/rasterizer_cache.h

@ -105,6 +105,22 @@ protected:
return nullptr;
}
std::vector<T> GetInRange(Tegra::GPUVAddr addr, size_t size) {
std::vector<T> objects;
if (size == 0)
return objects;
const ObjectInterval interval{addr, addr + size};
for (auto& pair : boost::make_iterator_range(object_cache.equal_range(interval))) {
for (auto& cached_object : pair.second) {
if (!cached_object)
continue;
objects.push_back(cached_object);
}
}
return objects;
}
/// Register an object into the cache
void Register(const T& object) {
object->SetIsRegistered(true);

Loading…
Cancel
Save