diff options
Diffstat (limited to 'src/mbgl/renderer')
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 10 | ||||
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.hpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/painter.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/render_layer.cpp | 9 | ||||
-rw-r--r-- | src/mbgl/renderer/render_layer.hpp | 4 | ||||
-rw-r--r-- | src/mbgl/renderer/render_tile.cpp | 3 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.cpp | 12 | ||||
-rw-r--r-- | src/mbgl/renderer/sources/render_image_source.hpp | 1 |
8 files changed, 11 insertions, 35 deletions
diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index 28cf722c14..30b506b63b 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -36,16 +36,6 @@ bool RenderRasterLayer::hasTransition() const { return unevaluated.hasTransition(); } -void RenderRasterLayer::uploadBuckets(gl::Context& context, RenderSource* source) { - RenderLayer::uploadBuckets(context, source); - if (renderTiles.empty()) { - RenderImageSource* imageSource = source->as<RenderImageSource>(); - if (imageSource) { - imageSource->upload(context); - } - } -} - void RenderRasterLayer::render(Painter& painter, PaintParameters& parameters, RenderSource* source) { RenderLayer::render(painter, parameters, source); if (renderTiles.empty()) { diff --git a/src/mbgl/renderer/layers/render_raster_layer.hpp b/src/mbgl/renderer/layers/render_raster_layer.hpp index f252d80242..ce46152a95 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.hpp +++ b/src/mbgl/renderer/layers/render_raster_layer.hpp @@ -15,8 +15,7 @@ public: void evaluate(const PropertyEvaluationParameters&) override; bool hasTransition() const override; - void uploadBuckets(gl::Context&, RenderSource*) override; - void render(Painter& , PaintParameters& , RenderSource*) override; + void render(Painter&, PaintParameters&, RenderSource*) override; std::unique_ptr<Bucket> createBucket(const BucketParameters&, const std::vector<const RenderLayer*>&) const override; diff --git a/src/mbgl/renderer/painter.cpp b/src/mbgl/renderer/painter.cpp index 15aaa9c002..e04d25d06a 100644 --- a/src/mbgl/renderer/painter.cpp +++ b/src/mbgl/renderer/painter.cpp @@ -174,10 +174,6 @@ void Painter::render(RenderStyle& style, const FrameData& frame_, View& view) { lineAtlas->upload(context, 0); glyphAtlas->upload(context, 0); frameHistory.upload(context, 0); - - for (const auto& item : order) { - item.layer.uploadBuckets(context, item.source); - } } // - CLEAR ------------------------------------------------------------------------------------- diff --git a/src/mbgl/renderer/render_layer.cpp b/src/mbgl/renderer/render_layer.cpp index 4bffb87cf1..3f9d68003e 100644 --- a/src/mbgl/renderer/render_layer.cpp +++ b/src/mbgl/renderer/render_layer.cpp @@ -68,15 +68,6 @@ void RenderLayer::setRenderTiles(std::vector<std::reference_wrapper<RenderTile>> renderTiles = std::move(tiles); } -void RenderLayer::uploadBuckets(gl::Context& context, RenderSource*) { - for (const auto& tileRef : renderTiles) { - const auto& bucket = tileRef.get().tile.getBucket(*baseImpl); - if (bucket && bucket->needsUpload()) { - bucket->upload(context); - } - } -} - void RenderLayer::render(Painter& painter, PaintParameters& parameters, RenderSource*) { for (auto& tileRef : renderTiles) { auto& tile = tileRef.get(); diff --git a/src/mbgl/renderer/render_layer.hpp b/src/mbgl/renderer/render_layer.hpp index ce71794c07..50ad4c771a 100644 --- a/src/mbgl/renderer/render_layer.hpp +++ b/src/mbgl/renderer/render_layer.hpp @@ -66,8 +66,8 @@ public: // Checks whether this layer can be rendered. bool needsRendering(float zoom) const; - virtual void uploadBuckets(gl::Context&, RenderSource* source); - virtual void render(Painter& , PaintParameters& , RenderSource* source); + virtual void render(Painter&, PaintParameters&, RenderSource*); + // Check wether the given geometry intersects // with the feature virtual bool queryIntersectsFeature( diff --git a/src/mbgl/renderer/render_tile.cpp b/src/mbgl/renderer/render_tile.cpp index 3f6b270a95..59c3ea076b 100644 --- a/src/mbgl/renderer/render_tile.cpp +++ b/src/mbgl/renderer/render_tile.cpp @@ -1,6 +1,7 @@ #include <mbgl/renderer/render_tile.hpp> #include <mbgl/renderer/painter.hpp> #include <mbgl/map/transform_state.hpp> +#include <mbgl/tile/tile.hpp> namespace mbgl { @@ -46,6 +47,8 @@ mat4 RenderTile::translatedClipMatrix(const std::array<float, 2>& translation, } void RenderTile::startRender(Painter& painter) { + tile.upload(painter.context); + // Calculate two matrices for this tile: matrix is the standard tile matrix; nearClippedMatrix // clips the near plane to 100 to save depth buffer precision painter.state.matrixFor(matrix, id); diff --git a/src/mbgl/renderer/sources/render_image_source.cpp b/src/mbgl/renderer/sources/render_image_source.cpp index 82ddd318bd..7fb7caa580 100644 --- a/src/mbgl/renderer/sources/render_image_source.cpp +++ b/src/mbgl/renderer/sources/render_image_source.cpp @@ -27,10 +27,10 @@ bool RenderImageSource::isLoaded() const { } void RenderImageSource::startRender(Painter& painter) { - if (!isLoaded()) { return; } + matrices.clear(); for (size_t i = 0; i < tileIds.size(); i++) { @@ -40,6 +40,10 @@ void RenderImageSource::startRender(Painter& painter) { matrix::multiply(matrix, painter.projMatrix, matrix); matrices.push_back(matrix); } + + if (bucket->needsUpload() && shouldRender) { + bucket->upload(painter.context); + } } void RenderImageSource::finishRender(Painter& painter) { @@ -63,12 +67,6 @@ std::vector<Feature> RenderImageSource::querySourceFeatures(const SourceQueryOpt return {}; } -void RenderImageSource::upload(gl::Context& context) { - if (isLoaded() && bucket->needsUpload() && shouldRender) { - bucket->upload(context); - } -} - void RenderImageSource::update(Immutable<style::Source::Impl> baseImpl_, const std::vector<Immutable<Layer::Impl>>&, const bool needsRendering, diff --git a/src/mbgl/renderer/sources/render_image_source.hpp b/src/mbgl/renderer/sources/render_image_source.hpp index 175330b35f..5175cbf4a4 100644 --- a/src/mbgl/renderer/sources/render_image_source.hpp +++ b/src/mbgl/renderer/sources/render_image_source.hpp @@ -19,7 +19,6 @@ public: ~RenderImageSource() override; bool isLoaded() const final; - void upload(gl::Context&); void startRender(Painter&) final; void render(Painter&, PaintParameters&, const RenderLayer&); |