anchor.diff:  
     TLocalState = class
     private
  -    SpriteVAO: array[0..3] of GLuint;
  +    SpriteVAO: GLuint;
       RectVAO: GLuint;
   
       FCurrentProgram: GLuint;
  
positive.code: end;
  
  procedure TLocalState.SetupSpriteVAO;
  var
    i: Integer;
  begin
    glGenVertexArrays(Length(SpriteVAO),@SpriteVAO[0]);
  
    for i := Low(SpriteVAO) to High(SpriteVAO) do
    begin
      glBindVertexArray(SpriteVAO[i]);
  
      glBindBuffer(GL_ARRAY_BUFFER,GlobalContextState.CoordsBuffer);
      glVertexAttribPointer(COORDS_ATTRIB_LOCATION, 2, GL_FLOAT, GL_FALSE, 0,nil);
  
      glBindBuffer(GL_ARRAY_BUFFER,GlobalContextState.MirroredUVBuffers[i]);
      glVertexAttribPointer(UV_ATTRIB_LOCATION, 2, GL_FLOAT, GL_FALSE, 0,nil);
  
      glBindBuffer(GL_ARRAY_BUFFER, 0);
  
      glBindVertexArray(0);
    end;
  
  end;
  
  
negative.code:     FlagColorUniform: GLint;
  
      CoordsBuffer: GLuint;
      MirroredUVBuffer: GLuint;
  
      procedure SetupUVBuffer;
      procedure SetupCoordsBuffer;
  
    public
      constructor Create;
      destructor Destroy; override;
      procedure Init;
  
  