Code archives/BlitzPlus Gui/SLine

This code has been declared by its author to be Public Domain code.

Download source code

SLine by Snarty2003
This is the same SLine as the B3D/BB version, except it uses the new direct pixel method. You will need the "ConvertRGB()" function also.
Function SLineBP(stx#,sty#,enx#,eny#,r,g,b,Buffer)

	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
	LockBuffer Buffer
	SL_Pitch=LockedPitch(Buffer)
	SL_Bank=LockedPixels(Buffer)
	SL_Mode=LockedFormat(Buffer)
	Col=ConvertRGB(r,g,b,SL_Mode)
	If SL_Mode=1 Or SL_Mode=2
		For nc=0 To Floor(mv)
			PokeShort SL_Bank,(Floor(stx)*2)+(Floor(sty)*SL_Pitch),Col
			stx=stx+stpx:sty=sty+stpy
		Next
	Else
		For nc=0 To Floor(mv)
			PokeInt SL_Bank,(Floor(sty)*SL_Pitch)+(Floor(stx)*4),Col
			stx=stx+stpx:sty=sty+stpy
		Next
	EndIf
	UnlockBuffer Buffer

End Function

Comments

None.

Code Archives Forum