#pragma once #include #include #include #include #include #include #include namespace mbgl { namespace uniforms { MBGL_DEFINE_UNIFORM_SCALAR(Color, shadow); MBGL_DEFINE_UNIFORM_SCALAR(Color, highlight); MBGL_DEFINE_UNIFORM_SCALAR(Color, accent); MBGL_DEFINE_UNIFORM_VECTOR(float, 2, light); MBGL_DEFINE_UNIFORM_VECTOR(float, 2, latrange); } // namespace uniforms class HillshadeProgram final : public Program, TypeList, TypeList, style::HillshadePaintProperties> { public: static constexpr std::string_view Name{"HillshadeProgram"}; const std::string_view typeName() const noexcept override { return Name; } using Program::Program; static LayoutVertex layoutVertex(Point p, Point t) { return LayoutVertex{{{p.x, p.y}}, {{t.x, t.y}}}; } }; using HillshadeLayoutVertex = HillshadeProgram::LayoutVertex; using HillshadeAttributes = HillshadeProgram::AttributeList; } // namespace mbgl