summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/sources/render_image_source.hpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-03 11:45:33 +0300
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-07-04 16:56:43 +0300
commit115512153064276d23bb865d1947e669eb022b50 (patch)
tree126fd543aeb917415a4f2707eb1e0e6ba2c5d6cb /src/mbgl/renderer/sources/render_image_source.hpp
parente797e318311aac3d4dc1f559b835d9253d65c520 (diff)
downloadqtlocation-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.hpp20
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;
};