#pragma once #include #include #include #define IMAGE_PATH "share/floormat/images/" namespace floormat { struct tile_atlas; struct loader_ { virtual StringView shader(Containers::StringView filename) = 0; virtual Trade::ImageData2D tile_texture(Containers::StringView filename) = 0; virtual std::shared_ptr tile_atlas(Containers::StringView filename, Vector2ub 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 floormat