#pragma once #include #include #include #include #include #include #include namespace extra2d { class BuiltinAssetFactory { public: BuiltinAssetFactory(AssetStorage &textures, AssetStorage &shaders, AssetStorage &materials, AssetStorage &meshes, const AssetFileSystem &fileSystem); bool create(); void destroy(); Handle defaultTexture() const; Handle defaultShader() const; Handle defaultMaterial() const; Handle defaultQuad() const; private: AssetStorage &textures_; AssetStorage &shaders_; AssetStorage &materials_; AssetStorage &meshes_; const AssetFileSystem &fileSystem_; Handle defaultTexture_; Handle defaultShader_; Handle defaultMaterial_; Handle defaultQuad_; }; } // namespace extra2d