diff options
| author | 2019-07-04 21:10:59 -0400 | |
|---|---|---|
| committer | 2019-07-05 09:46:53 -0400 | |
| commit | 3b9d89839dc62e9e63a3cbe9636cf85276babdfb (patch) | |
| tree | d99f4a48789f01c671f132c144f2dff2256223aa /src/common | |
| parent | texture_cache: Correct Texture Buffer Uploading (diff) | |
| download | yuzu-3b9d89839dc62e9e63a3cbe9636cf85276babdfb.tar.gz yuzu-3b9d89839dc62e9e63a3cbe9636cf85276babdfb.tar.xz yuzu-3b9d89839dc62e9e63a3cbe9636cf85276babdfb.zip | |
texture_cache: Address Feedback
Diffstat (limited to 'src/common')
| -rw-r--r-- | src/common/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/common/binary_find.h | 21 | ||||
| -rw-r--r-- | src/common/common_funcs.h | 10 |
3 files changed, 22 insertions, 10 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 8ae05137b..2554add28 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt | |||
| @@ -75,6 +75,7 @@ add_library(common STATIC | |||
| 75 | assert.h | 75 | assert.h |
| 76 | detached_tasks.cpp | 76 | detached_tasks.cpp |
| 77 | detached_tasks.h | 77 | detached_tasks.h |
| 78 | binary_find.h | ||
| 78 | bit_field.h | 79 | bit_field.h |
| 79 | bit_util.h | 80 | bit_util.h |
| 80 | cityhash.cpp | 81 | cityhash.cpp |
diff --git a/src/common/binary_find.h b/src/common/binary_find.h new file mode 100644 index 000000000..5cc523bf9 --- /dev/null +++ b/src/common/binary_find.h | |||
| @@ -0,0 +1,21 @@ | |||
| 1 | // Copyright 2019 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <algorithm> | ||
| 8 | |||
| 9 | namespace Common { | ||
| 10 | |||
| 11 | template <class ForwardIt, class T, class Compare = std::less<>> | ||
| 12 | ForwardIt BinaryFind(ForwardIt first, ForwardIt last, const T& value, Compare comp = {}) { | ||
| 13 | // Note: BOTH type T and the type after ForwardIt is dereferenced | ||
| 14 | // must be implicitly convertible to BOTH Type1 and Type2, used in Compare. | ||
| 15 | // This is stricter than lower_bound requirement (see above) | ||
| 16 | |||
| 17 | first = std::lower_bound(first, last, value, comp); | ||
| 18 | return first != last && !comp(value, *first) ? first : last; | ||
| 19 | } | ||
| 20 | |||
| 21 | } // namespace Common | ||
diff --git a/src/common/common_funcs.h b/src/common/common_funcs.h index 00a5698f3..04ecac959 100644 --- a/src/common/common_funcs.h +++ b/src/common/common_funcs.h | |||
| @@ -61,14 +61,4 @@ constexpr u32 MakeMagic(char a, char b, char c, char d) { | |||
| 61 | return a | b << 8 | c << 16 | d << 24; | 61 | return a | b << 8 | c << 16 | d << 24; |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | template <class ForwardIt, class T, class Compare = std::less<>> | ||
| 65 | ForwardIt BinaryFind(ForwardIt first, ForwardIt last, const T& value, Compare comp = {}) { | ||
| 66 | // Note: BOTH type T and the type after ForwardIt is dereferenced | ||
| 67 | // must be implicitly convertible to BOTH Type1 and Type2, used in Compare. | ||
| 68 | // This is stricter than lower_bound requirement (see above) | ||
| 69 | |||
| 70 | first = std::lower_bound(first, last, value, comp); | ||
| 71 | return first != last && !comp(value, *first) ? first : last; | ||
| 72 | } | ||
| 73 | |||
| 74 | } // namespace Common | 64 | } // namespace Common |