3D engine, beginning

Miscellaneous Forums/Graphics Showcase/3D engine, beginning

Okay, it's done.

-Draw lines, points, and rectangles with pixel-perfect accuracy
-3D-accelerated performance in 2D
-Draw and tile images
-Rotate and scale images with correct image handles
-Create, load and save images in many formats, with alpha channels, and adjustable JPEG quality
-Set drawing color, with alpha
-Set 5 different drawing blend modes
-Retrieve image data with ImagePixels() and update with UpdateImage()
-Draw on any window, or use multiple windows
-Can be used with any programming language

BlitzMax sells for $80. Play Basic sells for $34.95. I'll sell this for $29.95. If a few people are interested, I will package it up and put it on my site.



Here is the complete list of commands:

;General
Release(node) : "Release"

;Graphics
CreateViewport_%(hWnd) : "CreateViewport"
Cls_() : "Cls"
DrawRect_(x,y,width,height,fill) : "DrawRect"
DrawLine_(Ax,Ay,Bx,By) : "DrawLine"
LoadFont_%(fontname$,size) : "LoadFont"
SetFont_(font) : "SetFont"
DrawText_(text$,x,y) : "DrawText"
Plot_(x,y) : "Plot"
DrawImage_(image,x,y) : "DrawImage"
SetBlend_(blendmode) : "SetBlend"
SetColor_(red,green,blue,alpha) : "SetColor"
FPS_%() : "FPS"
Sync_(vwait) : "Sync"

;Image
LoadImage_%(file$,flags) : "LoadImage"
ImageWidth_%(image) : "ImageWidth"
ImageHeight_%(image) : "ImageHeight"
ImageDepth_%(image) : "ImageDepth"
ImagePitch_%(image) : "ImagePitch"
HandleImage_(image,x,y) : "HandleImage"
MidHandleImage_(image) : "MidHandleImage"
RotateImage_(image,angle#) : "RotateImage"
ScaleImage_(image,x#,y#) : "ScaleImage"
ImagePixels_%(image) : "ImagePixels"
UpdateImage_(image) : "UpdateImage"
SaveImage_%(image,file$,quality) : "SaveImage"
CreateImage_%(width,height,depth) : "CreateImage"

;Maths
RectsOverlap_%(Ax,Ay,Aw,Ah,Bx,By,Bw,Bh) : "RectsOverlap"
PointDistance_#(Ax,Ay,Bx,By) : "PointDistance"
PointInRect_%(Ax,Ay,Bx,By,width,height) : "PointInRect"
WrapAngle_#(angle#) : "WrapAngle"
CurveValue_#(target#,value#,increments#) : "CurveValue"
CurveAngle_#(target#,value#,increments#) : "CurveAngle"
AngleDifference_#(angle0#,angle1#) : "AngleDifference"