diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-05-31 23:14:12 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-06-01 15:38:01 -0700 |
commit | 5ff9d6e31ba391b3630fbfc0db1ca8da486e1b9f (patch) | |
tree | 5d463062de5537feb940572faeebf9f53a76f37e /src/mbgl/renderer | |
parent | 8b37a0704c7c20b1664fee3dfcc79139982a1ce7 (diff) | |
download | qtlocation-mapboxgl-5ff9d6e31ba391b3630fbfc0db1ca8da486e1b9f.tar.gz |
[core] Reuse RasterBucket for ImageSource
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/buckets/raster_bucket.cpp | 13 | ||||
-rw-r--r-- | src/mbgl/renderer/buckets/raster_bucket.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.cpp | 3 |
3 files changed, 11 insertions, 7 deletions
diff --git a/src/mbgl/renderer/buckets/raster_bucket.cpp b/src/mbgl/renderer/buckets/raster_bucket.cpp index e0bfaf7b68..8c9c1658a1 100644 --- a/src/mbgl/renderer/buckets/raster_bucket.cpp +++ b/src/mbgl/renderer/buckets/raster_bucket.cpp @@ -12,10 +12,6 @@ using namespace style; RasterBucket::RasterBucket(UnassociatedImage&& image_) : image(std::move(image_)) { } -RasterBucket::RasterBucket(RasterBucket&& other) : image(std::move(other.image)) { - uploaded = false; -} - void RasterBucket::upload(gl::Context& context) { texture = context.createTexture(image); if (!vertices.empty()) { @@ -25,6 +21,15 @@ void RasterBucket::upload(gl::Context& context) { uploaded = true; } +void RasterBucket::clear() { + vertexBuffer = {}; + indexBuffer = {}; + segments.clear(); + vertices.clear(); + indices.clear(); + + uploaded = false; +} void RasterBucket::render(Painter& painter, PaintParameters& parameters, const RenderLayer& layer, diff --git a/src/mbgl/renderer/buckets/raster_bucket.hpp b/src/mbgl/renderer/buckets/raster_bucket.hpp index 08afa6ddfa..b5cf7997d5 100644 --- a/src/mbgl/renderer/buckets/raster_bucket.hpp +++ b/src/mbgl/renderer/buckets/raster_bucket.hpp @@ -14,7 +14,6 @@ namespace mbgl { class RasterBucket : public Bucket { public: RasterBucket(UnassociatedImage&&); - RasterBucket(RasterBucket&&); void upload(gl::Context&) override; void render(Painter&, PaintParameters&, const RenderLayer&, const RenderTile&) override; @@ -24,6 +23,7 @@ public: const mat4& matrix); bool hasData() const override; + void clear(); UnassociatedImage image; optional<gl::Texture> texture; diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index 3fec926b7f..e5a7b1a6ed 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -137,8 +137,7 @@ void RenderImageSource::updateTiles(const TileParameters& parameters) { } bucket = std::make_unique<RasterBucket>(std::move(img)); } else { - // Reuse the bucket - bucket = std::make_unique<RasterBucket>(std::move(*bucket)); + bucket->clear(); } // Set Bucket Vertices, Indices, and segments |