summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/layers/render_raster_layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/layers/render_raster_layer.cpp')
-rw-r--r--src/mbgl/renderer/layers/render_raster_layer.cpp36
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