The Gradient object

Sub
ClearStops()
'clear all stops and start over.

Function
keycount() As Long

Sub
SetLinear(smoothing As Boolean)

Sub
AddStop(ByVal t As Single, C As VBColor)

Sub
RemoveStop(ByVal t As Single)

Function
MoveStop(OldTime As Single, Newtime As Single) As Boolean

Function
GetStopColor(ByVal t As Single) As VBColor
'do we need to check if this stop exists?

Function
CreateLut(MaxTime As Long)

Function
EvalRGBA(ByVal t As Single) As Long
'only eval after doing CreateCurve

Sub
EvalRGBA2(ByVal t As Single, r As Single, g As Single, b As Single, a As Single)
'only eval after doing CreateCurve

Function
Eval(ByVal t As Single) As VBColor
'only eval after doing CreateCurve

Sub
RenderLinear(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
RenderLinearTo(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal tw As Long, ByVal th As Long, rbuf() As Byte, gbuf() As Byte, bbuf() As Byte)
'this automatically calculates the lookup table from the keyframe class, so no need to do it manually.

Sub
RenderCircular(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
RenderCircularTo(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal tw As Long, ByVal th As Long, rbuf() As Byte, gbuf() As Byte, bbuf() As Byte)
'this automatically calculates the lookup table from the keyframe class, so no need to do it manually.

Sub
RenderSweep(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
RenderSweepTo(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, _
ByVal tw As Long, ByVal th As Long, rbuf() As Byte, gbuf() As Byte, bbuf() As Byte)
'this automatically calculates the lookup table from the keyframe class, so no need to do it manually.

Sub
RenderTwirl(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)
 
Sub
RenderTwirlTo(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single, _
ay(0, 0, UndoCurrent), UndoBArray(0, 0, UndoCurrent)

Sub
RenderDiamondGradient(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
RenderStarGradient(ByVal x1 As Single, ByVal y1 As Single, ByVal x2 As Single, ByVal y2 As Single)
'this one dosn't render to r,g,b  buffers.  it rendered directly to Howler's buffer