diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-04-20 12:39:51 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-06-01 15:38:01 -0700 |
commit | 1b86bf16b2cfc37b86e526673bb2e25de6adf9ee (patch) | |
tree | c236a5f8e7c4eea9a8e7560620671217a791074d /src/mbgl/renderer/layers/render_raster_layer.cpp | |
parent | aa6647e910073edffbd1f3c087ed110927c38aeb (diff) | |
download | qtlocation-mapboxgl-1b86bf16b2cfc37b86e526673bb2e25de6adf9ee.tar.gz |
[core] Render Image Source
Diffstat (limited to 'src/mbgl/renderer/layers/render_raster_layer.cpp')
-rw-r--r-- | src/mbgl/renderer/layers/render_raster_layer.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/mbgl/renderer/layers/render_raster_layer.cpp b/src/mbgl/renderer/layers/render_raster_layer.cpp index feb3a4aca9..3551f9fa9a 100644 --- a/src/mbgl/renderer/layers/render_raster_layer.cpp +++ b/src/mbgl/renderer/layers/render_raster_layer.cpp @@ -1,6 +1,11 @@ #include <mbgl/renderer/layers/render_raster_layer.hpp> #include <mbgl/renderer/bucket.hpp> #include <mbgl/style/layers/raster_layer_impl.hpp> +#include <mbgl/gl/context.hpp> +#include <mbgl/renderer/render_tile.hpp> +#include <mbgl/tile/tile.hpp> +#include <mbgl/renderer/sources/render_image_source.hpp> +#include <mbgl/renderer/painter.hpp> namespace mbgl { @@ -31,4 +36,35 @@ bool RenderRasterLayer::hasTransition() const { return unevaluated.hasTransition(); } +void RenderRasterLayer::uploadBuckets(gl::Context& context, RenderSource* source) { + if (renderTiles.size() > 0) { + for (const auto& tileRef : renderTiles) { + const auto& bucket = tileRef.get().tile.getBucket(impl()); + if (bucket && bucket->needsUpload()) { + bucket->upload(context); + } + } + } else { + RenderImageSource* imageSource = dynamic_cast<RenderImageSource*>(source); + if (imageSource) { + imageSource->upload(context); + } + } +} + +void RenderRasterLayer::render(Painter& painter, PaintParameters& parameters, RenderSource* source) { + if (renderTiles.size() > 0) { + for (auto& tileRef : renderTiles) { + auto& tile = tileRef.get(); + auto bucket = tile.tile.getBucket(impl()); + bucket->render(painter, parameters, *this, tile); + } + } else { + RenderImageSource* imageSource = dynamic_cast<RenderImageSource*>(source); + if (imageSource) { + imageSource->render(painter, parameters, *this); + } + } +} + } // namespace mbgl |