summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/outlinepattern_shader.hpp
blob: 0fd6882876426c0f4e84a7982c7e3b10d38fc127 (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
#pragma once

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

namespace mbgl {

class OutlinePatternShader : public Shader {
public:
    OutlinePatternShader(gl::Context&, Defines defines = None);

    void bind(GLbyte *offset) final;

    UniformMatrix<4>                u_matrix               = {"u_matrix",               *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_tl_b         = {"u_pattern_tl_b",         *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_br_b         = {"u_pattern_br_b",         *this};
    Uniform<GLfloat>                u_opacity              = {"u_opacity",              *this};
    Uniform<GLfloat>                u_mix                  = {"u_mix",                  *this};
    Uniform<GLfloat>                u_scale_a              = {"u_scale_a",              *this};
    Uniform<GLfloat>                u_scale_b              = {"u_scale_b",              *this};
    Uniform<GLfloat>                u_tile_units_to_pixels = {"u_tile_units_to_pixels", *this};
    Uniform<GLint>                  u_image                = {"u_image",                *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_size_a       = {"u_pattern_size_a",       *this};
    Uniform<std::array<GLfloat, 2>> u_pattern_size_b       = {"u_pattern_size_b",       *this};
    Uniform<std::array<GLfloat, 2>> u_pixel_coord_upper    = {"u_pixel_coord_upper",    *this};
    Uniform<std::array<GLfloat, 2>> u_pixel_coord_lower    = {"u_pixel_coord_lower",    *this};
    Uniform<std::array<GLfloat, 2>> u_world                = {"u_world",                *this};
};

} // namespace mbgl