#include #include #include namespace mbgl { std::unique_ptr RasterLayer::clone() const { std::unique_ptr result = std::make_unique(); result->copy(*this); result->paints.paints = paints.paints; return std::move(result); } void RasterLayer::parsePaints(const JSVal& layer) { paints.parseEach(layer, [&] (ClassProperties& paint, const JSVal& value) { parseProperty>("raster-opacity", PropertyKey::RasterOpacity, paint, value); parseProperty("raster-opacity-transition", PropertyKey::RasterOpacity, paint, value); parseProperty>("raster-hue-rotate", PropertyKey::RasterHueRotate, paint, value); parseProperty("raster-hue-rotate-transition", PropertyKey::RasterHueRotate, paint, value); parseProperty>("raster-brightness-min", PropertyKey::RasterBrightnessLow, paint, value); parseProperty>("raster-brightness-max", PropertyKey::RasterBrightnessHigh, paint, value); parseProperty("raster-brightness-transition", PropertyKey::RasterBrightness, paint, value); parseProperty>("raster-saturation", PropertyKey::RasterSaturation, paint, value); parseProperty("raster-saturation-transition", PropertyKey::RasterSaturation, paint, value); parseProperty>("raster-contrast", PropertyKey::RasterContrast, paint, value); parseProperty("raster-contrast-transition", PropertyKey::RasterContrast, paint, value); parseProperty>("raster-fade-duration", PropertyKey::RasterFade, paint, value); parseProperty("raster-fade-duration-transition", PropertyKey::RasterFade, paint, value); }); } void RasterLayer::cascade(const StyleCascadeParameters& parameters) { paints.cascade(parameters); } bool RasterLayer::hasTransitions() const { return paints.hasTransitions(); } void RasterLayer::recalculate(const StyleCalculationParameters& parameters) { paints.removeExpiredTransitions(parameters.now); paints.calculateTransitioned(PropertyKey::RasterOpacity, properties.opacity, parameters); paints.calculateTransitioned(PropertyKey::RasterHueRotate, properties.hue_rotate, parameters); paints.calculateTransitioned(PropertyKey::RasterBrightnessLow, properties.brightness[0], parameters); paints.calculateTransitioned(PropertyKey::RasterBrightnessHigh, properties.brightness[1], parameters); paints.calculateTransitioned(PropertyKey::RasterSaturation, properties.saturation, parameters); paints.calculateTransitioned(PropertyKey::RasterContrast, properties.contrast, parameters); paints.calculateTransitioned(PropertyKey::RasterFade, properties.fade, parameters); passes = properties.isVisible() ? RenderPass::Translucent : RenderPass::None; } std::unique_ptr RasterLayer::createBucket(StyleBucketParameters&) const { return nullptr; } }