[core] don't treat empty raster tiles as "DataAvailability::All"
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user