* Now uses a struct in ResourceManager cache map key.
* Adds logic to be able to load a raw File from specific Archive via ResourceManager
* Fixes issue of setting the hash function for ResourceCacheData in the incorrect place.
* Remove whitespace in ResourceManager.h
* Changes bind to lambda in LoadResourceAsync.
* clang-format
* Rename ResourceCachdData -> ResourceIdentifier
* Moves Archive to ResourceInitData and renames ResourceIdentifier.LoadArchvie -> Parent
* Removing more whitespace.
* clang-format
* CacheData -> Identifier
* Simplify ArchiveManager.LoadFile
* Caching the hash on construction of ResourceIdentifier.
* clang-format
* ResourceCacheDataHash -> ResourceIdentifierHash
* Uses a better function for combining multiple hashes.
* ResourceIdentifier.GetHash to private.
* Optimize filtered `ListFiles()` to only iterate once.
* Remove "unfiltered" version of ListFiles, and add a default argument value of a blank string.
Use `std::string::empty()` instead of string compare, and remove redundant check.
The "texture edge" mode as it is written in the shader assumes non-transparent objects, or actually that the alpha mask goes around a non-transparent object. Texture edge + transparent objects can be represented with the threshold solution instead.
The transparent balloons in Mario Kart 64 use CVG_X_ALPHA with blender turned on (new colour * alpha + previous colour * (1-alpha)).