summaryrefslogtreecommitdiff
path: root/include/mbgl/renderer/renderer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/mbgl/renderer/renderer.hpp')
-rw-r--r--include/mbgl/renderer/renderer.hpp39
1 files changed, 37 insertions, 2 deletions
diff --git a/include/mbgl/renderer/renderer.hpp b/include/mbgl/renderer/renderer.hpp
index 79782839ee..c7514054e4 100644
--- a/include/mbgl/renderer/renderer.hpp
+++ b/include/mbgl/renderer/renderer.hpp
@@ -21,6 +21,21 @@ namespace gfx {
class RendererBackend;
} // namespace gfx
+struct PlacedSymbolData {
+ // Contents of the label
+ std::u16string key;
+ // If symbol contains text, text collision box in viewport coordinates
+ optional<mapbox::geometry::box<float>> textCollisionBox;
+ // If symbol contains icon, icon collision box in viewport coordinates
+ optional<mapbox::geometry::box<float>> iconCollisionBox;
+ // Symbol text was placed
+ bool textPlaced;
+ // Symbol icon was placed
+ bool iconPlaced;
+ // Symbol text or icon collision box intersects tile borders
+ bool intersectsTileBorder;
+};
+
class Renderer {
public:
Renderer(gfx::RendererBackend&, float pixelRatio_, const optional<std::string>& localFontFamily = {});
@@ -54,12 +69,32 @@ public:
void getFeatureState(FeatureState& state, const std::string& sourceID, const optional<std::string>& sourceLayerID,
const std::string& featureID) const;
- void removeFeatureState(const std::string& sourceID, const optional<std::string>& sourceLayerID,
- const optional<std::string>& featureID, const optional<std::string>& stateKey);
+ void removeFeatureState(const std::string& sourceID,
+ const optional<std::string>& sourceLayerID,
+ const optional<std::string>& featureID,
+ const optional<std::string>& stateKey);
// Debug
void dumpDebugLogs();
+ /**
+ * @brief In Tile map mode, enables or disables collecting of the placed symbols data,
+ * which can be obtained with `getPlacedSymbolsData()`.
+ *
+ * The placed symbols data collecting is disabled by default.
+ */
+ void collectPlacedSymbolData(bool enable);
+
+ /**
+ * @brief If collecting of the placed symbols data is enabled, returns the reference
+ * to the `PlacedSymbolData` vector holding the collected data.
+ *
+ * Note: the returned vector gets re-populated at every `render()` call.
+ *
+ * @return collected placed symbols data
+ */
+ const std::vector<PlacedSymbolData>& getPlacedSymbolsData() const;
+
// Memory
void reduceMemoryUse();
void clearData();