summaryrefslogtreecommitdiff
path: root/src/mbgl/renderer/buckets/raster_bucket.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mbgl/renderer/buckets/raster_bucket.cpp')
-rw-r--r--src/mbgl/renderer/buckets/raster_bucket.cpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/mbgl/renderer/buckets/raster_bucket.cpp b/src/mbgl/renderer/buckets/raster_bucket.cpp
index 4a25959868..fa105fd38d 100644
--- a/src/mbgl/renderer/buckets/raster_bucket.cpp
+++ b/src/mbgl/renderer/buckets/raster_bucket.cpp
@@ -1,18 +1,26 @@
+#include <mbgl/gl/context.hpp>
+#include <mbgl/programs/raster_program.hpp>
#include <mbgl/renderer/buckets/raster_bucket.hpp>
#include <mbgl/renderer/layers/render_raster_layer.hpp>
-#include <mbgl/programs/raster_program.hpp>
#include <mbgl/renderer/painter.hpp>
-#include <mbgl/gl/context.hpp>
+#include <mbgl/renderer/render_tile.hpp>
namespace mbgl {
-
using namespace style;
RasterBucket::RasterBucket(UnassociatedImage&& image_) : image(std::move(image_)) {
}
+RasterBucket::RasterBucket(RasterBucket&& other) : image(std::move(other.image)) {
+ uploaded = false;
+}
+
void RasterBucket::upload(gl::Context& context) {
- texture = context.createTexture(std::move(image));
+ texture = context.createTexture(image);
+ if (vertices.vertexSize() > 0) {
+ vertexBuffer = context.createVertexBuffer(std::move(vertices));
+ indexBuffer = context.createIndexBuffer(std::move(indices));
+ }
uploaded = true;
}
@@ -20,7 +28,14 @@ void RasterBucket::render(Painter& painter,
PaintParameters& parameters,
const RenderLayer& layer,
const RenderTile& tile) {
- painter.renderRaster(parameters, *this, *layer.as<RenderRasterLayer>(), tile);
+ painter.renderRaster(parameters, *this, *layer.as<RenderRasterLayer>(), tile.matrix, false);
+}
+
+void RasterBucket::render(Painter& painter,
+ PaintParameters& parameters,
+ const RenderLayer& layer,
+ const mat4& matrix) {
+ painter.renderRaster(parameters, *this, *layer.as<RenderRasterLayer>(), matrix, true);
}
bool RasterBucket::hasData() const {