summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/symbol_layer_impl.cpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-04-21 09:19:47 -0700
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-04-25 17:23:54 -0700
commit3c175adf30546fe58713b8fed29ac35a85e150be (patch)
tree5666e9bcf311ed1b86a13444e50dc7a030c10da9 /src/mbgl/style/layers/symbol_layer_impl.cpp
parentea8ec38df156c6683c886253dbb1f6bc828686ff (diff)
downloadqtlocation-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.cpp96
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