diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2017-04-21 09:19:47 -0700 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2017-04-25 17:23:54 -0700 |
commit | 3c175adf30546fe58713b8fed29ac35a85e150be (patch) | |
tree | 5666e9bcf311ed1b86a13444e50dc7a030c10da9 /src/mbgl/style/layers/symbol_layer_impl.cpp | |
parent | ea8ec38df156c6683c886253dbb1f6bc828686ff (diff) | |
download | qtlocation-mapboxgl-3c175adf30546fe58713b8fed29ac35a85e150be.tar.gz |
[core] split off render layers
Diffstat (limited to 'src/mbgl/style/layers/symbol_layer_impl.cpp')
-rw-r--r-- | src/mbgl/style/layers/symbol_layer_impl.cpp | 96 |
1 files changed, 3 insertions, 93 deletions
diff --git a/src/mbgl/style/layers/symbol_layer_impl.cpp b/src/mbgl/style/layers/symbol_layer_impl.cpp index 109d1c43e7..c99dd8ad70 100644 --- a/src/mbgl/style/layers/symbol_layer_impl.cpp +++ b/src/mbgl/style/layers/symbol_layer_impl.cpp @@ -1,101 +1,11 @@ #include <mbgl/style/layers/symbol_layer_impl.hpp> -#include <mbgl/style/property_evaluation_parameters.hpp> -#include <mbgl/layout/symbol_layout.hpp> -#include <mbgl/renderer/bucket.hpp> +#include <mbgl/renderer/render_symbol_layer.hpp> namespace mbgl { namespace style { -void SymbolLayer::Impl::cascade(const CascadeParameters& parameters) { - paint.cascade(parameters); -} - -bool SymbolLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) { - paint.evaluate(parameters); - - auto hasIconOpacity = paint.evaluated.get<IconColor>().constantOr(Color::black()).a > 0 || - paint.evaluated.get<IconHaloColor>().constantOr(Color::black()).a > 0; - auto hasTextOpacity = paint.evaluated.get<TextColor>().constantOr(Color::black()).a > 0 || - paint.evaluated.get<TextHaloColor>().constantOr(Color::black()).a > 0; - - passes = ((paint.evaluated.get<IconOpacity>().constantOr(1) > 0 && hasIconOpacity && iconSize > 0) - || (paint.evaluated.get<TextOpacity>().constantOr(1) > 0 && hasTextOpacity && textSize > 0)) - ? RenderPass::Translucent : RenderPass::None; - - return paint.hasTransition(); -} - -std::unique_ptr<Bucket> SymbolLayer::Impl::createBucket(const BucketParameters&, const std::vector<const Layer*>&) const { - assert(false); // Should be calling createLayout() instead. - return nullptr; -} - -std::unique_ptr<SymbolLayout> SymbolLayer::Impl::createLayout(const BucketParameters& parameters, - const std::vector<const Layer*>& group, - const GeometryTileLayer& layer, - GlyphDependencies& glyphDependencies, - IconDependencyMap& iconDependencyMap) const { - return std::make_unique<SymbolLayout>(parameters, - group, - layer, - iconDependencyMap[spriteAtlas], - (uintptr_t)spriteAtlas, - glyphDependencies); -} - -IconPaintProperties::Evaluated SymbolLayer::Impl::iconPaintProperties() const { - return IconPaintProperties::Evaluated { - paint.evaluated.get<IconOpacity>(), - paint.evaluated.get<IconColor>(), - paint.evaluated.get<IconHaloColor>(), - paint.evaluated.get<IconHaloWidth>(), - paint.evaluated.get<IconHaloBlur>(), - paint.evaluated.get<IconTranslate>(), - paint.evaluated.get<IconTranslateAnchor>() - }; -} - -TextPaintProperties::Evaluated SymbolLayer::Impl::textPaintProperties() const { - return TextPaintProperties::Evaluated { - paint.evaluated.get<TextOpacity>(), - paint.evaluated.get<TextColor>(), - paint.evaluated.get<TextHaloColor>(), - paint.evaluated.get<TextHaloWidth>(), - paint.evaluated.get<TextHaloBlur>(), - paint.evaluated.get<TextTranslate>(), - paint.evaluated.get<TextTranslateAnchor>() - }; -} - - -SymbolPropertyValues SymbolLayer::Impl::iconPropertyValues(const SymbolLayoutProperties::PossiblyEvaluated& layout_) const { - return SymbolPropertyValues { - layout_.get<IconRotationAlignment>(), // icon-pitch-alignment is not yet implemented; inherit the rotation alignment - layout_.get<IconRotationAlignment>(), - layout_.get<IconSize>(), - paint.evaluated.get<IconTranslate>(), - paint.evaluated.get<IconTranslateAnchor>(), - iconSize, - 1.0f, - paint.evaluated.get<IconHaloColor>().constantOr(Color::black()).a > 0 && - paint.evaluated.get<IconHaloWidth>().constantOr(1), - paint.evaluated.get<IconColor>().constantOr(Color::black()).a > 0 - }; -} - -SymbolPropertyValues SymbolLayer::Impl::textPropertyValues(const SymbolLayoutProperties::PossiblyEvaluated& layout_) const { - return SymbolPropertyValues { - layout_.get<TextPitchAlignment>(), - layout_.get<TextRotationAlignment>(), - layout_.get<TextSize>(), - paint.evaluated.get<TextTranslate>(), - paint.evaluated.get<TextTranslateAnchor>(), - textSize, - 24.0f, - paint.evaluated.get<TextHaloColor>().constantOr(Color::black()).a > 0 && - paint.evaluated.get<TextHaloWidth>().constantOr(1), - paint.evaluated.get<TextColor>().constantOr(Color::black()).a > 0 - }; +std::unique_ptr<RenderLayer> SymbolLayer::Impl::createRenderLayer() const { + return std::make_unique<RenderSymbolLayer>(*this); } } // namespace style |