summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorGravatar Fernando Sahmkow2019-07-04 21:10:59 -0400
committerGravatar FernandoS272019-07-05 09:46:53 -0400
commit3b9d89839dc62e9e63a3cbe9636cf85276babdfb (patch)
treed99f4a48789f01c671f132c144f2dff2256223aa /src/common
parenttexture_cache: Correct Texture Buffer Uploading (diff)
downloadyuzu-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.txt1
-rw-r--r--src/common/binary_find.h21
-rw-r--r--src/common/common_funcs.h10
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
9namespace Common {
10
11template <class ForwardIt, class T, class Compare = std::less<>>
12ForwardIt 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
64template <class ForwardIt, class T, class Compare = std::less<>>
65ForwardIt 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