revert experimental stuff that didn't really work better anyway. oops

This commit is contained in:
Gered 2018-04-28 12:06:48 -04:00
parent 4fa6e2abc0
commit cf8071d119

View file

@ -364,54 +364,51 @@ arg @@dest_y_inc:dword, @@src_y_inc:dword
mov edi, ebx ; dest pixels mov edi, ebx ; dest pixels
mov esi, ecx ; source pixels mov esi, ecx ; source pixels
mov ebp, eax ; WARNING: no named local access after this!
; ebp = number of 8-pixel runs ; eax = number of 8-pixel runs
; edx = line loop counter ; edx = line loop counter
; ebx = pixel data
; eax = pixel data
test edx, edx ; make sure there is >0 lines to be drawn test edx, edx ; make sure there is >0 lines to be drawn
jz @@done jz @@done
@@draw_line: @@draw_line:
mov ecx, ebp ; ecx = counter of 8-pixel runs left to draw mov ecx, eax ; ecx = counter of 8-pixel runs left to draw
@@draw_px_0: @@draw_px_0:
mov bx, [esi+0] ; load src pixel mov bx, [esi+0] ; load src pixel
mov ax, [esi+2]
test bl, bl test bl, bl
jz @@draw_px_1 ; if it is color 0, skip it jz @@draw_px_1 ; if it is color 0, skip it
mov [edi+0], bl ; otherwise, draw it onto dest mov [edi+0], bl ; otherwise, draw it onto dest
@@draw_px_1: @@draw_px_1:
test al, al
jz @@draw_px_2
mov [edi+2], al
@@draw_px_2:
test bh, bh test bh, bh
jz @@draw_px_3 jz @@draw_px_2
mov [edi+1], bh mov [edi+1], bh
@@draw_px_2:
mov bx, [esi+2]
test bl, bl
jz @@draw_px_3
mov [edi+2], bl
@@draw_px_3: @@draw_px_3:
test ah, ah test bh, bh
jz @@draw_px_4 jz @@draw_px_4
mov [edi+3], ah mov [edi+3], bh
@@draw_px_4: @@draw_px_4:
mov bx, [esi+4] mov bx, [esi+4]
mov ax, [esi+6]
test bl, bl test bl, bl
jz @@draw_px_5 jz @@draw_px_5
mov [edi+4], bl mov [edi+4], bl
@@draw_px_5: @@draw_px_5:
test al, al
jz @@draw_px_6
mov [edi+6], al
@@draw_px_6:
test bh, bh test bh, bh
jz @@draw_px_7 jz @@draw_px_6
mov [edi+5], bh mov [edi+5], bh
@@draw_px_6:
mov bx, [esi+6]
test bl, bl
jz @@draw_px_7
mov [edi+6], bl
@@draw_px_7: @@draw_px_7:
test ah, ah test bh, bh
jz @@end_8_run jz @@end_8_run
mov [edi+7], ah mov [edi+7], bh
@@end_8_run: @@end_8_run:
add esi, 8 ; move src and dest up 8 pixels add esi, 8 ; move src and dest up 8 pixels
add edi, 8 add edi, 8
@ -419,8 +416,8 @@ arg @@dest_y_inc:dword, @@src_y_inc:dword
jnz @@draw_px_0 ; if there are still more runs, draw them jnz @@draw_px_0 ; if there are still more runs, draw them
@@end_line: @@end_line:
add esi, [esp+20] ; move src and dest to start of next line add esi, [@@src_y_inc] ; move src and dest to start of next line
add edi, [esp+16] add edi, [@@dest_y_inc]
dec edx ; decrease line loop counter dec edx ; decrease line loop counter
jnz @@draw_line ; keep going if there's more lines to draw jnz @@draw_line ; keep going if there's more lines to draw