#ifndef ASSETS_ASSETS_LOADER_H #define ASSETS_ASSETS_LOADER_H #include #include #include #include const short ASSET_TEXTURE = 1; const short ASSET_SHADER = 2; const short ASSET_FONT = 3; const short ASSET_ATLAS = 4; class ResPaths; class Assets; typedef std::function aloader_func; struct aloader_entry { int tag; const std::string filename; const std::string alias; }; class AssetsLoader { Assets* assets; std::map loaders; std::queue entries; const ResPaths* paths; public: AssetsLoader(Assets* assets, const ResPaths* paths); void addLoader(int tag, aloader_func func); void add(int tag, const std::string filename, const std::string alias); bool hasNext() const; bool loadNext(); static void createDefaults(AssetsLoader& loader); static void addDefaults(AssetsLoader& loader, bool allAssets); const ResPaths* getPaths() const; }; #endif // ASSETS_ASSETS_LOADER_H