anchor.diff:    }
   }
   
  -class TestPerformanceAtlas extends Node {
  +class TestPerformanceSprites2 extends PerformanceTest {
  +  String get name => "1001 sprites (24% offscreen never added)";
  +
  +  final int grid = 100;
  +
  +  TestPerformanceSprites2() {
  +    for (int x = 12; x < grid - 12; x++) {
  +      for (int y = 0; y < grid; y++) {
  +        Sprite sprt = new Sprite(_spriteSheet["asteroid_big_1.png"]);
  +        sprt.scale = 1.0;
  +        sprt.position = new Point(x * 1024.0 / (grid - 1), y * 1024.0 / (grid - 1));
  +        addChild(sprt);
  +
  +        //sprt.actions.run(new ActionRepeatForever(new ActionTween((a) => sprt.rotation = a, 0.0, 360.0, 1.0)));
  +      }
  +    }
  +
  +    Sprite sprt = new Sprite(_spriteSheet["asteroid_big_1.png"]);
  +    sprt.position = new Point(512.0, 512.0);
  +    addChild(sprt);
  +  }
  +
  +  void update(double dt) {
  +    for (Sprite sprt in children) {
  +      sprt.rotation += 1;
  +    }
  +  }
  +}
  +
  +class TestPerformanceAtlas extends PerformanceTest {
  +  String get name => "1001 rects drawAtlas (24% offscreen)";
  +
     final int grid = 100;
   
     double rotation = 0.0;
  
positive.code:     return new sky.RSTransform(scos, ssin, tx, ty);
    }
  }
  
negative.code: 
  class TestPerformance extends NodeWithSize {
    final int numFramesPerTest = 100;
    final int numTests = 5;
  
    TestPerformance() : super(new Size(1024.0, 1024.0)) {
    }
  