#pragma once #include #include #include #include namespace mbgl { class ImagePosition { public: ImagePosition(const mapbox::Bin&, const style::Image::Impl&); float pixelRatio; Rect textureRect; std::array tl() const { return {{ textureRect.x, textureRect.y }}; } std::array br() const { return {{ static_cast(textureRect.x + textureRect.w), static_cast(textureRect.y + textureRect.h) }}; } std::array displaySize() const { return {{ textureRect.w / pixelRatio, textureRect.h / pixelRatio, }}; } }; using ImagePositions = std::map; class ImageAtlas { public: PremultipliedImage image; ImagePositions positions; }; ImageAtlas makeImageAtlas(const ImageMap&); } // namespace mbgl