summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/mbgl/style/image.hpp46
-rw-r--r--include/mbgl/util/exception.hpp6
2 files changed, 48 insertions, 4 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;
};
diff --git a/include/mbgl/util/exception.hpp b/include/mbgl/util/exception.hpp
index a9804e96c5..f0d7c64f42 100644
--- a/include/mbgl/util/exception.hpp
+++ b/include/mbgl/util/exception.hpp
@@ -10,9 +10,9 @@ struct Exception : std::runtime_error {
Exception(const std::string &msg) : std::runtime_error(msg) {}
};
-struct SpriteImageException : Exception {
- SpriteImageException(const char *msg) : Exception(msg) {}
- SpriteImageException(const std::string &msg) : Exception(msg) {}
+struct StyleImageException : Exception {
+ StyleImageException(const char *msg) : Exception(msg) {}
+ StyleImageException(const std::string &msg) : Exception(msg) {}
};
struct MisuseException : Exception {