summaryrefslogtreecommitdiff
path: root/src/mbgl/programs/line_program.hpp
diff options
context:
space:
mode:
authorAnsis Brammanis <brammanis@gmail.com>2016-12-14 15:42:25 -0800
committerJohn Firebaugh <john.firebaugh@gmail.com>2016-12-21 15:46:36 -0800
commit29099399a91a330c5fdde2e0acaf4c58687574d6 (patch)
tree93bd45643990b5329807de80aa3d807c1ce4c500 /src/mbgl/programs/line_program.hpp
parent38b5cb0c7766152f7e49cce8bd6c5d3e04dd0663 (diff)
downloadqtlocation-mapboxgl-29099399a91a330c5fdde2e0acaf4c58687574d6.tar.gz
[core] clearer pitched line antialiasing
ported from -js: ef5582dd3bc5c15a3112e875ed66494dab8e9d0b Project the extrusion and compare it's projected pixel length with the actual pixel length and adjust antialiasing accordingly. The previous approach calculated the adjustment much more indirectly and had no intuitive explanation.
Diffstat (limited to 'src/mbgl/programs/line_program.hpp')
-rw-r--r--src/mbgl/programs/line_program.hpp17
1 files changed, 8 insertions, 9 deletions
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,