diff options
Diffstat (limited to 'src/mbgl/programs/circle_program.hpp')
-rw-r--r-- | src/mbgl/programs/circle_program.hpp | 32 |
1 files changed, 11 insertions, 21 deletions
diff --git a/src/mbgl/programs/circle_program.hpp b/src/mbgl/programs/circle_program.hpp index c9aea1d137..60a5faf649 100644 --- a/src/mbgl/programs/circle_program.hpp +++ b/src/mbgl/programs/circle_program.hpp @@ -5,35 +5,24 @@ #include <mbgl/programs/uniforms.hpp> #include <mbgl/shader/circle.hpp> #include <mbgl/util/geometry.hpp> +#include <mbgl/style/layers/circle_layer_properties.hpp> namespace mbgl { namespace uniforms { -MBGL_DEFINE_UNIFORM_SCALAR(float, u_radius); -MBGL_DEFINE_UNIFORM_SCALAR(Color, u_stroke_color); -MBGL_DEFINE_UNIFORM_SCALAR(float, u_stroke_width); -MBGL_DEFINE_UNIFORM_SCALAR(float, u_stroke_opacity); MBGL_DEFINE_UNIFORM_SCALAR(bool, u_scale_with_map); } // namespace uniforms -using CircleAttributes = gl::Attributes< - attributes::a_pos>; - class CircleProgram : public Program< shaders::circle, gl::Triangle, - CircleAttributes, + gl::Attributes< + attributes::a_pos>, gl::Uniforms< uniforms::u_matrix, - uniforms::u_opacity, - uniforms::u_color, - uniforms::u_radius, - uniforms::u_blur, - uniforms::u_stroke_color, - uniforms::u_stroke_width, - uniforms::u_stroke_opacity, uniforms::u_scale_with_map, - uniforms::u_extrude_scale>> + uniforms::u_extrude_scale>, + style::CirclePaintProperties> { public: using Program::Program; @@ -44,16 +33,17 @@ public: * @param {number} ex extrude normal * @param {number} ey extrude normal */ - static Vertex vertex(Point<int16_t> p, float ex, float ey) { - return Vertex { - { + static LayoutVertex vertex(Point<int16_t> p, float ex, float ey) { + return LayoutVertex { + {{ static_cast<int16_t>((p.x * 2) + ((ex + 1) / 2)), static_cast<int16_t>((p.y * 2) + ((ey + 1) / 2)) - } + }} }; } }; -using CircleVertex = CircleProgram::Vertex; +using CircleLayoutVertex = CircleProgram::LayoutVertex; +using CircleAttributes = CircleProgram::Attributes; } // namespace mbgl |