aboutsummaryrefslogtreecommitdiff
path: root/src/example/asset_manager.cpp
blob: 660b3189c246781db29c9d3d040471c92c7b114b (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
29
30
31
32
33
34
35
36
#include <crepe/api/AssetManager.h>
#include <crepe/api/Texture.h>
#include <crepe/facade/Sound.h>

using namespace crepe;

int main() {

	// this needs to be called before the asset manager otherwise the destructor of sdl is not in
	// the right order
	{ Texture test("asset/texture/img.png"); }
	// FIXME: make it so the issue described by the above comment is not possible (i.e. the order
	// in which internal classes are instantiated should not impact the way the engine works).

	auto & mgr = AssetManager::get_instance();

	{
		// TODO: [design] the Sound class can't be directly included by the user as it includes
		// SoLoud headers.
		auto bgm = mgr.cache<Sound>("mwe/audio/bgm.ogg");
		auto sfx1 = mgr.cache<Sound>("mwe/audio/sfx1.wav");
		auto sfx2 = mgr.cache<Sound>("mwe/audio/sfx2.wav");

		auto img = mgr.cache<Texture>("asset/texture/img.png");
		auto img1 = mgr.cache<Texture>("asset/texture/second.png");
	}

	{
		auto bgm = mgr.cache<Sound>("mwe/audio/bgm.ogg");
		auto sfx1 = mgr.cache<Sound>("mwe/audio/sfx1.wav");
		auto sfx2 = mgr.cache<Sound>("mwe/audio/sfx2.wav");

		auto img = mgr.cache<Texture>("asset/texture/img.png");
		auto img1 = mgr.cache<Texture>("asset/texture/second.png");
	}
}