#pragma once #include #include #include #include #include namespace mbgl { namespace uniforms { MBGL_DEFINE_UNIFORM_VECTOR(uint16_t, 2, dimension); MBGL_DEFINE_UNIFORM_SCALAR(float, maxzoom); MBGL_DEFINE_UNIFORM_VECTOR(float, 4, unpack); } // namespace uniforms class HillshadePrepareProgram : public Program< HillshadePrepareProgram, gfx::PrimitiveType::Triangle, TypeList< attributes::pos, attributes::texture_pos>, TypeList< uniforms::matrix, uniforms::dimension, uniforms::zoom, uniforms::maxzoom, uniforms::unpack>, TypeList< textures::image>, style::Properties<>> { public: using Program::Program; static LayoutVertex layoutVertex(Point p, Point t) { return LayoutVertex { {{ p.x, p.y }}, {{ t.x, t.y }} }; } }; using HillshadePrepareLayoutVertex = HillshadePrepareProgram::LayoutVertex; using HillshadePrepareAttributes = HillshadePrepareProgram::AttributeList; } // namespace mbgl