Title : Snarty Line (ProPixel Code)
Author : Snarty
Posted : 1+ years ago
Description : I took a look at the Bresham line algo and found it better to write a native Blitz algo for line Drawing. Includes a mode switch for XOR pixel drawing. Is aimed at drawing lines with Brushes/Sprites/Images etc, but is super fast with Pixels.
NOTE: Change the Draw image part to WritePixelFast to gain maximum speed on line creation. Code : ; Snarty Line
; Written By Paul Snart (Snarty)
; Oct 2001
; Stx,Sty = Start pixel posistion
; Enx,Eny = End point.
; Mode = False = Normal, True = XOR'ed
; CurBrush= Image Memory Handle
Function SLine(stx#,sty#,enx#,eny#,mode)
mvx#=Stx-enx:mvy#=sty-eny
If mvx<0 mvx=-mvx
If mvy<0 mvy=-mvy
If mvy>mvx mv#=mvy Else mv#=mvx
stpx#=(mvx/mv):If Stx>enx stpx=-stpx
stpy#=(mvy/mv):If Sty>eny stpy=-stpy
If Mode=1 LockBuffer BackBuffer()
For nc=0 To Floor(mv)
If mode=0
If BrushMode<>1 Or Brush=0
DrawImage CurBrush,stx,sty
Else
If BrushMode=1
DrawBlock CurBrush,stx,sty
EndIf
EndIf
Else
rgb=ReadPixelFast(stx,sty) And $FFFFFF
ColD=$FFFFFF Xor rgb
WritePixelFast stx,sty,ColD
EndIf
stx=stx+stpx:sty=sty+stpy
Next
If Mode=1 UnlockBuffer BackBuffer()
End Function
Comments : none...