summaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/common')
-rw-r--r--src/common/CMakeLists.txt8
-rw-r--r--src/common/algorithm.h (renamed from src/common/binary_find.h)6
-rw-r--r--src/common/hash.h11
3 files changed, 22 insertions, 3 deletions
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 906c486fd..9c6f1c07c 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -74,10 +74,12 @@ add_custom_command(OUTPUT scm_rev.cpp
"${VIDEO_CORE}/shader/decode/xmad.cpp"
"${VIDEO_CORE}/shader/ast.cpp"
"${VIDEO_CORE}/shader/ast.h"
- "${VIDEO_CORE}/shader/control_flow.cpp"
- "${VIDEO_CORE}/shader/control_flow.h"
"${VIDEO_CORE}/shader/compiler_settings.cpp"
"${VIDEO_CORE}/shader/compiler_settings.h"
+ "${VIDEO_CORE}/shader/const_buffer_locker.cpp"
+ "${VIDEO_CORE}/shader/const_buffer_locker.h"
+ "${VIDEO_CORE}/shader/control_flow.cpp"
+ "${VIDEO_CORE}/shader/control_flow.h"
"${VIDEO_CORE}/shader/decode.cpp"
"${VIDEO_CORE}/shader/expr.cpp"
"${VIDEO_CORE}/shader/expr.h"
@@ -95,11 +97,11 @@ add_custom_command(OUTPUT scm_rev.cpp
)
add_library(common STATIC
+ algorithm.h
alignment.h
assert.h
detached_tasks.cpp
detached_tasks.h
- binary_find.h
bit_field.h
bit_util.h
cityhash.cpp
diff --git a/src/common/binary_find.h b/src/common/algorithm.h
index 5cc523bf9..e21b1373c 100644
--- a/src/common/binary_find.h
+++ b/src/common/algorithm.h
@@ -5,6 +5,12 @@
#pragma once
#include <algorithm>
+#include <functional>
+
+// Algorithms that operate on iterators, much like the <algorithm> header.
+//
+// Note: If the algorithm is not general-purpose and/or doesn't operate on iterators,
+// it should probably not be placed within this header.
namespace Common {
diff --git a/src/common/hash.h b/src/common/hash.h
index 40194d1ee..ebd4125e2 100644
--- a/src/common/hash.h
+++ b/src/common/hash.h
@@ -6,6 +6,8 @@
#include <cstddef>
#include <cstring>
+#include <utility>
+#include <boost/functional/hash.hpp>
#include "common/cityhash.h"
#include "common/common_types.h"
@@ -68,4 +70,13 @@ struct HashableStruct {
}
};
+struct PairHash {
+ template <class T1, class T2>
+ std::size_t operator()(const std::pair<T1, T2>& pair) const noexcept {
+ std::size_t seed = std::hash<T1>()(pair.first);
+ boost::hash_combine(seed, std::hash<T2>()(pair.second));
+ return seed;
+ }
+};
+
} // namespace Common