diff options
Diffstat (limited to 'src/mbgl/renderer/layers')
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 11 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.hpp | 5 |
2 files changed, 6 insertions, 10 deletions
diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index 9811899d83..e22e14275c 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -3,6 +3,7 @@ #include <mbgl/renderer/render_tile.hpp> #include <mbgl/renderer/paint_parameters.hpp> #include <mbgl/renderer/render_static_data.hpp> +#include <mbgl/renderer/sources/render_image_source.hpp> #include <mbgl/programs/programs.hpp> #include <mbgl/programs/raster_program.hpp> #include <mbgl/tile/tile.hpp> @@ -74,13 +75,7 @@ static std::array<float, 3> spinWeights(float spin) { void RenderRasterLayer::prepare(const LayerPrepareParameters& params) { RenderLayer::prepare(params); - auto* imageSource = params.source->as<RenderImageSource>(); - if (imageSource && imageSource->isLoaded()) { - assert(imageSource->isEnabled()); - assert(imageSource->sharedData.bucket); - assert(imageSource->sharedData.matrices); - imageData = imageSource->sharedData; - } + imageData = params.source->getImageRenderData(); } void RenderRasterLayer::render(PaintParameters& parameters) { @@ -147,7 +142,7 @@ void RenderRasterLayer::render(PaintParameters& parameters) { assert(bucket.texture); size_t i = 0; - for (const auto& matrix_ : *imageData->matrices) { + for (const auto& matrix_ : imageData->matrices) { draw(matrix_, *bucket.vertexBuffer, *bucket.indexBuffer, diff --git a/src/mbgl/renderer/layers/render_raster_layer.hpp b/src/mbgl/renderer/layers/render_raster_layer.hpp index 9ef7c9837f..94bbd36a0d 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.hpp +++ b/src/mbgl/renderer/layers/render_raster_layer.hpp @@ -1,12 +1,13 @@ #pragma once #include <mbgl/renderer/render_layer.hpp> -#include <mbgl/renderer/sources/render_image_source.hpp> #include <mbgl/style/layers/raster_layer_impl.hpp> #include <mbgl/style/layers/raster_layer_properties.hpp> namespace mbgl { +class ImageSourceRenderData; + class RenderRasterLayer final : public RenderLayer { public: explicit RenderRasterLayer(Immutable<style::RasterLayer::Impl>); @@ -22,7 +23,7 @@ private: // Paint properties style::RasterPaintProperties::Unevaluated unevaluated; - optional<ImageLayerRenderData> imageData; + const ImageSourceRenderData* imageData = nullptr; }; } // namespace mbgl |