anchor.diff:    TShaderContext = class
     private
       const
  -       DEFAULT_BUFFER:packed array[1..12] of GLfloat = (0,0,0,0,0,0, 0,0,0,0,0,0);
  +       DEFAULT_BUFFER:packed array[1..12] of GLfloat = (0,0,0,0,0,0, 0,0,0,0,0,0);//deprecated
     private
       FCurrentProgram: GLuint;
  +    EmptyBufferData:array of GLfloat; //used to initialize VBO
     private
   
       DefaultProgram: GLuint;
  
positive.code: 
  
    glGenBuffers(1,@CoordsBuffer);
    glGenBuffers(1,@UVBuffer);
   // glBindVertexArray(CoordsArray);
  
    glBindBuffer(GL_ARRAY_BUFFER,ShaderContext.CoordsBuffer);
    glBufferData(GL_ARRAY_BUFFER, sizeof(DEFAULT_BUFFER),@DEFAULT_BUFFER,GL_STREAM_DRAW);
  
    glBindBuffer(GL_ARRAY_BUFFER,ShaderContext.UVBuffer);
    glBufferData(GL_ARRAY_BUFFER, sizeof(DEFAULT_BUFFER),@DEFAULT_BUFFER,GL_STREAM_DRAW);
  
    CheckGLErrors('VBO');
  
    //glUseProgram(DefaultProgram);
  
negative.code:   y: Int32;
  
    vertex_data: packed array[1..12] of GLfloat;
  
    BufferHandle: GLuint;
  begin
    if dim <=0 then //render real size w|o scale
    begin
  