I just ran a simple test using both viewporting and Noel's open gl method:
On my machine, I got the following results:
DrawImageBlock: 20947
DrawImagePart: 6654
Debug off, of course.
Athlon 64 3200+, Radeon 9800 Pro 128MB
Graphics(640,480,32,-1) SetMaskColor(255,0,255) Local TestImage:TImage = LoadImage("test.bmp") SetImageHandle(TestImage,ImageWidth(TestImage)/2,ImageHeight(TestImage)/2) Local StartTime:Int Local ElapsedTime:Int SetBlend(SolidBlend) StartTime = MilliSecs() For Local I:Int = 1 To 1000000 DrawImagePart(TestImage,320,240,25,25,80,110) Next ElapsedTime = MilliSecs() - StartTime Print(ElapsedTime) End
On my machine, I got the following results:
DrawImageBlock: 20947
DrawImagePart: 6654
Debug off, of course.
Athlon 64 3200+, Radeon 9800 Pro 128MB