summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMolly Lloyd <molly@mapbox.com>2018-08-02 15:11:38 -0700
committerMolly Lloyd <molly@mapbox.com>2018-08-27 13:13:47 -0700
commitff4eb32fb0cecfdd216bc0a5a4dc1a57b047e49e (patch)
treee6d7ea6d8319f06004a95d6b813e87dd70b5362a
parentb6f27e00311c1e0a17352a7e20cce596dc615dfe (diff)
downloadqtlocation-mapboxgl-ff4eb32fb0cecfdd216bc0a5a4dc1a57b047e49e.tar.gz
[core] cleanup from function->expression rebase
-rw-r--r--src/mbgl/programs/line_program.cpp4
-rw-r--r--src/mbgl/renderer/buckets/line_bucket.cpp2
-rw-r--r--src/mbgl/renderer/data_driven_property_evaluator.hpp15
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.cpp5
-rw-r--r--src/mbgl/renderer/paint_property_binder.hpp12
-rw-r--r--src/mbgl/renderer/possibly_evaluated_property_value.hpp7
-rw-r--r--src/mbgl/tile/geometry_tile.hpp1
-rw-r--r--src/mbgl/tile/geometry_tile_worker.cpp1
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) {