summaryrefslogtreecommitdiff
path: root/src/mbgl/tile
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2019-05-13 17:13:31 -0700
committerKonstantin Käfer <mail@kkaefer.com>2019-05-15 11:57:43 -0700
commit3a6ff7710fcf201f82ddc2090488ef585bd8ab17 (patch)
treede380cbb7f5553282b081dce9202cbe9e502ebe5 /src/mbgl/tile
parentbf0998697e0893d8a56421a139c7fc4855e89fa5 (diff)
downloadqtlocation-mapboxgl-3a6ff7710fcf201f82ddc2090488ef585bd8ab17.tar.gz
[core] add gfx::UploadPass, split startRender into prepare and upload
Diffstat (limited to 'src/mbgl/tile')
-rw-r--r--src/mbgl/tile/geometry_tile.cpp10
-rw-r--r--src/mbgl/tile/geometry_tile.hpp2
-rw-r--r--src/mbgl/tile/raster_dem_tile.cpp4
-rw-r--r--src/mbgl/tile/raster_dem_tile.hpp2
-rw-r--r--src/mbgl/tile/raster_tile.cpp4
-rw-r--r--src/mbgl/tile/raster_tile.hpp2
-rw-r--r--src/mbgl/tile/tile.cpp1
-rw-r--r--src/mbgl/tile/tile.hpp14
8 files changed, 16 insertions, 23 deletions
diff --git a/src/mbgl/tile/geometry_tile.cpp b/src/mbgl/tile/geometry_tile.cpp
index 5469fa0e6f..46ab9e713b 100644
--- a/src/mbgl/tile/geometry_tile.cpp
+++ b/src/mbgl/tile/geometry_tile.cpp
@@ -176,10 +176,10 @@ const optional<ImagePosition> GeometryTile::getPattern(const std::string& patter
return {};
}
-void GeometryTile::upload(gfx::Context& context) {
+void GeometryTile::upload(gfx::UploadPass& uploadPass) {
auto uploadFn = [&] (Bucket& bucket) {
if (bucket.needsUpload()) {
- bucket.upload(context);
+ bucket.upload(uploadPass);
}
};
@@ -188,17 +188,17 @@ void GeometryTile::upload(gfx::Context& context) {
}
if (glyphAtlasImage) {
- glyphAtlasTexture = context.createTexture(*glyphAtlasImage);
+ glyphAtlasTexture = uploadPass.createTexture(*glyphAtlasImage);
glyphAtlasImage = {};
}
if (iconAtlas.image.valid()) {
- iconAtlasTexture = context.createTexture(iconAtlas.image);
+ iconAtlasTexture = uploadPass.createTexture(iconAtlas.image);
iconAtlas.image = {};
}
if (iconAtlasTexture) {
- iconAtlas.patchUpdatedImages(context, *iconAtlasTexture, imageManager);
+ iconAtlas.patchUpdatedImages(uploadPass, *iconAtlasTexture, imageManager);
}
}
diff --git a/src/mbgl/tile/geometry_tile.hpp b/src/mbgl/tile/geometry_tile.hpp
index 5c2e8245ee..c7a0d76363 100644
--- a/src/mbgl/tile/geometry_tile.hpp
+++ b/src/mbgl/tile/geometry_tile.hpp
@@ -42,7 +42,7 @@ public:
void getGlyphs(GlyphDependencies);
void getImages(ImageRequestPair);
- void upload(gfx::Context&) override;
+ void upload(gfx::UploadPass&) override;
Bucket* getBucket(const style::Layer::Impl&) const override;
const LayerRenderData* getLayerRenderData(const style::Layer::Impl&) const override;
bool updateLayerProperties(const Immutable<style::LayerProperties>&) override;
diff --git a/src/mbgl/tile/raster_dem_tile.cpp b/src/mbgl/tile/raster_dem_tile.cpp
index 8b4e0113c7..cf70687ffe 100644
--- a/src/mbgl/tile/raster_dem_tile.cpp
+++ b/src/mbgl/tile/raster_dem_tile.cpp
@@ -69,9 +69,9 @@ void RasterDEMTile::onError(std::exception_ptr err, const uint64_t resultCorrela
observer->onTileError(*this, err);
}
-void RasterDEMTile::upload(gfx::Context& context) {
+void RasterDEMTile::upload(gfx::UploadPass& uploadPass) {
if (bucket) {
- bucket->upload(context);
+ bucket->upload(uploadPass);
}
}
diff --git a/src/mbgl/tile/raster_dem_tile.hpp b/src/mbgl/tile/raster_dem_tile.hpp
index ed25218e10..165a5b9d2b 100644
--- a/src/mbgl/tile/raster_dem_tile.hpp
+++ b/src/mbgl/tile/raster_dem_tile.hpp
@@ -72,7 +72,7 @@ public:
void setMetadata(optional<Timestamp> modified, optional<Timestamp> expires);
void setData(std::shared_ptr<const std::string> data);
- void upload(gfx::Context&) override;
+ void upload(gfx::UploadPass&) override;
Bucket* getBucket(const style::Layer::Impl&) const override;
HillshadeBucket* getBucket() const;
diff --git a/src/mbgl/tile/raster_tile.cpp b/src/mbgl/tile/raster_tile.cpp
index 9da11b3595..1d8e7f3b3c 100644
--- a/src/mbgl/tile/raster_tile.cpp
+++ b/src/mbgl/tile/raster_tile.cpp
@@ -58,9 +58,9 @@ void RasterTile::onError(std::exception_ptr err, const uint64_t resultCorrelatio
observer->onTileError(*this, err);
}
-void RasterTile::upload(gfx::Context& context) {
+void RasterTile::upload(gfx::UploadPass& uploadPass) {
if (bucket) {
- bucket->upload(context);
+ bucket->upload(uploadPass);
}
}
diff --git a/src/mbgl/tile/raster_tile.hpp b/src/mbgl/tile/raster_tile.hpp
index 40f1e66bbc..f62ddebf57 100644
--- a/src/mbgl/tile/raster_tile.hpp
+++ b/src/mbgl/tile/raster_tile.hpp
@@ -28,7 +28,7 @@ public:
void setMetadata(optional<Timestamp> modified, optional<Timestamp> expires);
void setData(std::shared_ptr<const std::string> data);
- void upload(gfx::Context&) override;
+ void upload(gfx::UploadPass&) override;
Bucket* getBucket(const style::Layer::Impl&) const override;
void setMask(TileMask&&) override;
diff --git a/src/mbgl/tile/tile.cpp b/src/mbgl/tile/tile.cpp
index 5a69df5b43..5e31898caf 100644
--- a/src/mbgl/tile/tile.cpp
+++ b/src/mbgl/tile/tile.cpp
@@ -1,6 +1,5 @@
#include <mbgl/tile/tile.hpp>
#include <mbgl/tile/tile_observer.hpp>
-#include <mbgl/renderer/buckets/debug_bucket.hpp>
#include <mbgl/renderer/query.hpp>
#include <mbgl/util/string.hpp>
#include <mbgl/util/logging.hpp>
diff --git a/src/mbgl/tile/tile.hpp b/src/mbgl/tile/tile.hpp
index c9b1af6beb..e98d192efd 100644
--- a/src/mbgl/tile/tile.hpp
+++ b/src/mbgl/tile/tile.hpp
@@ -20,20 +20,17 @@
namespace mbgl {
-class DebugBucket;
class LayerRenderData;
class TransformState;
class TileObserver;
class RenderLayer;
class RenderedQueryOptions;
class SourceQueryOptions;
-
class CollisionIndex;
-namespace gl {
-class Context;
-} // namespace gl
-
+namespace gfx {
+class UploadPass;
+} // namespace gfx
class Tile {
public:
@@ -55,7 +52,7 @@ public:
// Mark this tile as no longer needed and cancel any pending work.
virtual void cancel();
- virtual void upload(gfx::Context&) = 0;
+ virtual void upload(gfx::UploadPass&) = 0;
virtual Bucket* getBucket(const style::Layer::Impl&) const = 0;
virtual const LayerRenderData* getLayerRenderData(const style::Layer::Impl&) const {
assert(false);
@@ -141,9 +138,6 @@ public:
optional<Timestamp> modified;
optional<Timestamp> expires;
- // Contains the tile ID string for painting debug information.
- std::unique_ptr<DebugBucket> debugBucket;
-
protected:
bool triedOptional = false;
bool renderable = false;