January 2018
Intermediate to advanced
374 pages
9h 53m
English
Let's say you have a resource system consisting of an unordered map of strings which identify bitmaps. If the bitmap is already loaded, it returns the loaded bitmap; otherwise it loads the bitmap and returns it.
// External function which loads a bitmap from the filesystemauto load_bitmap_from_filesystem(const char* path) -> Bitmap {...}
// Bitmap cache
auto get_bitmap_resource(const std::string& path) -> const Bitmap& {
// Static storage of all loaded bitmaps
static auto loaded = std::unordered_map<std::string, Bitmap>{};
// If the bitmap is already in loaded_bitmaps, return it
if (loaded.count(path) > 0) {
return loaded.at(path);
}
// The bitmap isn't already loaded, load and return it
auto bitmap ...