diff options
Diffstat (limited to 'src/mbgl/style/layers/fill_layer_impl.cpp')
-rw-r--r-- | src/mbgl/style/layers/fill_layer_impl.cpp | 50 |
1 files changed, 3 insertions, 47 deletions
diff --git a/src/mbgl/style/layers/fill_layer_impl.cpp b/src/mbgl/style/layers/fill_layer_impl.cpp index 19675ca9fb..6ec55a58e3 100644 --- a/src/mbgl/style/layers/fill_layer_impl.cpp +++ b/src/mbgl/style/layers/fill_layer_impl.cpp @@ -1,55 +1,11 @@ #include <mbgl/style/layers/fill_layer_impl.hpp> -#include <mbgl/renderer/fill_bucket.hpp> -#include <mbgl/geometry/feature_index.hpp> -#include <mbgl/util/math.hpp> -#include <mbgl/util/intersection_tests.hpp> +#include <mbgl/renderer/render_fill_layer.hpp> namespace mbgl { namespace style { -void FillLayer::Impl::cascade(const CascadeParameters& parameters) { - paint.cascade(parameters); -} - -bool FillLayer::Impl::evaluate(const PropertyEvaluationParameters& parameters) { - paint.evaluate(parameters); - - if (paint.unevaluated.get<FillOutlineColor>().isUndefined()) { - paint.evaluated.get<FillOutlineColor>() = paint.evaluated.get<FillColor>(); - } - - passes = RenderPass::None; - - if (paint.evaluated.get<FillAntialias>()) { - passes |= RenderPass::Translucent; - } - - if (!paint.unevaluated.get<FillPattern>().isUndefined() - || paint.evaluated.get<FillColor>().constantOr(Color()).a < 1.0f - || paint.evaluated.get<FillOpacity>().constantOr(0) < 1.0f) { - passes |= RenderPass::Translucent; - } else { - passes |= RenderPass::Opaque; - } - - return paint.hasTransition(); -} - -std::unique_ptr<Bucket> FillLayer::Impl::createBucket(const BucketParameters& parameters, const std::vector<const Layer*>& layers) const { - return std::make_unique<FillBucket>(parameters, layers); -} - -bool FillLayer::Impl::queryIntersectsFeature( - const GeometryCoordinates& queryGeometry, - const GeometryTileFeature& feature, - const float, - const float bearing, - const float pixelsToTileUnits) const { - - auto translatedQueryGeometry = FeatureIndex::translateQueryGeometry( - queryGeometry, paint.evaluated.get<FillTranslate>(), paint.evaluated.get<FillTranslateAnchor>(), bearing, pixelsToTileUnits); - - return util::polygonIntersectsMultiPolygon(translatedQueryGeometry.value_or(queryGeometry), feature.getGeometries()); +std::unique_ptr<RenderLayer> FillLayer::Impl::createRenderLayer() const { + return std::make_unique<RenderFillLayer>(*this); } } // namespace style |