// Copyright (C) 2020 Jérôme Leclercq // This file is part of the "Nazara Engine - Utility module" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_UTILITY_HPP #define NAZARA_UTILITY_HPP #include #include #include #include #include #include #include namespace Nz { class NAZARA_UTILITY_API Utility : public ModuleBase { friend ModuleBase; public: using Dependencies = TypeList; struct Config {}; Utility(Config /*config*/); Utility(const Utility&) = delete; Utility(Utility&&) = delete; ~Utility(); AnimationLoader& GetAnimationLoader(); const AnimationLoader& GetAnimationLoader() const; FontLoader& GetFontLoader(); const FontLoader& GetFontLoader() const; ImageLoader& GetImageLoader(); const ImageLoader& GetImageLoader() const; ImageSaver& GetImageSaver(); const ImageSaver& GetImageSaver() const; MeshLoader& GetMeshLoader(); const MeshLoader& GetMeshLoader() const; MeshSaver& GetMeshSaver(); const MeshSaver& GetMeshSaver() const; Utility& operator=(const Utility&) = delete; Utility& operator=(Utility&&) = delete; private: AnimationLoader m_animationLoader; FontLoader m_fontLoader; ImageLoader m_imageLoader; ImageSaver m_imageSaver; MeshLoader m_meshLoader; MeshSaver m_meshSaver; static Utility* s_instance; }; } #endif // NAZARA_UTILITY_HPP