Skip to content

Commit ec4fcc3

Browse files
committed
keyhash
1 parent 92fa054 commit ec4fcc3

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

src/resource/ResourceLoader.h

+11-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,16 @@ struct ResourceFactoryKey {
1313
uint32_t resourceFormat;
1414
uint32_t resourceType;
1515
uint32_t resourceVersion;
16+
17+
bool operator==(const ResourceFactoryKey& o) const {
18+
return (resourceFormat == o.resourceFormat) && (resourceType == o.resourceType) && (resourceVersion == o.resourceVersion);
19+
}
20+
};
21+
22+
struct ResourceFactoryKeyHash {
23+
std::size_t operator()(const ResourceFactoryKey& key) const {
24+
return std::hash<int>()(key.resourceFormat) ^ std::hash<int>()(key.resourceType) ^ std::hash<int>()(key.resourceVersion);
25+
}
1626
};
1727

1828
class ResourceLoader {
@@ -32,6 +42,6 @@ class ResourceLoader {
3242

3343
private:
3444
std::unordered_map<std::string, uint32_t> mResourceTypes;
35-
std::unordered_map<ResourceFactoryKey, std::shared_ptr<ResourceFactory>> mFactories;
45+
std::unordered_map<ResourceFactoryKey, std::shared_ptr<ResourceFactory>, ResourceFactoryKeyHash> mFactories;
3646
};
3747
} // namespace LUS

0 commit comments

Comments
 (0)