Drawable Renderer (#1570), Simplify drawable removal bool conditions

This commit is contained in:
mwilsnd
2023-07-31 13:43:00 -05:00
committed by Bart Louwers
parent 780053622c
commit 2c3390b244
7 changed files with 19 additions and 9 deletions

View File

@@ -320,7 +320,7 @@ void RenderCircleLayer::update(gfx::ShaderRegistry& shaders,
}
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf(
[&](gfx::Drawable& drawable) { return !(!drawable.getTileID() || hasRenderTile(*drawable.getTileID())); });
[&](gfx::Drawable& drawable) { return drawable.getTileID() && !hasRenderTile(*drawable.getTileID()); });
const auto& evaluated = static_cast<const CircleLayerProperties&>(*evaluatedProperties).evaluated;

View File

@@ -310,8 +310,11 @@ void RenderFillExtrusionLayer::update(gfx::ShaderRegistry& shaders,
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf([&](gfx::Drawable& drawable) {
// If the render pass has changed or the tile has dropped out of the cover set, remove it.
return !(drawable.getRenderPass() == drawPass &&
(!drawable.getTileID() || hasRenderTile(*drawable.getTileID())));
const auto& tileID = drawable.getTileID();
if (drawable.getRenderPass() != passes || (tileID && !hasRenderTile(*tileID))) {
return true;
}
return false;
});
const auto zoom = static_cast<float>(state.getZoom());

View File

@@ -364,7 +364,11 @@ void RenderFillLayer::update(gfx::ShaderRegistry& shaders,
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf([&](gfx::Drawable& drawable) {
// If the render pass has changed or the tile has dropped out of the cover set, remove it.
return !(drawable.getRenderPass() == renderPass && drawable.getTileID() && hasRenderTile(*drawable.getTileID()));
const auto& tileID = drawable.getTileID();
if (drawable.getRenderPass() != passes || (tileID && !hasRenderTile(*tileID))) {
return true;
}
return false;
});
for (const RenderTile& tile : *renderTiles) {

View File

@@ -339,7 +339,7 @@ void RenderHeatmapLayer::update(gfx::ShaderRegistry& shaders,
}
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf(
[&](gfx::Drawable& drawable) { return !(!drawable.getTileID() || hasRenderTile(*drawable.getTileID())); });
[&](gfx::Drawable& drawable) { return drawable.getTileID() && !hasRenderTile(*drawable.getTileID()); });
const auto& evaluated = static_cast<const HeatmapLayerProperties&>(*evaluatedProperties).evaluated;

View File

@@ -325,7 +325,7 @@ void RenderHillshadeLayer::update(gfx::ShaderRegistry& shaders,
}
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf(
[&](gfx::Drawable& drawable) { return !(!drawable.getTileID() || hasRenderTile(*drawable.getTileID())); });
[&](gfx::Drawable& drawable) { return drawable.getTileID() && !hasRenderTile(*drawable.getTileID()); });
if (!staticDataSharedVertices) {
staticDataSharedVertices = std::make_shared<HillshadeVertexVector>(RenderStaticData::rasterVertices());

View File

@@ -457,8 +457,11 @@ void RenderLineLayer::update(gfx::ShaderRegistry& shaders,
stats.drawablesRemoved += tileLayerGroup->removeDrawablesIf([&](gfx::Drawable& drawable) {
// If the render pass has changed or the tile has dropped out of the cover set, remove it.
return !(drawable.getRenderPass() == renderPass &&
(!drawable.getTileID() || hasRenderTile(*drawable.getTileID())));
const auto& tileID = drawable.getTileID();
if (drawable.getRenderPass() != passes || (tileID && !hasRenderTile(*tileID))) {
return true;
}
return false;
});
auto createLineBuilder = [&](const std::string& name,

View File

@@ -506,7 +506,7 @@ void RenderRasterLayer::update(gfx::ShaderRegistry& shaders,
if (layerGroup) {
stats.drawablesRemoved += layerGroup->removeDrawablesIf([&](gfx::Drawable& drawable) {
// Has this tile dropped out of the cover set?
return !(!drawable.getTileID() || hasRenderTile(*drawable.getTileID()));
return drawable.getTileID() && !hasRenderTile(*drawable.getTileID());
});
} else {
// Set up a tile layer group