summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r--src/mbgl/renderer/buckets/line_bucket.cpp20
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.cpp53
-rw-r--r--src/mbgl/renderer/layers/render_line_layer.hpp5
-rw-r--r--src/mbgl/renderer/layers/render_symbol_layer.cpp3
4 files changed, 39 insertions, 42 deletions
diff --git a/src/mbgl/renderer/buckets/line_bucket.cpp b/src/mbgl/renderer/buckets/line_bucket.cpp
index 1cd1f13851..0bda994160 100644
--- a/src/mbgl/renderer/buckets/line_bucket.cpp
+++ b/src/mbgl/renderer/buckets/line_bucket.cpp
@@ -148,7 +148,7 @@ void LineBucket::addGeometry(const GeometryCoordinates& coordinates,
maxLineLength = std::max<double>(maxLineLength, total_length);
lineDistances = Distances{
*numericValue<double>(clip_start_it->second), *numericValue<double>(clip_end_it->second), total_length};
- lineClips.push_back(LineClip{ lineDistances->clipStart, lineDistances->clipEnd });
+ lineClips.push_back(LineClip{lineDistances->clipStart, lineDistances->clipEnd});
}
const LineJoinType joinType = layout.evaluate<LineJoin>(zoom, feature, canonical);
@@ -478,11 +478,10 @@ void LineBucket::addCurrentVertex(const GeometryCoordinate& currentCoordinate,
extrude = extrude - (util::perp(normal) * endLeft);
vertices.emplace_back(LineProgram::layoutVertex(currentCoordinate, extrude, round, false, endLeft, scaledDistance * LINE_DISTANCE_SCALE));
if (lineDistances) {
- vertices2.emplace_back(LineLayoutVertexExt {
- { static_cast<float>(lineDistances->lineDistance(distance) - lineDistances->clipStart) },
- { static_cast<float>(lineDistances->clipEnd - lineDistances->clipStart) },
- { static_cast<uint32_t>(lineClips.size()) }
- });
+ vertices2.emplace_back(
+ LineLayoutVertexExt{{static_cast<float>(lineDistances->lineDistance(distance) - lineDistances->clipStart)},
+ {static_cast<float>(lineDistances->clipEnd - lineDistances->clipStart)},
+ {static_cast<uint32_t>(lineClips.size())}});
}
e3 = vertices.elements() - 1 - startVertex;
if (e1 >= 0 && e2 >= 0) {
@@ -496,11 +495,10 @@ void LineBucket::addCurrentVertex(const GeometryCoordinate& currentCoordinate,
extrude = extrude - (util::perp(normal) * endRight);
vertices.emplace_back(LineProgram::layoutVertex(currentCoordinate, extrude, round, true, -endRight, scaledDistance * LINE_DISTANCE_SCALE));
if (lineDistances) {
- vertices2.emplace_back(LineLayoutVertexExt {
- { static_cast<float>(lineDistances->lineDistance(distance) - lineDistances->clipStart) },
- { static_cast<float>(lineDistances->clipEnd - lineDistances->clipStart) },
- { static_cast<uint32_t>(lineClips.size()) }
- });
+ vertices2.emplace_back(
+ LineLayoutVertexExt{{static_cast<float>(lineDistances->lineDistance(distance) - lineDistances->clipStart)},
+ {static_cast<float>(lineDistances->clipEnd - lineDistances->clipStart)},
+ {static_cast<uint32_t>(lineClips.size())}});
}
e3 = vertices.elements() - 1 - startVertex;
if (e1 >= 0 && e2 >= 0) {
diff --git a/src/mbgl/renderer/layers/render_line_layer.cpp b/src/mbgl/renderer/layers/render_line_layer.cpp
index b0ff011447..25ed647aae 100644
--- a/src/mbgl/renderer/layers/render_line_layer.cpp
+++ b/src/mbgl/renderer/layers/render_line_layer.cpp
@@ -1,6 +1,8 @@
#include <mbgl/geometry/feature_index.hpp>
#include <mbgl/geometry/line_atlas.hpp>
#include <mbgl/gfx/cull_face_mode.hpp>
+#include <mbgl/math/clamp.hpp>
+#include <mbgl/math/log2.hpp>
#include <mbgl/programs/line_program.hpp>
#include <mbgl/programs/programs.hpp>
#include <mbgl/renderer/buckets/line_bucket.hpp>
@@ -15,8 +17,6 @@
#include <mbgl/tile/tile.hpp>
#include <mbgl/util/intersection_tests.hpp>
#include <mbgl/util/math.hpp>
-#include <mbgl/math/log2.hpp>
-#include <mbgl/math/clamp.hpp>
namespace mbgl {
@@ -76,8 +76,8 @@ void RenderLineLayer::prepare(const LayerPrepareParameters& params) {
const auto& evaluated = getEvaluated<LineLayerProperties>(renderData->layerProperties);
auto& bucket = static_cast<LineBucket&>(*renderData->bucket);
if (!evaluated.get<LineDasharray>().from.empty()) {
- const LinePatternCap cap = bucket.layout.get<LineCap>() == LineCapType::Round
- ? LinePatternCap::Round : LinePatternCap::Square;
+ const LinePatternCap cap =
+ bucket.layout.get<LineCap>() == LineCapType::Round ? LinePatternCap::Round : LinePatternCap::Square;
// Ensures that the dash data gets added to the atlas.
params.lineAtlas.getDashPatternTexture(
evaluated.get<LineDasharray>().from, evaluated.get<LineDasharray>().to, cap);
@@ -88,8 +88,7 @@ void RenderLineLayer::prepare(const LayerPrepareParameters& params) {
}
void RenderLineLayer::upload(gfx::UploadPass& uploadPass) {
- if (unevaluated.get<LineGradient>().getValue().isUndefined())
- return;
+ if (unevaluated.get<LineGradient>().getValue().isUndefined()) return;
for (const RenderTile& tile : *renderTiles) {
const LayerRenderData* renderData = tile.getLayerRenderData(*baseImpl);
@@ -207,30 +206,25 @@ void RenderLineLayer::render(PaintParameters& parameters) {
assert(bucket.gradientTexture);
auto& programInstance = parameters.programs.getLineLayerPrograms().lineGradient;
- auto&& uniformValues = LineGradientProgram::layoutUniformValues(
- evaluated,
- tile,
- parameters.state,
- parameters.pixelsToGLUnits,
- parameters.pixelRatio,
- bucket.lineClips.size());
+ auto&& uniformValues = LineGradientProgram::layoutUniformValues(evaluated,
+ tile,
+ parameters.state,
+ parameters.pixelsToGLUnits,
+ parameters.pixelRatio,
+ bucket.lineClips.size());
auto&& textureBindings = LineGradientProgram::TextureBindings{
- textures::image::Value{ bucket.gradientTexture->getResource(), samplerFiler },
+ textures::image::Value{bucket.gradientTexture->getResource(), samplerFiler},
};
const auto& paintPropertyBinders = bucket.paintPropertyBinders.at(getID());
const auto allUniformValues =
- programInstance.computeAllUniformValues(std::forward<decltype(uniformValues)>(uniformValues),
- paintPropertyBinders,
- evaluated,
- parameters.state.getZoom());
+ LineGradientProgram::computeAllUniformValues(std::forward<decltype(uniformValues)>(uniformValues),
+ paintPropertyBinders,
+ evaluated,
+ parameters.state.getZoom());
const auto allAttributeBindings = LineGradientProgram::computeAllAttributeBindings(
- *bucket.vertexBuffer,
- *bucket.vertexBuffer2,
- paintPropertyBinders,
- evaluated
- );
+ *bucket.vertexBuffer, *bucket.vertexBuffer2, paintPropertyBinders, evaluated);
- checkRenderability(parameters, programInstance.activeBindingCount(allAttributeBindings));
+ checkRenderability(parameters, LineGradientProgram::activeBindingCount(allAttributeBindings));
programInstance.draw(parameters.context,
*parameters.renderPass,
@@ -332,7 +326,10 @@ bool RenderLineLayer::queryIntersectsFeature(const GeometryCoordinates& queryGeo
halfWidth);
}
-void RenderLineLayer::updateColorRamp(LineBucket& lineBucket, const RenderTile& tile, const RenderSource& source, const TransformState& state) {
+void RenderLineLayer::updateColorRamp(LineBucket& lineBucket,
+ const RenderTile& tile,
+ const RenderSource& source,
+ const TransformState& state) {
auto colorValue = unevaluated.get<LineGradient>().getValue();
if (colorValue.isUndefined()) {
return;
@@ -344,14 +341,14 @@ void RenderLineLayer::updateColorRamp(LineBucket& lineBucket, const RenderTile&
if (isStepExpression) {
const uint8_t sourceMaxZoom = source.getMaxZoom();
const uint8_t zoomDiff = static_cast<uint8_t>(state.getMaxZoom()) - tile.id.canonical.z;
- const float potentialOverzoom = tile.id.canonical.z == sourceMaxZoom ?
- ceilf(static_cast<float>(1 << zoomDiff)) : 1.0f;
+ const float potentialOverzoom =
+ tile.id.canonical.z == sourceMaxZoom ? ceilf(static_cast<float>(1 << zoomDiff)) : 1.0f;
const float lineLength = lineBucket.maxLineLength / static_cast<float>(util::EXTENT);
// Logical pixel tile size is 512px, and 1024px right before current zoom + 1
const float maxTileSize = 1024;
// Maximum possible texture coverage heuristic, bound by hardware max texture size
const float maxTextureCoverage = lineLength * maxTileSize * potentialOverzoom;
- const uint32_t nextPowerOf2 = static_cast<uint32_t>(powf(2.0f, ceilf(util::log2<float>(maxTextureCoverage))));
+ const auto nextPowerOf2 = static_cast<uint32_t>(powf(2.0f, ceilf(util::log2<float>(maxTextureCoverage))));
textureResolution = util::clamp<uint32_t>(nextPowerOf2, 256, gfx::Context::maxTextureSize);
samplerFiler = gfx::TextureFilterType::Nearest;
diff --git a/src/mbgl/renderer/layers/render_line_layer.hpp b/src/mbgl/renderer/layers/render_line_layer.hpp
index 45592822d1..3079d0076f 100644
--- a/src/mbgl/renderer/layers/render_line_layer.hpp
+++ b/src/mbgl/renderer/layers/render_line_layer.hpp
@@ -41,7 +41,10 @@ private:
style::LinePaintProperties::Unevaluated unevaluated;
float getLineWidth(const GeometryTileFeature&, float, const FeatureState&) const;
- void updateColorRamp(LineBucket& lineBucket, const RenderTile& tile, const RenderSource& source, const TransformState& state);
+ void updateColorRamp(LineBucket& lineBucket,
+ const RenderTile& tile,
+ const RenderSource& source,
+ const TransformState& state);
uint32_t gradientVersion;
gfx::TextureFilterType samplerFiler;
diff --git a/src/mbgl/renderer/layers/render_symbol_layer.cpp b/src/mbgl/renderer/layers/render_symbol_layer.cpp
index 200a87fe9e..ddcff1eed5 100644
--- a/src/mbgl/renderer/layers/render_symbol_layer.cpp
+++ b/src/mbgl/renderer/layers/render_symbol_layer.cpp
@@ -410,8 +410,7 @@ void RenderSymbolLayer::render(PaintParameters& parameters) {
textureBindings,
this->getID() + "/" + suffix
);
- }
- );
+ });
};
for (const RenderTile& tile : *renderTiles) {