summaryrefslogtreecommitdiff
path: root/src/mbgl/shader/outlinepattern_shader.hpp
blob: 795d390f19cdb3aff2c8fc08ede69ec3b9ab48d7 (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(int8_t* offset) final;

    UniformMatrix<4>              u_matrix               = {"u_matrix",               *this};
    Uniform<std::array<float, 2>> u_pattern_tl_a         = {"u_pattern_tl_a",         *this};
    Uniform<std::array<float, 2>> u_pattern_br_a         = {"u_pattern_br_a",         *this};
    Uniform<std::array<float, 2>> u_pattern_tl_b         = {"u_pattern_tl_b",         *this};
    Uniform<std::array<float, 2>> u_pattern_br_b         = {"u_pattern_br_b",         *this};
    Uniform<float>                u_opacity              = {"u_opacity",              *this};
    Uniform<float>                u_mix                  = {"u_mix",                  *this};
    Uniform<float>                u_scale_a              = {"u_scale_a",              *this};
    Uniform<float>                u_scale_b              = {"u_scale_b",              *this};
    Uniform<float>                u_tile_units_to_pixels = {"u_tile_units_to_pixels", *this};
    Uniform<int32_t>              u_image                = {"u_image",                *this};
    Uniform<std::array<float, 2>> u_pattern_size_a       = {"u_pattern_size_a",       *this};
    Uniform<std::array<float, 2>> u_pattern_size_b       = {"u_pattern_size_b",       *this};
    Uniform<std::array<float, 2>> u_pixel_coord_upper    = {"u_pixel_coord_upper",    *this};
    Uniform<std::array<float, 2>> u_pixel_coord_lower    = {"u_pixel_coord_lower",    *this};
    Uniform<std::array<float, 2>> u_world                = {"u_world",                *this};
};

} // namespace mbgl