summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2017-02-22 15:47:37 +0100
committerKonstantin Käfer <mail@kkaefer.com>2017-02-22 22:28:29 +0100
commit9ffbfdc7b94ec60bc0a5253a56121b7bf707a23f (patch)
tree225f1e487f6cebcea79ad9fbec65174670c208e7
parent0562bcb418d8e1af7e181264bb763a071854f7e1 (diff)
downloadqtlocation-mapboxgl-9ffbfdc7b94ec60bc0a5253a56121b7bf707a23f.tar.gz
[core] don't treat empty raster tiles as "DataAvailability::All"
-rw-r--r--src/mbgl/tile/raster_tile.cpp4
-rw-r--r--src/mbgl/tile/raster_tile_worker.cpp2
-rw-r--r--test/tile/raster_tile.test.cpp15
3 files changed, 18 insertions, 3 deletions
diff --git a/src/mbgl/tile/raster_tile.cpp b/src/mbgl/tile/raster_tile.cpp
index c7a051f841..2347f8c881 100644
--- a/src/mbgl/tile/raster_tile.cpp
+++ b/src/mbgl/tile/raster_tile.cpp
@@ -41,13 +41,13 @@ void RasterTile::setData(std::shared_ptr<const std::string> data,
void RasterTile::onParsed(std::unique_ptr<Bucket> result) {
bucket = std::move(result);
- availableData = DataAvailability::All;
+ availableData = bucket ? DataAvailability::All : DataAvailability::None;
observer->onTileChanged(*this);
}
void RasterTile::onError(std::exception_ptr err) {
bucket.reset();
- availableData = DataAvailability::All;
+ availableData = DataAvailability::None;
observer->onTileError(*this, err);
}
diff --git a/src/mbgl/tile/raster_tile_worker.cpp b/src/mbgl/tile/raster_tile_worker.cpp
index 219e9a2e41..8c1fc2f673 100644
--- a/src/mbgl/tile/raster_tile_worker.cpp
+++ b/src/mbgl/tile/raster_tile_worker.cpp
@@ -1,6 +1,6 @@
#include <mbgl/tile/raster_tile_worker.hpp>
#include <mbgl/tile/raster_tile.hpp>
-#include <mbgl/renderer/raster_bucket.cpp>
+#include <mbgl/renderer/raster_bucket.hpp>
#include <mbgl/actor/actor.hpp>
#include <mbgl/util/premultiply.hpp>
diff --git a/test/tile/raster_tile.test.cpp b/test/tile/raster_tile.test.cpp
index 0d599ceae0..5cfc274be0 100644
--- a/test/tile/raster_tile.test.cpp
+++ b/test/tile/raster_tile.test.cpp
@@ -9,6 +9,7 @@
#include <mbgl/style/style.hpp>
#include <mbgl/style/update_parameters.hpp>
#include <mbgl/annotation/annotation_manager.hpp>
+#include <mbgl/renderer/raster_bucket.hpp>
using namespace mbgl;
@@ -45,5 +46,19 @@ TEST(RasterTile, onError) {
RasterTileTest test;
RasterTile tile(OverscaledTileID(0, 0, 0), test.updateParameters, test.tileset);
tile.onError(std::make_exception_ptr(std::runtime_error("test")));
+ EXPECT_FALSE(tile.isRenderable());
+}
+
+TEST(RasterTile, onParsed) {
+ RasterTileTest test;
+ RasterTile tile(OverscaledTileID(0, 0, 0), test.updateParameters, test.tileset);
+ tile.onParsed(std::make_unique<RasterBucket>(UnassociatedImage{}));
EXPECT_TRUE(tile.isRenderable());
}
+
+TEST(RasterTile, onParsedEmpty) {
+ RasterTileTest test;
+ RasterTile tile(OverscaledTileID(0, 0, 0), test.updateParameters, test.tileset);
+ tile.onParsed(nullptr);
+ EXPECT_FALSE(tile.isRenderable());
+}