		segment	.text

		%include	"a_triblt.inc"

	global	_vdasm_triblt_span_point
_vdasm_triblt_span_point:
		push	ebp
		push	edi
		push	esi
		push	ebx
		mov		eax,[esp+4+16]
		mov		ebp,[eax+texinfo.w]
		mov		ebx,[eax+texinfo.mips+mipmap.pitch]
		shl		ebp,2
		mov		edi,[eax+texinfo.src]
		mov		edx,[eax+texinfo.dst]
		mov		ecx,[eax+texinfo.mips+mipmap.bits]
		sar		ebx,2
		add		edx,ebp
		neg		ebp
.xloop:
		mov		eax,[edi+span.v]
		imul	eax,ebx
		add		eax,[edi+span.u]
		add		edi,8
		mov		eax,[ecx+eax*4]
		mov		[edx+ebp],eax
		add		ebp,4
		jnc		.xloop
		pop		ebx
		pop		esi
		pop		edi
		pop		ebp
		ret

		end