[core] Don't upload empty buckets
This commit is contained in:
@@ -28,6 +28,9 @@ public:
|
||||
Bucket() = default;
|
||||
virtual ~Bucket() = default;
|
||||
|
||||
// Feature geometries are also used to populate the feature index.
|
||||
// Obtaining these is a costly operation, so we do it only once, and
|
||||
// pass-by-const-ref the geometries as a second parameter.
|
||||
virtual void addFeature(const GeometryTileFeature&,
|
||||
const GeometryCollection&) {};
|
||||
|
||||
@@ -46,7 +49,7 @@ public:
|
||||
};
|
||||
|
||||
bool needsUpload() const {
|
||||
return !uploaded;
|
||||
return hasData() && !uploaded;
|
||||
}
|
||||
|
||||
protected:
|
||||
|
||||
@@ -69,8 +69,7 @@ void SymbolBucket::render(Painter& painter,
|
||||
}
|
||||
|
||||
bool SymbolBucket::hasData() const {
|
||||
assert(false); // Should be calling SymbolLayout::has{Text,Icon,CollisonBox}Data() instead.
|
||||
return false;
|
||||
return hasTextData() || hasIconData() || hasCollisionBoxData();
|
||||
}
|
||||
|
||||
bool SymbolBucket::hasTextData() const {
|
||||
|
||||
@@ -16,16 +16,19 @@ using namespace mbgl;
|
||||
TEST(Buckets, CircleBucket) {
|
||||
CircleBucket bucket { { {0, 0, 0}, MapMode::Still, 1.0 }, {} };
|
||||
ASSERT_FALSE(bucket.hasData());
|
||||
ASSERT_FALSE(bucket.needsUpload());
|
||||
}
|
||||
|
||||
TEST(Buckets, FillBucket) {
|
||||
FillBucket bucket { { {0, 0, 0}, MapMode::Still, 1.0 }, {} };
|
||||
ASSERT_FALSE(bucket.hasData());
|
||||
ASSERT_FALSE(bucket.needsUpload());
|
||||
}
|
||||
|
||||
TEST(Buckets, LineBucket) {
|
||||
LineBucket bucket { { {0, 0, 0}, MapMode::Still, 1.0 }, {}, {} };
|
||||
ASSERT_FALSE(bucket.hasData());
|
||||
ASSERT_FALSE(bucket.needsUpload());
|
||||
}
|
||||
|
||||
TEST(Buckets, SymbolBucket) {
|
||||
@@ -37,6 +40,8 @@ TEST(Buckets, SymbolBucket) {
|
||||
ASSERT_FALSE(bucket.hasIconData());
|
||||
ASSERT_FALSE(bucket.hasTextData());
|
||||
ASSERT_FALSE(bucket.hasCollisionBoxData());
|
||||
ASSERT_FALSE(bucket.hasData());
|
||||
ASSERT_FALSE(bucket.needsUpload());
|
||||
}
|
||||
|
||||
TEST(Buckets, RasterBucket) {
|
||||
@@ -44,6 +49,7 @@ TEST(Buckets, RasterBucket) {
|
||||
UnassociatedImage rgba({ 1, 1 });
|
||||
|
||||
RasterBucket bucket = { std::move(rgba) };
|
||||
ASSERT_TRUE(bucket.hasData());
|
||||
ASSERT_TRUE(bucket.needsUpload());
|
||||
|
||||
bucket.upload(context);
|
||||
|
||||
Reference in New Issue
Block a user