@@ -21,8 +21,11 @@ bool Layer::Impl::hasRenderPass(RenderPass pass) const {
|
||||
return bool(passes & pass);
|
||||
}
|
||||
|
||||
bool Layer::Impl::needsRendering() const {
|
||||
return passes != RenderPass::None && visibility != VisibilityType::None;
|
||||
bool Layer::Impl::needsRendering(float zoom) const {
|
||||
return passes != RenderPass::None
|
||||
&& visibility != VisibilityType::None
|
||||
&& minZoom <= zoom
|
||||
&& maxZoom >= zoom;
|
||||
}
|
||||
|
||||
} // namespace style
|
||||
|
||||
@@ -64,7 +64,7 @@ public:
|
||||
bool hasRenderPass(RenderPass) const;
|
||||
|
||||
// Checks whether this layer can be rendered.
|
||||
bool needsRendering() const;
|
||||
bool needsRendering(float zoom) const;
|
||||
|
||||
virtual float getQueryRadius() const { return 0; }
|
||||
virtual bool queryIntersectsGeometry(
|
||||
|
||||
@@ -223,7 +223,7 @@ void Style::recalculate(float z, const TimePoint& timePoint, MapMode mode) {
|
||||
hasPendingTransitions |= layer->baseImpl->recalculate(parameters);
|
||||
|
||||
Source* source = getSource(layer->baseImpl->source);
|
||||
if (source && layer->baseImpl->needsRendering()) {
|
||||
if (source && layer->baseImpl->needsRendering(z)) {
|
||||
source->baseImpl->enabled = true;
|
||||
if (!source->baseImpl->loaded) {
|
||||
source->baseImpl->load(fileSource);
|
||||
|
||||
Reference in New Issue
Block a user