summaryrefslogtreecommitdiff
path: root/include/mbgl/style
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-12-09 15:09:42 +0100
committerAlexander Shalamov <alexander.shalamov@mapbox.com>2020-01-15 15:02:11 +0200
commit62b0f4cde289e5918c41d5b69b0a03baa6821862 (patch)
tree2042319da9abd756564dcbba7812d4868a177800 /include/mbgl/style
parent4b171cccf1c4012f8962b022f86c4ac8d73f09df (diff)
downloadqtlocation-mapboxgl-62b0f4cde289e5918c41d5b69b0a03baa6821862.tar.gz
[core] Add stretches and content to style::Image
Diffstat (limited to 'include/mbgl/style')
-rw-r--r--include/mbgl/style/image.hpp46
1 files changed, 45 insertions, 1 deletions
diff --git a/include/mbgl/style/image.hpp b/include/mbgl/style/image.hpp
index ff3bfedf46..bbea081c71 100644
--- a/include/mbgl/style/image.hpp
+++ b/include/mbgl/style/image.hpp
@@ -2,15 +2,52 @@
#include <mbgl/util/image.hpp>
#include <mbgl/util/immutable.hpp>
+#include <mbgl/util/optional.hpp>
#include <string>
+#include <utility>
+#include <vector>
namespace mbgl {
namespace style {
+using ImageStretch = std::pair<float, float>;
+using ImageStretches = std::vector<ImageStretch>;
+
+class ImageContent {
+public:
+ float left;
+ float top;
+ float right;
+ float bottom;
+
+ bool operator==(const ImageContent& rhs) const {
+ return left == rhs.left && top == rhs.top && right == rhs.right && bottom == rhs.bottom;
+ }
+};
+
class Image {
public:
- Image(std::string id, PremultipliedImage&&, float pixelRatio, bool sdf = false);
+ Image(std::string id,
+ PremultipliedImage&&,
+ float pixelRatio,
+ bool sdf,
+ ImageStretches stretchX = {},
+ ImageStretches stretchY = {},
+ optional<ImageContent> content = nullopt);
+ Image(std::string id,
+ PremultipliedImage&& image,
+ float pixelRatio,
+ ImageStretches stretchX = {},
+ ImageStretches stretchY = {},
+ optional<ImageContent> content = nullopt)
+ : Image(std::move(id),
+ std::move(image),
+ pixelRatio,
+ false,
+ std::move(stretchX),
+ std::move(stretchY),
+ std::move(content)) {}
Image(const Image&);
std::string getID() const;
@@ -23,6 +60,13 @@ public:
// Whether this image should be interpreted as a signed distance field icon.
bool isSdf() const;
+ // Stretch areas of this image.
+ const ImageStretches& getStretchX() const;
+ const ImageStretches& getStretchY() const;
+
+ // The space where text can be fit into this image.
+ const ImageContent& getContent() const;
+
class Impl;
Immutable<Impl> baseImpl;
};