diff options
author | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-03 11:45:33 +0300 |
---|---|---|
committer | Mikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com> | 2019-07-04 16:56:43 +0300 |
commit | 115512153064276d23bb865d1947e669eb022b50 (patch) | |
tree | 126fd543aeb917415a4f2707eb1e0e6ba2c5d6cb /src/mbgl/renderer/sources/render_image_source.hpp | |
parent | e797e318311aac3d4dc1f559b835d9253d65c520 (diff) | |
download | qtlocation-mapboxgl-115512153064276d23bb865d1947e669eb022b50.tar.gz |
[core] Introduce ImageSourceRenderData and RenderSource::getImageRenderData()
Image source render data is owned by render source, which is simpler than the
previous approach and aligned with the render tiles ownership model.
Diffstat (limited to 'src/mbgl/renderer/sources/render_image_source.hpp')
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.hpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp index f1d3a86db1..ac9bdbecb7 100644 --- a/src/mbgl/renderer/sources/render_image_source.hpp +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -2,21 +2,26 @@ #include <mbgl/renderer/render_source.hpp> #include <mbgl/renderer/render_tile.hpp> +#include <mbgl/renderer/render_tree.hpp> #include <mbgl/style/sources/image_source_impl.hpp> namespace mbgl { class RasterBucket; -class ImageLayerRenderData { +class ImageSourceRenderData { public: + ImageSourceRenderData(std::shared_ptr<RasterBucket> bucket_, + std::vector<mat4> matrices_) + : bucket(std::move(bucket_)), + matrices(std::move(matrices_)) {} std::shared_ptr<RasterBucket> bucket; - std::shared_ptr<std::vector<mat4>> matrices; + std::vector<mat4> matrices; }; -class RenderImageSource : public RenderSource { +class RenderImageSource final : public RenderSource { public: - RenderImageSource(Immutable<style::ImageSource::Impl>); + explicit RenderImageSource(Immutable<style::ImageSource::Impl>); ~RenderImageSource() override; bool isLoaded() const final; @@ -37,6 +42,10 @@ public: return {}; } + const ImageSourceRenderData* getImageRenderData() const override { + return renderData.get(); + } + std::unordered_map<std::string, std::vector<Feature>> queryRenderedFeatures(const ScreenLineString& geometry, const TransformState& transformState, @@ -54,7 +63,8 @@ private: friend class RenderRasterLayer; const style::ImageSource::Impl& impl() const; - ImageLayerRenderData sharedData; + std::shared_ptr<RasterBucket> bucket; + std::unique_ptr<ImageSourceRenderData> renderData; std::vector<UnwrappedTileID> tileIds; }; |