828{
829 size_t hash = 0;
830 auto hash_combine = [](size_t& seed, size_t value) {
831 seed ^= value + 0x9e3779b9 + (seed << 6) + (seed >> 2);
832 };
833
834 hash_combine(hash, static_cast<size_t>(filter));
835 hash_combine(hash, static_cast<size_t>(address_mode));
836 hash_combine(hash, std::hash<float> {}(max_anisotropy));
837
838 return hash;
839}