anchor.diff:    MeshData _meshData;
   
     void AddBuffer(String canonical, Float32List data) {
  -    if (debug) print ("AddBuffer ${canonical} ${data.length}");
  -    _buffers[canonical] = CreateAndInitializeArrayBufferFloat32(gl, data);
  +    if (debug) print("AddBuffer ${canonical} ${data.length}");
  +    _buffers[canonical] = CreateAndInitializeArrayBuffer(gl, data);
     }
   
  -  void ChangeBuffer(String canonical, Float32List data) {
  -    if (debug) print ("ChangeBuffer ${canonical} ${data.length}");
  -    gl.bindBuffer(WEBGL.ARRAY_BUFFER, _buffers[canonical]);
  -    gl.bufferDataTyped(WEBGL.ARRAY_BUFFER, data, WEBGL.DYNAMIC_DRAW);
  +  void ChangeBufferCanonical(String canonical, Float32List data) {
  +    if (debug) print("ChangeBuffer ${canonical} ${data.length}");
  +    ChangeArrayBuffer(gl, _buffers[canonical], data);
     }
   
     Mesh(this._meshData, this.material, {this.debug: false}) {
  
positive.code:     if (indices != null) {
        numItems = indices.length;
        if (ChronosGL.useElementIndexUint) {
          _indexBuffer = CreateAndInitializeArrayElementBufferUint32(
              gl, new Uint32List.fromList(indices));
        } else {
          _indexBuffer = CreateAndInitializeArrayElementBufferUint16(
              gl, new Uint16List.fromList(indices));
        }
      } else {
        numItems = _meshData.GetVertexData().length ~/ 3;
  
negative.code: part of chronosgl;
  
  void ChangeArrayBuffer(
      WEBGL.RenderingContext gl, WEBGL.Buffer buffer, Float32List data) {
    gl.bindBuffer(WEBGL.ARRAY_BUFFER, buffer);
    gl.bufferDataTyped(WEBGL.ARRAY_BUFFER, data, WEBGL.STATIC_DRAW);
  }
  
  WEBGL.Buffer CreateAndInitializeArrayBuffer(
      WEBGL.RenderingContext gl, Float32List data) {
    WEBGL.Buffer b = gl.createBuffer();
    ChangeArrayBuffer(gl, b, data);
    return b;
  }
  
  void ChangeElementArrayBuffer(
      WEBGL.RenderingContext gl, WEBGL.Buffer buffer, TypedData data) {
    gl.bindBuffer(WEBGL.ELEMENT_ARRAY_BUFFER, buffer);
    gl.bufferDataTyped(WEBGL.ELEMENT_ARRAY_BUFFER, data, WEBGL.STATIC_DRAW);
  }
  
  WEBGL.Buffer CreateAndInitializeElementArrayBuffer(
      WEBGL.RenderingContext gl, TypedData data) {
    assert((data is Uint16List) || (data is Uint32List));
    WEBGL.Buffer b = gl.createBuffer();
    ChangeElementArrayBuffer(gl, b, data);
    return b;
  }
  
  