diff options
author | Ansis Brammanis <brammanis@gmail.com> | 2016-12-14 15:42:25 -0800 |
---|---|---|
committer | John Firebaugh <john.firebaugh@gmail.com> | 2016-12-21 15:46:36 -0800 |
commit | 29099399a91a330c5fdde2e0acaf4c58687574d6 (patch) | |
tree | 93bd45643990b5329807de80aa3d807c1ce4c500 /src/mbgl/programs/line_program.hpp | |
parent | 38b5cb0c7766152f7e49cce8bd6c5d3e04dd0663 (diff) | |
download | qtlocation-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.hpp | 17 |
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, |