summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/linepattern_shader.hpp
blob: 0d3e98c83413e23a2ee893bec57ca62af07ec50b (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
#ifndef MBGL_SHADER_SHADER_LINEPATTERN
#define MBGL_SHADER_SHADER_LINEPATTERN

#include <mbgl/shader/shader.hpp>
#include <mbgl/shader/uniform.hpp>

namespace mbgl {

class LinepatternShader : public Shader {
public:
    LinepatternShader(gl::GLObjectStore&);

    void bind(GLbyte *offset) final;

    UniformMatrix<4>                u_matrix         = {"u_matrix",         *this};
    UniformMatrix<4>                u_exmatrix       = {"u_exmatrix",       *this};
    Uniform<std::array<GLfloat, 2>> u_linewidth      = {"u_linewidth",      *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_size_a = {"u_pattern_size_a", *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_tl_a   = {"u_pattern_tl_a",   *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_br_a   = {"u_pattern_br_a",   *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_size_b = {"u_pattern_size_b", *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_tl_b   = {"u_pattern_tl_b",   *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_br_b   = {"u_pattern_br_b",   *this};
    Uniform<GLfloat>                u_ratio          = {"u_ratio",          *this};
    Uniform<GLfloat>                u_point          = {"u_point",          *this};
    Uniform<GLfloat>                u_blur           = {"u_blur",           *this};
    Uniform<GLfloat>                u_fade           = {"u_fade",           *this};
    Uniform<GLfloat>                u_opacity        = {"u_opacity",        *this};
    Uniform<GLfloat>                u_extra          = {"u_extra",          *this};
    Uniform<GLfloat>                u_offset         = {"u_offset",         *this};
    UniformMatrix<2>                u_antialiasingmatrix  = {"u_antialiasingmatrix",  *this};

private:
    GLint a_data = -1;
};
} // namespace mbgl

#endif