unit Shaders;

interface

uses Windows, SysUtils, GL, GLu, GLext, WGLext, GLtools, Math3D;

type
(***   U N I V E R S A L   S H A D E R   D E F I N I T I O N   ***)
  TShader = class
  protected
    FLog            : string;
    procedure SetParam(i: cardinal; value: TVector4); virtual; abstract;
    function GetParam(i: cardinal): TVector4; virtual; abstract;
  public
    procedure Bind; virtual; abstract;
    procedure Enable; virtual; abstract;
    procedure Disable; virtual; abstract;
    procedure Load(filename: string); virtual; abstract;
    property Param[i: cardinal]: TVector4 write SetParam;
    property Log: string read FLog;
  end;

implementation

end.
