diff options
-rw-r--r-- | src/mbgl/tile/raster_tile.cpp | 4 | ||||
-rw-r--r-- | src/mbgl/tile/raster_tile_worker.cpp | 2 | ||||
-rw-r--r-- | test/tile/raster_tile.test.cpp | 15 |
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()); +} |