diff options
| author | Rodrigo Locatti <reinuseslisp@airmail.cc> | 2020-09-22 23:37:51 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-22 23:37:51 +0000 |
| commit | 2b863c9aa34e388f6c64665a2e7d8c808d598c26 (patch) | |
| tree | 288ff1cc4677d6511ed8cc7e1b0db20ce2d2590f /src/video_core/texture_cache/surface_base.cpp | |
| parent | c07fd2898b45032b5e4084fc49a19018ad099ba6 (diff) | |
| parent | ff45c3957858cdf189b73e11550da06fe4337b8e (diff) | |
Merge pull request #4698 from lioncash/optional-null
General: Make use of std::nullopt where applicable
Diffstat (limited to 'src/video_core/texture_cache/surface_base.cpp')
| -rw-r--r-- | src/video_core/texture_cache/surface_base.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/video_core/texture_cache/surface_base.cpp b/src/video_core/texture_cache/surface_base.cpp index dfcf36e0b..b44c09d71 100644 --- a/src/video_core/texture_cache/surface_base.cpp +++ b/src/video_core/texture_cache/surface_base.cpp @@ -115,20 +115,24 @@ std::optional<std::pair<u32, u32>> SurfaceBaseImpl::GetLayerMipmap( if (gpu_addr == candidate_gpu_addr) { return {{0, 0}}; } + if (candidate_gpu_addr < gpu_addr) { - return {}; + return std::nullopt; } + const auto relative_address{static_cast<GPUVAddr>(candidate_gpu_addr - gpu_addr)}; const auto layer{static_cast<u32>(relative_address / layer_size)}; if (layer >= params.depth) { - return {}; + return std::nullopt; } + const GPUVAddr mipmap_address = relative_address - layer_size * layer; const auto mipmap_it = Common::BinaryFind(mipmap_offsets.begin(), mipmap_offsets.end(), mipmap_address); if (mipmap_it == mipmap_offsets.end()) { - return {}; + return std::nullopt; } + const auto level{static_cast<u32>(std::distance(mipmap_offsets.begin(), mipmap_it))}; return std::make_pair(layer, level); } |
