[core] don't upload empty buffers

This commit is contained in:
Konstantin Käfer
2019-04-02 14:11:37 +02:00
parent 03e434e901
commit bf0998697e
2 changed files with 10 additions and 9 deletions

View File

@@ -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

View File

@@ -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;