#pragma once #include namespace dxvk { struct DxvkEq { template size_t operator () (const T& a, const T& b) const { return a.eq(b); } }; struct DxvkHash { template size_t operator () (const T& object) const { return object.hash(); } }; class DxvkHashState { public: void add(size_t hash) { m_value ^= hash + 0x9e3779b9 + (m_value << 6) + (m_value >> 2); } operator size_t () const { return m_value; } private: size_t m_value = 0; }; }