The Drawing object

Sub
ResetMatrix()

Sub
Scaling(ByVal x As Single, ByVal y As Single, ByVal z As Single)

Sub
translate(ByVal x As Single, ByVal y As Single, ByVal z As Single)

Sub
SetAntialiasing(aa As Boolean)

Sub
Rectangle(ByVal X1 As Single, ByVal Y1 As Single, ByVal x2 As Single, ByVal y2 As Single)
'draw a 2d rectangle in 3d space

Sub
RoundedRectangle(ByVal X1 As Single, ByVal Y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal Roundness As Single)

Sub
RoundedRectangle3D(ByVal X1 As Single, ByVal Y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal z1 As Single, ByVal Roundness As Single)

Sub
Rectangle3D(ByVal X1 As Single, ByVal Y1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal z1 As Single)
'draw a 2d rectangle in 3d space

Sub
Ellipse(ByVal X1 As Single, ByVal Y1 As Single, ByVal r As Single)

Sub
Ellipse3D(ByVal X1 As Single, ByVal Y1 As Single, ByVal z1 As Single, ByVal r As Single)

Sub
Line2d(ByVal X1 As Single, ByVal Y1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
Line3D(ByVal X1 As Single, ByVal Y1 As Single, ByVal z1 As Single, ByVal x2 As Single, ByVal y2 As Single, ByVal z2 As Single)
'use a 4 point polygon to draw this, since it can be 3d, and on a matrix.
If gfx = 0 Then Exit Sub

Sub
DrawString(ByVal str As String, ByVal Size As Single, ByVal fontfamily As String, ByVal X1 As Single, ByVal Y1 As Single)

Sub
DrawString3D(ByVal str As String, ByVal Size As Single, ByVal fontfamily As String, ByVal X1 As Single, ByVal Y1 As Single, ByVal z1 As Single, ByVal x2 As Single, ByVal y2 As Single)

Sub
Concatmatrix(m As VBMatrix)

Sub
SetMatrix(m As VBMatrix)

Sub
SetFillColor(C As VBColor)

Sub
SetFillColorRGBA(ByVal r As Long, ByVal g As Long, ByVal b As Long, ByVal a As Long)

Sub
SetStrokeColor(C As VBColor)

Sub
SetStrokeColorRGBA(ByVal r As Long, ByVal g As Long, ByVal b As Long, ByVal a As Long)

Sub
SetDash(DashStyle As Long)

Sub
InitCamera()

Sub
BeginRender(ByVal Scalewidth_ As Single, ByVal Scaleheight_ As Single) 'usually a form or picturebox
'Rendering does not use the HDC.  It renders only triangles to the main image, via a set of intermediat buffers, such as z, uv, vertex, and etc.
'Do not use any other drawing commands with Begin/End render.  It is for triangles.

Sub
BeginDraw3D(ByVal hdc As Long, ByVal


Drawing class example:

function main()

'function that draws random circles using the drawing class.  Always start with a main() function

dogwaffle.dog_saveundo "Render circles"

w=dogwaffle.dog_bufferwidth
h=dogwaffle.dog_bufferheight

drawing.BeginDraw

drawing.setantialiasing true
drawing.Usefill true
drawing.setstrokesize 5

for n=1 to 100
drawing.setstrokecolorRGBA rnd*255, rnd*255, rnd*255, 255
drawing.setfillcolorRGBA rnd*255, rnd*255, rnd*255, 255
drawing.ellipse w*rnd, h*rnd, rnd*100
next

drawing.enddraw

dogwaffle.dog_refresh

end function