[core] don't upload empty buffers
This commit is contained in:
@@ -78,8 +78,10 @@ DebugBucket::DebugBucket(const OverscaledTileID& id,
|
||||
|
||||
segments.emplace_back(0, 0, vertices.elements(), indices.elements());
|
||||
|
||||
vertexBuffer = context.createVertexBuffer(std::move(vertices));
|
||||
indexBuffer = context.createIndexBuffer(std::move(indices));
|
||||
if (!vertices.empty()) {
|
||||
vertexBuffer = context.createVertexBuffer(std::move(vertices));
|
||||
indexBuffer = context.createIndexBuffer(std::move(indices));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace mbgl
|
||||
|
||||
@@ -48,6 +48,9 @@ void SymbolBucket::upload(gfx::Context& context) {
|
||||
if (!staticUploaded) {
|
||||
text.indexBuffer = context.createIndexBuffer(std::move(text.triangles), sortFeaturesByY ? gfx::BufferUsageType::StreamDraw : gfx::BufferUsageType::StaticDraw);
|
||||
text.vertexBuffer = context.createVertexBuffer(std::move(text.vertices));
|
||||
for (auto& pair : paintProperties) {
|
||||
pair.second.textBinders.upload(context);
|
||||
}
|
||||
} else if (!sortUploaded) {
|
||||
context.updateIndexBuffer(*text.indexBuffer, std::move(text.triangles));
|
||||
}
|
||||
@@ -68,6 +71,9 @@ void SymbolBucket::upload(gfx::Context& context) {
|
||||
if (!staticUploaded) {
|
||||
icon.indexBuffer = context.createIndexBuffer(std::move(icon.triangles), sortFeaturesByY ? gfx::BufferUsageType::StreamDraw : gfx::BufferUsageType::StaticDraw);
|
||||
icon.vertexBuffer = context.createVertexBuffer(std::move(icon.vertices));
|
||||
for (auto& pair : paintProperties) {
|
||||
pair.second.iconBinders.upload(context);
|
||||
}
|
||||
} else if (!sortUploaded) {
|
||||
context.updateIndexBuffer(*icon.indexBuffer, std::move(icon.triangles));
|
||||
}
|
||||
@@ -111,13 +117,6 @@ void SymbolBucket::upload(gfx::Context& context) {
|
||||
}
|
||||
}
|
||||
|
||||
if (!staticUploaded) {
|
||||
for (auto& pair : paintProperties) {
|
||||
pair.second.iconBinders.upload(context);
|
||||
pair.second.textBinders.upload(context);
|
||||
}
|
||||
}
|
||||
|
||||
uploaded = true;
|
||||
staticUploaded = true;
|
||||
placementChangesUploaded = true;
|
||||
|
||||
Reference in New Issue
Block a user