diff options
author | Molly Lloyd <molly@mapbox.com> | 2018-08-02 15:11:38 -0700 |
---|---|---|
committer | Molly Lloyd <molly@mapbox.com> | 2018-08-27 13:13:47 -0700 |
commit | ff4eb32fb0cecfdd216bc0a5a4dc1a57b047e49e (patch) | |
tree | e6d7ea6d8319f06004a95d6b813e87dd70b5362a | |
parent | b6f27e00311c1e0a17352a7e20cce596dc615dfe (diff) | |
download | qtlocation-mapboxgl-ff4eb32fb0cecfdd216bc0a5a4dc1a57b047e49e.tar.gz |
[core] cleanup from function->expression rebase
-rw-r--r-- | src/mbgl/programs/line_program.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/line_bucket.cpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/data_driven_property_evaluator.hpp | 15 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_line_layer.cpp | 5 | ||||
-rw-r--r-- | src/mbgl/renderer/paint_property_binder.hpp | 12 | ||||
-rw-r--r-- | src/mbgl/renderer/possibly_evaluated_property_value.hpp | 7 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.hpp | 1 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile_worker.cpp | 1 |
8 files changed, 20 insertions, 27 deletions
diff --git a/src/mbgl/programs/line_program.cpp b/src/mbgl/programs/line_program.cpp index 87b09edf7d..205f615264 100644 --- a/src/mbgl/programs/line_program.cpp +++ b/src/mbgl/programs/line_program.cpp @@ -91,7 +91,8 @@ LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvalu const float pixelRatio) { const auto linepattern = properties.get<LinePattern>(); - const auto linePatternValue = linepattern.constantOr(mbgl::Faded<std::basic_string<char> >{ "", "", 2.0f, 1.0f, 0.5f}); + // TODO get real crossfade values + const auto linePatternValue = linepattern.constantOr(mbgl::Faded<std::basic_string<char> >{ "", "", 1.0f, 2.0f, 1.0f}); const auto tileRatio = 1 / tile.id.pixelsToTileUnits(1, state.getIntegerZoom()); @@ -100,7 +101,6 @@ LinePatternProgram::uniformValues(const RenderLinePaintProperties::PossiblyEvalu tile, state, pixelsToGLUnits, - // TODO get real pixel ratio uniforms::u_scale::Value{ {{ pixelRatio, tileRatio, pattern.fromScale, pattern.toScale}} }, uniforms::u_texsize::Value{ atlasSize }, uniforms::u_fade::Value{ linePatternValue.t }, diff --git a/src/mbgl/renderer/buckets/line_bucket.cpp b/src/mbgl/renderer/buckets/line_bucket.cpp index f47f805d58..5e6845cf37 100644 --- a/src/mbgl/renderer/buckets/line_bucket.cpp +++ b/src/mbgl/renderer/buckets/line_bucket.cpp @@ -15,7 +15,7 @@ LineBucket::LineBucket(const style::LineLayoutProperties::PossiblyEvaluated layo std::map<std::string, RenderLinePaintProperties::PossiblyEvaluated> layerPaintProperties, const float zoom_, const uint32_t overscaling_) - : Bucket(LayerType::Line) + : Bucket(LayerType::Line), layout(layout_), zoom(zoom_), overscaling(overscaling_) { diff --git a/src/mbgl/renderer/data_driven_property_evaluator.hpp b/src/mbgl/renderer/data_driven_property_evaluator.hpp index a5618cfb6c..f158dc2279 100644 --- a/src/mbgl/renderer/data_driven_property_evaluator.hpp +++ b/src/mbgl/renderer/data_driven_property_evaluator.hpp @@ -58,14 +58,13 @@ public: return ResultType(calculate(defaultValue, defaultValue, defaultValue)); } - ResultType operator()(const style::CameraFunction<T>& function) const { - const T evaluated = parameters.useIntegerZoom ? function.evaluate(floor(parameters.z)) : function.evaluate(parameters.z); - return ResultType(calculate(evaluated, evaluated, evaluated)); - } - - template <class Function> - ResultType operator()(const Function& function) const { - return ResultType(function); + ResultType operator()(const style::PropertyExpression<T>& expression) const { + if (!expression.isFeatureConstant()) { + return ResultType(expression); + } else { + const T evaluated = expression.evaluate(floor(parameters.z)); + return ResultType(calculate(evaluated, evaluated, evaluated)); + } } diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp index 1726b9192b..1ba94f6eef 100644 --- a/src/mbgl/renderer/layers/render_line_layer.cpp +++ b/src/mbgl/renderer/layers/render_line_layer.cpp @@ -113,8 +113,9 @@ void RenderLineLayer::render(PaintParameters& parameters, RenderSource*) { ); }; const auto linepattern = evaluated.get<LinePattern>(); - // need a placeholder value that will trigget line pattern program if the line-pattern value is non-constant - const auto linePatternValue = linepattern.constantOr(mbgl::Faded<std::basic_string<char> >{ "temp", "temp", 2.0f, 1.0f, 0.5f}); + // TODO get real crossfade parameters + // need a placeholder value that will trigger line pattern program if the line-pattern value is non-constant + const auto linePatternValue = linepattern.constantOr(mbgl::Faded<std::basic_string<char> >{ "temp", "temp", 0.5f, 1.0f, 1.0f}); if (!evaluated.get<LineDasharray>().from.empty()) { const LinePatternCap cap = bucket.layout.get<LineCap>() == LineCapType::Round diff --git a/src/mbgl/renderer/paint_property_binder.hpp b/src/mbgl/renderer/paint_property_binder.hpp index 2a4105e5c8..666334ca5f 100644 --- a/src/mbgl/renderer/paint_property_binder.hpp +++ b/src/mbgl/renderer/paint_property_binder.hpp @@ -249,7 +249,7 @@ public: } std::tuple<float> interpolationFactor(float currentZoom) const override { - if (function.useIntegerZoom) { + if (expression.useIntegerZoom) { return std::tuple<float> { expression.interpolationFactor(zoomRange, std::floor(currentZoom)) }; } else { return std::tuple<float> { expression.interpolationFactor(zoomRange, currentZoom) }; @@ -354,7 +354,7 @@ public: } private: - variant<style::CompositeFunction<T>, style::SourceFunction<T>> function; + style::PropertyExpression<T> expression; T defaultValue; Range<float> zoomRange; gl::VertexVector<Vertex> patternToVertexVector; @@ -373,7 +373,7 @@ struct CreateBinder { [&] (const T& constant) -> std::unique_ptr<PaintPropertyBinder<T, T, PossiblyEvaluatedType, A>> { return std::make_unique<ConstantPaintPropertyBinder<T, A>>(constant); }, - [&] (const style::PropertyExpression<T>& expression) -> std::unique_ptr<PaintPropertyBinder<T, A>> { + [&] (const style::PropertyExpression<T>& expression) -> std::unique_ptr<PaintPropertyBinder<T, T, PossiblyEvaluatedType, A>> { if (expression.isZoomConstant()) { return std::make_unique<SourceFunctionPaintPropertyBinder<T, A>>(expression, defaultValue); } else { @@ -392,10 +392,7 @@ struct CreateBinder<T, PossiblyEvaluatedPropertyValue<Faded<T>>> { [&] (const Faded<T>& constant) -> std::unique_ptr<PaintPropertyBinder<T, std::array<uint16_t, 4>, PossiblyEvaluatedPropertyValue<Faded<T>>, A1, A2>> { return std::make_unique<ConstantCrossFadedPaintPropertyBinder<T, A1, A2>>(constant); }, - [&] (const style::SourceFunction<T>& function) { - return std::make_unique<CompositeCrossFadedPaintPropertyBinder<T, A1, A2>>(expression, zoom, defaultValue); - }, - [&] (const style::CompositeFunction<T>& function) { + [&] (const style::PropertyExpression<T>& expression) -> std::unique_ptr<PaintPropertyBinder<T, std::array<uint16_t, 4>, PossiblyEvaluatedPropertyValue<Faded<T>>, A1, A2>> { return std::make_unique<CompositeCrossFadedPaintPropertyBinder<T, A1, A2>>(expression, zoom, defaultValue); } ); @@ -523,6 +520,7 @@ public: return result; } + template <class EvaluatedProperties> static std::vector<std::string> defines(const EvaluatedProperties& currentProperties) { std::vector<std::string> result; diff --git a/src/mbgl/renderer/possibly_evaluated_property_value.hpp b/src/mbgl/renderer/possibly_evaluated_property_value.hpp index 906df1d365..85c125fa91 100644 --- a/src/mbgl/renderer/possibly_evaluated_property_value.hpp +++ b/src/mbgl/renderer/possibly_evaluated_property_value.hpp @@ -91,11 +91,8 @@ public: return this->match( [&] (const Faded<T>& constant_) { return std::vector<optional<T>>{ optional<T>(constant_.to), optional<T>(constant_.from) }; }, - [&] (const style::SourceFunction<T>& function) { - return function.possibleOutputs(); - }, - [&] (const style::CompositeFunction<T>& function) { - return function.possibleOutputs(); + [&] (const style::PropertyExpression<T>& expression) { + return expression.possibleOutputs(); } ); } diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp index e3632798cd..2733fa6dd3 100644 --- a/src/mbgl/tile/geometry_tile.hpp +++ b/src/mbgl/tile/geometry_tile.hpp @@ -117,7 +117,6 @@ private: std::shared_ptr<FeatureIndex> latestFeatureIndex; optional<AlphaImage> glyphAtlasImage; - optional<PremultipliedImage> iconAtlasImage; ImageAtlas iconAtlas; const MapMode mode; diff --git a/src/mbgl/tile/geometry_tile_worker.cpp b/src/mbgl/tile/geometry_tile_worker.cpp index 3798d4f10b..e7f6997c04 100644 --- a/src/mbgl/tile/geometry_tile_worker.cpp +++ b/src/mbgl/tile/geometry_tile_worker.cpp @@ -460,7 +460,6 @@ void GeometryTileWorker::performSymbolLayout() { MBGL_TIMING_START(watch) optional<AlphaImage> glyphAtlasImage; - optional<PremultipliedImage> iconAtlasImage; ImageAtlas iconAtlas; if (symbolLayoutsNeedPreparation) { |