#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"); } }