prepareZoomlevel method

RenderthemeZoomlevel prepareZoomlevel(
  1. int zoomlevel
)

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