77template <>
88struct std ::hash<df::texture_fullid>
99{
10- size_t operator ()(df::texture_fullid const &t) const noexcept
10+ size_t operator ()(df::texture_fullid const &t) const noexcept
1111 {
1212// for some reason, bay12 used different hash methods on windows vs linux
1313#ifdef WIN32
14- size_t h=std::hash<int >{}(t.texpos );
15- auto u_hash=std::hash<uint64_t >{};
16- h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.r , t.g )));
17- h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.b , t.br )))<<1 ;
18- h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.bg , t.bb )))<<2 ;
19- h^=std::hash<uint32_t >{}(t.flag .whole );
20- return h;
14+ size_t h=std::hash<int >{}(t.texpos );
15+ auto u_hash=std::hash<uint64_t >{};
16+ h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.r , t.g )));
17+ h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.b , t.br )))<<1 ;
18+ h^=u_hash (std::bit_cast<uint64_t >(std::make_pair (t.bg , t.bb )))<<2 ;
19+ h^=std::hash<uint32_t >{}(t.flag .whole );
20+ return h;
2121#else
22- size_t h=std::hash<float >{}(t.texpos );
23- auto u_hash=std::hash<uint64_t >{};
24- h^=u_hash (t.r );
25- h^=u_hash (t.g )<<1 ;
26- h^=u_hash (t.b )<<2 ;
27- h^=u_hash (t.br )<<3 ;
28- h^=u_hash (t.bg )<<4 ;
29- h^=u_hash (t.bb )<<5 ;
30- h^=std::hash<uint32_t >{}(t.flag .whole )<<6 ;
31- return h;
22+ size_t h=std::hash<float >{}(t.texpos );
23+ auto u_hash=std::hash<uint64_t >{};
24+ h^=u_hash (t.r );
25+ h^=u_hash (t.g )<<1 ;
26+ h^=u_hash (t.b )<<2 ;
27+ h^=u_hash (t.br )<<3 ;
28+ h^=u_hash (t.bg )<<4 ;
29+ h^=u_hash (t.bb )<<5 ;
30+ h^=std::hash<uint32_t >{}(t.flag .whole )<<6 ;
31+ return h;
3232#endif
3333 }
34- };
34+ };
0 commit comments