summaryrefslogtreecommitdiff
path: root/src/map/tile_data.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2014-03-12 15:27:20 +0100
committerKonstantin Käfer <mail@kkaefer.com>2014-03-14 11:36:10 +0100
commitd9589573bc9b437b55ee27f4746627a427aedb69 (patch)
treead94dfba2aa96c5306040ad91ca801865a64d6d4 /src/map/tile_data.cpp
parentdf56f9fbcefa28295992c99096ebc82d3543194f (diff)
downloadqtlocation-mapboxgl-d9589573bc9b437b55ee27f4746627a427aedb69.tar.gz
extract label shaping
Diffstat (limited to 'src/map/tile_data.cpp')
-rw-r--r--src/map/tile_data.cpp12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/map/tile_data.cpp b/src/map/tile_data.cpp
index 5ca0e817af..7110297ead 100644
--- a/src/map/tile_data.cpp
+++ b/src/map/tile_data.cpp
@@ -5,6 +5,7 @@
#include <llmr/geometry/fill_buffer.hpp>
#include <llmr/geometry/line_buffer.hpp>
#include <llmr/geometry/point_buffer.hpp>
+#include <llmr/geometry/text_buffer.hpp>
#include <llmr/geometry/elements_buffer.hpp>
#include <llmr/renderer/fill_bucket.hpp>
#include <llmr/renderer/line_bucket.hpp>
@@ -24,6 +25,7 @@ TileData::TileData(Tile::ID id, const Style& style)
fillVertexBuffer(std::make_shared<FillVertexBuffer>()),
lineVertexBuffer(std::make_shared<LineVertexBuffer>()),
pointVertexBuffer(std::make_shared<PointVertexBuffer>()),
+ textVertexBuffer(std::make_shared<TextVertexBuffer>()),
triangleElementsBuffer(std::make_shared<TriangleElementsBuffer>()),
lineElementsBuffer(std::make_shared<LineElementsBuffer>()),
pointElementsBuffer(std::make_shared<PointElementsBuffer>()),
@@ -157,7 +159,7 @@ std::shared_ptr<Bucket> TileData::createBucket(const VectorTile& tile, const Buc
} else if (bucket_desc.type == BucketType::Text) {
return createTextBucket(tile, layer, bucket_desc);
} else {
- // TODO: create other bucket types.
+ throw std::runtime_error("unknown bucket type");
}
} else {
// The layer specified in the bucket does not exist. Do nothing.
@@ -206,7 +208,7 @@ std::shared_ptr<Bucket> TileData::createTextBucket(const VectorTile& tile, const
}
// TODO: currently hardcoded to use the first font stack.
- const std::map<Value, std::vector<VectorTilePlacement>>& stack = layer.shaping.begin()->second;
+ const std::map<Value, std::vector<VectorTilePlacement>>& shaping = layer.shaping.begin()->second;
std::vector<const VectorTileFace *> faces;
for (const std::string& face : layer.faces) {
@@ -221,11 +223,9 @@ std::shared_ptr<Bucket> TileData::createTextBucket(const VectorTile& tile, const
std::shared_ptr<TextBucket> bucket = std::make_shared<TextBucket>(textVertexBuffer, triangleElementsBuffer, bucket_desc);
FilteredVectorTileLayer filtered_layer(layer, bucket_desc);
- for (pbf feature_pbf : filtered_layer) {
+ for (const pbf& feature_pbf : filtered_layer) {
if (state == State::obsolete) return nullptr;
-
- const VectorTileFeature feature(feature_pbf, layer);
- std::cerr << feature;
+ bucket->addFeature({ feature_pbf, layer }, faces, shaping);
}
return bucket;