summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json2
-rw-r--r--src/mbgl/programs/line_program.cpp22
-rw-r--r--src/mbgl/programs/line_program.hpp17
-rw-r--r--src/mbgl/renderer/painter_line.cpp5
4 files changed, 22 insertions, 24 deletions
diff --git a/package.json b/package.json
index c449c3ee48..ff549ff844 100644
--- a/package.json
+++ b/package.json
@@ -22,7 +22,7 @@
"ejs": "^2.4.1",
"express": "^4.11.1",
"lodash": "^4.16.4",
- "mapbox-gl": "mapbox/mapbox-gl-js#eb6c6596c6a7a61363d30356674e0002153b1d19",
+ "mapbox-gl": "mapbox/mapbox-gl-js#ef5582dd3bc5c15a3112e875ed66494dab8e9d0b",
"mapbox-gl-style-spec": "mapbox/mapbox-gl-style-spec#49e8b407bdbbe6f7c92dbcb56d3d51f425fc2653",
"mapbox-gl-test-suite": "mapbox/mapbox-gl-test-suite#da53a81453068f4c2b440f9077d6bd5e7e14ff3d",
"mkdirp": "^0.5.1",
diff --git a/src/mbgl/programs/line_program.cpp b/src/mbgl/programs/line_program.cpp
index cd53337c10..f7054d3398 100644
--- a/src/mbgl/programs/line_program.cpp
+++ b/src/mbgl/programs/line_program.cpp
@@ -16,18 +16,9 @@ template <class Values, class...Args>
Values makeValues(const LinePaintProperties::Evaluated& properties,
const RenderTile& tile,
const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits,
Args&&... args) {
- mat2 antialiasingMatrix;
- matrix::identity(antialiasingMatrix);
- matrix::scale(antialiasingMatrix, antialiasingMatrix, 1.0, std::cos(state.getPitch()));
- matrix::rotate(antialiasingMatrix, antialiasingMatrix, state.getAngle());
-
- // calculate how much longer the real world distance is at the top of the screen
- // than at the middle of the screen.
- float topedgelength = std::sqrt(std::pow(state.getSize().height, 2.0f) / 4.0f * (1.0f + std::pow(state.getCameraToCenterDistance(), 2.0f)));
- float x = state.getSize().height / 2.0f * std::tan(state.getPitch());
-
return Values {
uniforms::u_matrix::Value{
tile.translatedMatrix(properties.get<LineTranslate>(),
@@ -39,9 +30,8 @@ Values makeValues(const LinePaintProperties::Evaluated& properties,
uniforms::u_gapwidth::Value{ properties.get<LineGapWidth>() },
uniforms::u_blur::Value{ properties.get<LineBlur>() },
uniforms::u_offset::Value{ properties.get<LineOffset>() },
- uniforms::u_antialiasingmatrix::Value{ antialiasingMatrix },
uniforms::u_ratio::Value{ 1.0f / tile.id.pixelsToTileUnits(1.0, state.getZoom()) },
- uniforms::u_extra::Value{ (topedgelength + x) / topedgelength - 1.0f },
+ uniforms::u_gl_units_to_pixels::Value{{{ 1.0f / pixelsToGLUnits[0], 1.0f / pixelsToGLUnits[1] }}},
std::forward<Args>(args)...
};
}
@@ -49,11 +39,13 @@ Values makeValues(const LinePaintProperties::Evaluated& properties,
LineProgram::UniformValues
LineProgram::uniformValues(const LinePaintProperties::Evaluated& properties,
const RenderTile& tile,
- const TransformState& state) {
+ const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits) {
return makeValues<LineProgram::UniformValues>(
properties,
tile,
state,
+ pixelsToGLUnits,
uniforms::u_color::Value{ properties.get<LineColor>() }
);
}
@@ -63,6 +55,7 @@ LineSDFProgram::uniformValues(const LinePaintProperties::Evaluated& properties,
float pixelRatio,
const RenderTile& tile,
const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits,
const LinePatternPos& posA,
const LinePatternPos& posB,
float dashLineWidth,
@@ -84,6 +77,7 @@ LineSDFProgram::uniformValues(const LinePaintProperties::Evaluated& properties,
properties,
tile,
state,
+ pixelsToGLUnits,
uniforms::u_color::Value{ properties.get<LineColor>() },
uniforms::u_patternscale_a::Value{ scaleA },
uniforms::u_patternscale_b::Value{ scaleB },
@@ -99,6 +93,7 @@ LinePatternProgram::UniformValues
LinePatternProgram::uniformValues(const LinePaintProperties::Evaluated& properties,
const RenderTile& tile,
const TransformState& state,
+ const std::array<float, 2>& pixelsToGLUnits,
const SpriteAtlasPosition& posA,
const SpriteAtlasPosition& posB) {
std::array<float, 2> sizeA {{
@@ -115,6 +110,7 @@ LinePatternProgram::uniformValues(const LinePaintProperties::Evaluated& properti
properties,
tile,
state,
+ pixelsToGLUnits,
uniforms::u_pattern_tl_a::Value{ posA.tl },
uniforms::u_pattern_br_a::Value{ posA.br },
uniforms::u_pattern_tl_b::Value{ posB.tl },
diff --git a/src/mbgl/programs/line_program.hpp b/src/mbgl/programs/line_program.hpp
index 059806ffb2..9b97cc47a9 100644
--- a/src/mbgl/programs/line_program.hpp
+++ b/src/mbgl/programs/line_program.hpp
@@ -22,7 +22,6 @@ namespace uniforms {
MBGL_DEFINE_UNIFORM_SCALAR(float, u_ratio);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_width);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_gapwidth);
-MBGL_DEFINE_UNIFORM_SCALAR(float, u_extra);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_offset);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_tex_y_a);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_tex_y_b);
@@ -30,7 +29,7 @@ MBGL_DEFINE_UNIFORM_SCALAR(float, u_sdfgamma);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_fade);
MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_patternscale_a);
MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_patternscale_b);
-MBGL_DEFINE_UNIFORM_MATRIX(double, 2, u_antialiasingmatrix);
+MBGL_DEFINE_UNIFORM_VECTOR(float, 2, u_gl_units_to_pixels);
} // namespace uniforms
struct LineAttributes : gl::Attributes<
@@ -93,9 +92,8 @@ class LineProgram : public Program<
uniforms::u_gapwidth,
uniforms::u_blur,
uniforms::u_offset,
- uniforms::u_antialiasingmatrix,
uniforms::u_ratio,
- uniforms::u_extra,
+ uniforms::u_gl_units_to_pixels,
uniforms::u_color>>
{
public:
@@ -103,7 +101,8 @@ public:
static UniformValues uniformValues(const style::LinePaintProperties::Evaluated&,
const RenderTile&,
- const TransformState&);
+ const TransformState&,
+ const std::array<float, 2>& pixelsToGLUnits);
};
class LinePatternProgram : public Program<
@@ -117,9 +116,8 @@ class LinePatternProgram : public Program<
uniforms::u_gapwidth,
uniforms::u_blur,
uniforms::u_offset,
- uniforms::u_antialiasingmatrix,
uniforms::u_ratio,
- uniforms::u_extra,
+ uniforms::u_gl_units_to_pixels,
uniforms::u_pattern_tl_a,
uniforms::u_pattern_br_a,
uniforms::u_pattern_tl_b,
@@ -135,6 +133,7 @@ public:
static UniformValues uniformValues(const style::LinePaintProperties::Evaluated&,
const RenderTile&,
const TransformState&,
+ const std::array<float, 2>& pixelsToGLUnits,
const SpriteAtlasPosition& posA,
const SpriteAtlasPosition& posB);
};
@@ -150,9 +149,8 @@ class LineSDFProgram : public Program<
uniforms::u_gapwidth,
uniforms::u_blur,
uniforms::u_offset,
- uniforms::u_antialiasingmatrix,
uniforms::u_ratio,
- uniforms::u_extra,
+ uniforms::u_gl_units_to_pixels,
uniforms::u_color,
uniforms::u_patternscale_a,
uniforms::u_patternscale_b,
@@ -169,6 +167,7 @@ public:
float pixelRatio,
const RenderTile&,
const TransformState&,
+ const std::array<float, 2>& pixelsToGLUnits,
const LinePatternPos& posA,
const LinePatternPos& posB,
float dashLineWidth,
diff --git a/src/mbgl/renderer/painter_line.cpp b/src/mbgl/renderer/painter_line.cpp
index a66f53a856..012746d2f2 100644
--- a/src/mbgl/renderer/painter_line.cpp
+++ b/src/mbgl/renderer/painter_line.cpp
@@ -51,6 +51,7 @@ void Painter::renderLine(PaintParameters& parameters,
frame.pixelRatio,
tile,
state,
+ pixelsToGLUnits,
posA,
posB,
layer.impl->dashLineWidth,
@@ -72,6 +73,7 @@ void Painter::renderLine(PaintParameters& parameters,
properties,
tile,
state,
+ pixelsToGLUnits,
*posA,
*posB));
@@ -80,7 +82,8 @@ void Painter::renderLine(PaintParameters& parameters,
LineProgram::uniformValues(
properties,
tile,
- state));
+ state,
+ pixelsToGLUnits));
}
}