prepareZoomlevel method
Prepares and caches zoom level specific rendering rules.
Creates an optimized rule set for the specified zoom level by filtering and processing the theme's rules. Results are cached for performance.
zoomlevel The zoom level to prepare rules for
Returns the prepared zoom level rule set
Implementation
RenderthemeZoomlevel prepareZoomlevel(int zoomlevel) {
if (_renderthemeZoomlevels.containsKey(zoomlevel)) return _renderthemeZoomlevels[zoomlevel]!;
var session = PerformanceProfiler().startSession(category: "Rendertheme.prepareZoomlevel");
int maxLevels = -1;
List<Rule> rules = [];
for (Rule rule in rulesList) {
Rule? r = rule.forZoomlevel(zoomlevel, () {
return ++maxLevels;
});
if (r != null) {
rules.add(r);
r.parent = null;
}
}
RenderthemeZoomlevel renderthemeLevel = RenderthemeZoomlevel(rulesList: rules, maxLevels: maxLevels, zoomlevel: zoomlevel);
for (Rule rule in rules) {
rule.secondPass();
}
_renderthemeZoomlevels[zoomlevel] = renderthemeLevel;
session.complete();
return renderthemeLevel;
}