anchor.diff:  
     vertex_data: packed array[1..12] of GLfloat;
   begin
  +  SetTranslation(ASprite.x,ASprite.y); //todo: transalte
     factor := 1;
     if dim <=0 then //render real size w|o scale
     begin
  
positive.code: var
    vertex_data: packed array[1..8] of GLfloat;
  begin
    SetFragmentColor(RECT_COLOR);
  //  glLineWidth(1);
  
    vertex_data[1] := x;
    vertex_data[2] := y;
    vertex_data[3] := x + dimx;
    vertex_data[4] := y;
    vertex_data[5] := x + dimx;
    vertex_data[6] := y + dimy;
    vertex_data[7] := x;
    vertex_data[8] := y + dimy;
  
  
    glBindBuffer(GL_ARRAY_BUFFER,GlobalContextState.CoordsBuffer);
    glBufferSubData(GL_ARRAY_BUFFER,0, sizeof(vertex_data),@vertex_data);
  
negative.code:   Assert(glIsVertexArray(SpriteVAO[mir]) = GL_TRUE, 'invalid SpriteVAO');
  
    glBindVertexArray(SpriteVAO[mir]);
  
    glUniformMatrix4fv(GlobalContextState.DefaultTranslateMatrixUniform,1,GL_TRUE,@FTranslateMaxrix.data);
  
    glEnableVertexAttribArray(COORDS_ATTRIB_LOCATION);
    glEnableVertexAttribArray(UV_ATTRIB_LOCATION);
  