summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/line_uniforms.hpp
blob: 8a9c5310b52b812cd015a06b1cc8b6b28badd302 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#pragma once

#include <mbgl/shader/uniforms.hpp>

namespace mbgl {

namespace style {
class LinePaintProperties;
} // namespace style

class RenderTile;
class TransformState;
class LinePatternPos;
class SpriteAtlasPosition;

namespace uniforms {
MBGL_DEFINE_UNIFORM_SCALAR(float, u_ratio);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_linewidth);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_gapwidth);
MBGL_DEFINE_UNIFORM_SCALAR(float, u_antialiasing);
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);
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);
} // namespace uniforms

struct LineColorUniforms : gl::Uniforms<
    uniforms::u_matrix,
    uniforms::u_opacity,
    uniforms::u_linewidth,
    uniforms::u_gapwidth,
    uniforms::u_blur,
    uniforms::u_offset,
    uniforms::u_antialiasing,
    uniforms::u_antialiasingmatrix,
    uniforms::u_ratio,
    uniforms::u_extra,
    uniforms::u_color>
{
    static Values values(const style::LinePaintProperties&,
                         float pixelRatio,
                         const RenderTile&,
                         const TransformState&);
};

struct LineSDFUniforms : gl::Uniforms<
    uniforms::u_matrix,
    uniforms::u_opacity,
    uniforms::u_linewidth,
    uniforms::u_gapwidth,
    uniforms::u_blur,
    uniforms::u_offset,
    uniforms::u_antialiasing,
    uniforms::u_antialiasingmatrix,
    uniforms::u_ratio,
    uniforms::u_extra,
    uniforms::u_color,
    uniforms::u_patternscale_a,
    uniforms::u_patternscale_b,
    uniforms::u_tex_y_a,
    uniforms::u_tex_y_b,
    uniforms::u_mix,
    uniforms::u_sdfgamma,
    uniforms::u_image>
{
    static Values values(const style::LinePaintProperties&,
                         float pixelRatio,
                         const RenderTile&,
                         const TransformState&,
                         const LinePatternPos& posA,
                         const LinePatternPos& posB,
                         float dashLineWidth,
                         float atlasWidth);
};

struct LinePatternUniforms : gl::Uniforms<
    uniforms::u_matrix,
    uniforms::u_opacity,
    uniforms::u_linewidth,
    uniforms::u_gapwidth,
    uniforms::u_blur,
    uniforms::u_offset,
    uniforms::u_antialiasing,
    uniforms::u_antialiasingmatrix,
    uniforms::u_ratio,
    uniforms::u_extra,
    uniforms::u_pattern_tl_a,
    uniforms::u_pattern_br_a,
    uniforms::u_pattern_tl_b,
    uniforms::u_pattern_br_b,
    uniforms::u_pattern_size_a,
    uniforms::u_pattern_size_b,
    uniforms::u_fade,
    uniforms::u_image>
{
    static Values values(const style::LinePaintProperties&,
                         float pixelRatio,
                         const RenderTile&,
                         const TransformState&,
                         const SpriteAtlasPosition& posA,
                         const SpriteAtlasPosition& posB);
};

} // namespace mbgl