anchor.diff:    if FCurrentProgram = DefaultProgram then
     begin
       glUniform4f(DefaultFragmentColorUniform, AColor.r/255, AColor.g/255, AColor.b/255, AColor.a/255 );
  -  end;
  +  end
  +  else
  +    Assert(false);
   end;
   
   procedure TShaderContext.SetProjection(constref AMatrix: Tmatrix4_double);
   begin
     if FCurrentProgram = DefaultProgram then
     begin
  -    glUniformMatrix4fv(DefaultProjMatrixUniform,1,GL_FALSE,@AMatrix.data);
  -  end;
  +    glUniformMatrix4fv(DefaultProjMatrixUniform,1,GL_TRUE,@AMatrix.data);
  +  end
  +  else
  +    Assert(false);
   end;
   
   procedure TShaderContext.SetOrtho(left, right, bottom, top: GLdouble);
  
positive.code:   DefaultProjMatrixUniform := glGetUniformLocation(DefaultProgram, PChar('projMatrix'));
    DefaultCoordsAttrib := glGetAttribLocation(DefaultProgram, PChar('coords'));
  
    glGenBuffers(1,@CoordsBuffer);
  
  
    CheckGLErrors('compiling default vertex shader1');
  end;
  
  procedure TShaderContext.SetFlagColor(FlagColor: TRBGAColor);
  
negative.code:     DefaultProjMatrixUniform: GLuint;
      DefaultCoordsAttrib: GLuint;
  
      CoordsBuffer, CoordsArray: GLuint;
    public
      destructor Destroy; override;
      procedure Init;
  