summaryrefslogtreecommitdiffhomepage
path: root/src/resources.cpp
blob: 27b860de6484ffab81056d23b784e6d8b936e580 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <unordered_map>
#include <string>
#include <stdexcept>
#include "raylib.h"
#include "resources.hpp"

namespace Resources {
	static std::unordered_map<std::string, std::string> textureFiles = {
		{"kenneySpaceShooter", "./assets/textures/spaceShooter2_spritesheet_2X.png"}
	};
	static std::unordered_map<std::string, Texture> textures;
	Texture useTexture(std::string id) {
		Texture texture;
		auto texSearch = textures.find(id);
		if (texSearch != textures.end()) {
			return texSearch->second;
		}
		auto texPathSearch = textureFiles.find(id);
		if (texPathSearch != textureFiles.end()) {
			texture = LoadTexture(texPathSearch->second.c_str());
			textures.insert({id, texture});
		} else {
			throw std::invalid_argument("Texture id '" + id + "' has no assigned path.");
		}
		return texture;
	}

}