anchor.diff:          var c = cm[entity];
           var b = bm[entity];
   
  -        positions[index * 2] = p.x / 400 - 1;
  -        positions[index * 2 + 1] = -(p.y / 300 - 1);
  +        positions[index * 2] = p.x;
  +        positions[index * 2 + 1] = p.y;
           sizes[index] = b.size;
           colors[index * 4] = c.red;
           colors[index * 4 + 1] = c.green;
  
positive.code:   }
  }
  
  class BackgroundDotRenderingSystem extends EntitySystem {
    Mapper<Position> pm;
    Mapper<Color> cm;
    Mapper<Background> bm;
  
    RenderingContext gl;
    Program program;
    bool success = true;
  
    static const String vShaderSource = '''
  attribute vec4 a_Position;
  attribute vec4 a_FragColor;
  attribute float a_PointSize;
  varying vec4 v_FragColor;
  void main() {
    gl_Position = a_Position;
    gl_PointSize = a_PointSize;
    v_FragColor = a_FragColor;
  }
  ''';
    static const fShaderSource = '''
  precision highp float;
  varying vec4 v_FragColor;
  void main() {
    gl_FragColor = v_FragColor;
  }
  ''';
    BackgroundDotRenderingSystem(this.gl) : super(Aspect.getAspectForAllOf([Background, Position, Color]));
  
    @override
    void initialize() {
      var vShader = createShader(RenderingContext.VERTEX_SHADER, vShaderSource);
  
negative.code:     }
    }
  
    String get vShaderSource => '''
  attribute vec2 a_Position;
  attribute vec4 a_FragColor;
  attribute float a_PointSize;
  varying vec4 v_FragColor;
  void main() {
    gl_Position = vec4(a_Position.x / 400.0 - 1.0, -(a_Position.y / 300.0 - 1.0), 0.0, 1.0);
    gl_PointSize = a_PointSize;
    v_FragColor = a_FragColor;
  }
  ''';
    String get fShaderSource => '''
  precision highp float;
  varying vec4 v_FragColor;
  void main() {
    gl_FragColor = v_FragColor;
  }
  ''';
  }
  