constructor TDraw.Init(WinApi: TWinApi);
begin
  FWinApi := WinApi;
end;

procedure TDraw.OnInit;
begin
  FWidth := 1;
end;

procedure TDraw.BeginRender;
begin
end;

procedure TDraw.Start2D;
begin
end;

procedure TDraw.SetColor(const Color: TVec4f);
begin
end;

procedure TDraw.DrawPixel(const P: TVec2i; const Color: TVec4f);
begin
end;

procedure TDraw.DrawLine(const P1, P2: TVec2i; const Color: TVec4f);
begin
end;

procedure TDraw.DrawRect(const P1, P2: TVec2i; const Color: TVec4f);
begin
end;

procedure TDraw.DrawCircle(const P: TVec2f; R: Single; const Color: TVec4f);
begin
end;

function TDraw.ResetMatrix: TDraw;
begin
  Result := Self;
end;

function TDraw.PushMatrix: TDraw;
begin
  Result := Self;
end;

function TDraw.PopMatrix: TDraw;
begin
  Result := Self;
end;

function TDraw.Translate(const V: TVec2f): TDraw;
begin
  Result := Self;
end;

procedure TDraw.DrawBuffer(X, Y, W, H: Integer; Data: Pointer); 
begin
end;

procedure TDraw.Pixel(const P: TVec2i; const Color: TVec4f);
begin
end;

procedure TDraw.Pixel(X, Y: LongInt; const Color: Cardinal);
begin
end;

function TDraw.Color(const Value: TVec4f): TDraw;
begin
  Result := Self;
end;

function TDraw.Color(const Value: Cardinal): TDraw; 
begin
  Result := Self;
end;

function TDraw.RGBA(R, G, B, A: Byte): TDraw;
begin
  Result := Self;
end;

function TDraw.Width(W: Float): TDraw;
begin
  FWidth := W;
  Result := Self;
end;

function TDraw.From(const Cursor: TVec2i): TDraw;
begin
  FCursor := Cursor;
  Result := Self;
end;

function TDraw.BlendMode(Mode: TBlendMode): TDraw;
begin
  Result := Self;
end;

function TDraw.Line(const A, B: TVec2i): TDraw;
begin
  Result := Self;
end;

function TDraw.Line(const A, B: TVec2f): TDraw;
begin
  Result := Self;
end;

function TDraw.LineTo(const Cursor: TVec2i): TDraw;
begin
  Result := Self;
end;

function TDraw.Rect(const R: TRect2i): TDraw;
begin
  Result := Self;
end;

function TDraw.Circle(const P: TVec2f; R: Single): TDraw;
begin
  Result := Self;
end;

function TDraw.RectFilled(const R: TRect2i): TDraw;
begin
  Result := Self;
end;

function TDraw.CircleFilled(const P: TVec2f; R: Single): TDraw;
begin
  Result := Self;
end;

function TDraw.Triangle(const X1, Y1, X2, Y2, X3, Y3: Single): TDraw;
begin
  Result := Self;
end;

function TDraw.Triangle(V1, V2, V3: TVec2f): TDraw;
begin
  Result := Self;
end;

function TDraw.Polygon(P: PPolygon2f): TDraw;
begin
  Result := Self;
end;

function TDraw.FilledPolygon(P: PPolygon2f): TDraw;
begin
  Result := Self;
end;

procedure TDraw.Buffer(Data: Pointer; const P, S: TVec2i);
begin
end;

procedure TDraw.EndRender;
begin
end;

procedure TDraw.ClearScreen(const Color: TVec4f);
begin
end;

procedure TDraw.SetBlendMode(Mode: TBlendMode);
begin
end;

