Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[core] don't treat empty raster tiles as "DataAvailability::All"
Browse files Browse the repository at this point in the history
  • Loading branch information
kkaefer committed Feb 22, 2017
1 parent 0562bcb commit 9ffbfdc
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/mbgl/tile/raster_tile.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down
2 changes: 1 addition & 1 deletion src/mbgl/tile/raster_tile_worker.cpp
Original file line number Diff line number Diff line change
@@ -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>

Expand Down
15 changes: 15 additions & 0 deletions test/tile/raster_tile.test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down Expand Up @@ -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());
}

0 comments on commit 9ffbfdc

Please sign in to comment.