summaryrefslogtreecommitdiff
path: root/src/mbgl/style/layers/raster_layer_impl.cpp
blob: 41370905e7b27e65b35277343bfe9a7b185c0d13 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <mbgl/style/layers/raster_layer_impl.hpp>
#include <mbgl/style/raster_bucket_parameters.hpp>
#include <mbgl/renderer/raster_bucket.hpp>
#include <mbgl/util/image.hpp>

namespace mbgl {
namespace style {

void RasterLayer::Impl::cascade(const CascadeParameters& parameters) {
    paint.cascade(parameters);
}

bool RasterLayer::Impl::recalculate(const CalculationParameters& parameters) {
    bool hasTransitions = paint.recalculate(parameters);

    passes = paint.rasterOpacity > 0 ? RenderPass::Translucent : RenderPass::None;

    return hasTransitions;
}

std::unique_ptr<Bucket> RasterLayer::Impl::createBucket(BucketParameters& params) const {
    auto& parameters = params.get<RasterBucketParameters>();
    return std::make_unique<RasterBucket>(decodeImage(*parameters.data));
}

} // namespace style
} // namespace mbgl