1 #pragma once 2 3 #include <mbgl/programs/program.hpp> 4 #include <mbgl/programs/attributes.hpp> 5 #include <mbgl/programs/uniforms.hpp> 6 #include <mbgl/shaders/extrusion_texture.hpp> 7 #include <mbgl/style/properties.hpp> 8 #include <mbgl/util/geometry.hpp> 9 10 namespace mbgl { 11 12 class ExtrusionTextureProgram : public Program< 13 shaders::extrusion_texture, 14 gl::Triangle, 15 gl::Attributes<attributes::a_pos>, 16 gl::Uniforms< 17 uniforms::u_matrix, 18 uniforms::u_world, 19 uniforms::u_image, 20 uniforms::u_opacity>, 21 style::Properties<>> { 22 public: 23 using Program::Program; 24 layoutVertex(Point<int16_t> p)25 static LayoutVertex layoutVertex(Point<int16_t> p) { 26 return LayoutVertex{ 27 {{ 28 p.x, 29 p.y 30 }} 31 }; 32 } 33 }; 34 35 using ExtrusionTextureLayoutVertex = ExtrusionTextureProgram::LayoutVertex; 36 using ExtrusionTextureAttributes = ExtrusionTextureProgram::Attributes; 37 38 } // namespace mbgl 39