diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2019-05-13 17:13:31 -0700 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2019-05-15 11:57:43 -0700 |
commit | 3a6ff7710fcf201f82ddc2090488ef585bd8ab17 (patch) | |
tree | de380cbb7f5553282b081dce9202cbe9e502ebe5 /src/mbgl/tile | |
parent | bf0998697e0893d8a56421a139c7fc4855e89fa5 (diff) | |
download | qtlocation-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.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/tile/geometry_tile.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/raster_dem_tile.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/raster_dem_tile.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile.hpp | 2 | ||||
-rw-r--r-- | src/mbgl/tile/tile.cpp | 1 | ||||
-rw-r--r-- | src/mbgl/tile/tile.hpp | 14 |
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; |