#pragma once #include #include #include #include #include namespace Magnum::Examples { struct tile_atlas; struct loader_ { virtual std::string shader(const Containers::StringView& filename) = 0; virtual Trade::ImageData2D tile_texture(const Containers::StringView& filename) = 0; virtual std::shared_ptr tile_atlas(const Containers::StringView& filename, Vector2i size) = 0; static void destroy(); loader_(const loader_&) = delete; loader_& operator=(const loader_&) = delete; virtual ~loader_(); protected: loader_(); }; extern loader_& loader; // NOLINT(cppcoreguidelines-avoid-non-const-global-variables) } // namespace Magnum::Examples