#include #include #include #include #include #include #include #include #include #include namespace mbgl { Programs::Programs(gl::Context& context_, const ProgramParameters& programParameters_) : debug(context_, programParameters_), clippingMask(context_, programParameters_), context(context_), programParameters(std::move(programParameters_)) { } Programs::~Programs() = default; BackgroundLayerPrograms& Programs::getBackgroundLayerPrograms() noexcept { if (!backgroundPrograms) { backgroundPrograms = std::make_unique(context, programParameters); } return static_cast(*backgroundPrograms); } RasterLayerPrograms& Programs::getRasterLayerPrograms() noexcept { if (!rasterPrograms) { rasterPrograms = std::make_unique(context, programParameters); } return static_cast(*rasterPrograms); } HeatmapLayerPrograms& Programs::getHeatmapLayerPrograms() noexcept { if (!heatmapPrograms) { heatmapPrograms = std::make_unique(context, programParameters); } return static_cast(*heatmapPrograms); } HillshadeLayerPrograms& Programs::getHillshadeLayerPrograms() noexcept { if (!hillshadePrograms) { hillshadePrograms = std::make_unique(context, programParameters); } return static_cast(*hillshadePrograms); } FillLayerPrograms& Programs::getFillLayerPrograms() noexcept { if (!fillPrograms) { fillPrograms = std::make_unique(context, programParameters); } return static_cast(*fillPrograms); } FillExtrusionLayerPrograms& Programs::getFillExtrusionLayerPrograms() noexcept { if (!fillExtrusionPrograms) { fillExtrusionPrograms = std::make_unique(context, programParameters); } return static_cast(*fillExtrusionPrograms); } CircleLayerPrograms& Programs::getCircleLayerPrograms() noexcept { if (!circlePrograms) { circlePrograms = std::make_unique(context, programParameters); } return static_cast(*circlePrograms); } LineLayerPrograms& Programs::getLineLayerPrograms() noexcept { if (!linePrograms) { linePrograms = std::make_unique(context, programParameters); } return static_cast(*linePrograms); } SymbolLayerPrograms& Programs::getSymbolLayerPrograms() noexcept { if (!symbolPrograms) { symbolPrograms = std::make_unique(context, programParameters); } return static_cast(*symbolPrograms); } } // namespace mbgl