diff options
Diffstat (limited to 'src/mbgl/renderer/symbol_bucket.cpp')
-rw-r--r-- | src/mbgl/renderer/symbol_bucket.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/mbgl/renderer/symbol_bucket.cpp b/src/mbgl/renderer/symbol_bucket.cpp index 0f2c89339f..9d4bde9d07 100644 --- a/src/mbgl/renderer/symbol_bucket.cpp +++ b/src/mbgl/renderer/symbol_bucket.cpp @@ -1,19 +1,25 @@ #include <mbgl/renderer/symbol_bucket.hpp> #include <mbgl/renderer/painter.hpp> +#include <mbgl/style/bucket_parameters.hpp> #include <mbgl/style/layers/symbol_layer.hpp> +#include <mbgl/style/layers/symbol_layer_impl.hpp> namespace mbgl { using namespace style; -SymbolBucket::SymbolBucket(const MapMode mode_, - style::SymbolLayoutProperties::Evaluated layout_, +SymbolBucket::SymbolBucket(style::SymbolLayoutProperties::Evaluated layout_, + const std::unordered_map<std::string, style::SymbolPaintProperties::Evaluated>& layerPaintProperties, + float zoom, bool sdfIcons_, bool iconsNeedLinear_) - : mode(mode_), - layout(std::move(layout_)), + : layout(std::move(layout_)), sdfIcons(sdfIcons_), iconsNeedLinear(iconsNeedLinear_) { + for (const auto& pair : layerPaintProperties) { + paintPropertyBinders.emplace(pair.first, + SymbolIconProgram::PaintPropertyBinders(pair.second, zoom)); + } } void SymbolBucket::upload(gl::Context& context) { @@ -32,6 +38,10 @@ void SymbolBucket::upload(gl::Context& context) { collisionBox.indexBuffer = context.createIndexBuffer(std::move(collisionBox.lines)); } + for (auto& pair : paintPropertyBinders) { + pair.second.upload(context); + } + uploaded = true; } |