diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/rasterizer_cache.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/video_core/rasterizer_cache.h b/src/video_core/rasterizer_cache.h index 0a3b3951e..294b7c6ef 100644 --- a/src/video_core/rasterizer_cache.h +++ b/src/video_core/rasterizer_cache.h | |||
| @@ -105,6 +105,22 @@ protected: | |||
| 105 | return nullptr; | 105 | return nullptr; |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | std::vector<T> GetInRange(Tegra::GPUVAddr addr, size_t size) { | ||
| 109 | std::vector<T> objects; | ||
| 110 | if (size == 0) | ||
| 111 | return objects; | ||
| 112 | |||
| 113 | const ObjectInterval interval{addr, addr + size}; | ||
| 114 | for (auto& pair : boost::make_iterator_range(object_cache.equal_range(interval))) { | ||
| 115 | for (auto& cached_object : pair.second) { | ||
| 116 | if (!cached_object) | ||
| 117 | continue; | ||
| 118 | objects.push_back(cached_object); | ||
| 119 | } | ||
| 120 | } | ||
| 121 | return objects; | ||
| 122 | } | ||
| 123 | |||
| 108 | /// Register an object into the cache | 124 | /// Register an object into the cache |
| 109 | void Register(const T& object) { | 125 | void Register(const T& object) { |
| 110 | object->SetIsRegistered(true); | 126 | object->SetIsRegistered(true); |